Basic Concepts of Software Testing
Software testing is a field with no set “best practices.” Because so much of testing is based on the particular context of the test, it’s often difficult to clarify, categorize and dispense advice on aspects of software testing. Testing is often confused with the processes of quality control and quality assurance. Testing is the process of creating, implementing and evaluating tests.
Software Tester is the one who performs testing and find bugs, if they exist in the tested application.
The goal of Software Testing is to:
* Demonstrate That Faults Are Not Present
* Find Errors
* Ensure That All the Functionality Is Implemented
* Ensure the Customer Will Be Able To Get His Work Done
Software testing is an important part of the software development process. In normal software development there are four important steps referred to as PDCA:
* Plan: Define the goal and the plan for achieving that goal.
* Do/Execute: Depending on the plan strategy decided during the plan stage we do execution accordingly in this phase.
* Check: Check/Test to ensure that we are moving according to plan and are getting the desired results.
* Act: During the check cycle, if any issues are there, then we take appropriate action accordingly and revise our plan again.
So developers and other stakeholders of the project do the “planning and building,” while testers do the check part of the cycle. Therefore, software testing is done in check part of the PDCA Cycle.
Software testing is the process of executing a program / application under positive and negative conditions by manual or automated means. It checks for the Specification, Functionality and Performance.
There are different types of software testing:
Black box testing is a testing strategy based solely on requirements and specifications. Black box testing requires no knowledge of internal paths, structures, or implementation of the software being tested.
White box testing is a testing strategy based on internal paths, code structures, and implementation of the software being tested. White box testing generally requires detailed programming skills.
Gray box testing: In this we look into the “box” being tested just long enough to understand how it has been implemented. Then we close up the box and use our knowledge to choose more effective black box tests.
Modes of Testing
* Static Analysis does not involve actual program execution. The code is examined, it is tested without being executed Ex: – Reviews
* Dynamic In Dynamic, The code is executed. Ex: – Unit testing
The basic terms and concepts of software testing:
* Software Quality: Learn how software quality is defined and what it means.
* Software quality is the degree of conformance to explicit or implicit requirements and expectations.
* Dimensions of Quality: Learn the dimensions of quality. Software quality has dimensions such as Accessibility, Compatibility, Concurrency, Efficiency.
* Software Quality Assurance: Learn what it means and what its relationship is with Software Quality Control. Software Quality Assurance is a set of activities for ensuring quality in software engineering processes.
* Software Quality Control: Learn what it means and what its relationship is with Software Quality Assurance. Software Quality Control is a set of activities for ensuring quality in software products.
* SQA and SQC Differences: Learn the differences between Software Quality Assurance and Software Quality Control. SQA is process-focused and prevention-oriented but SQC is product-focused and detection-oriented.
* Software Development Life Cycle: Learn what SDLC means and what activities a typical SDLC model comprises of. Software Development Life Cycle defines the steps/stages/phases in the building of software.
* Definition of Test: Learn the various definitions of the term ‘test’.