For the purpose of holistic testing of a software product, it is necessary to create a wide set of tests for the software under test. There is no one set method for testing a software product. This general scheme comprising of different set of tests with different techniques is called a test design. Each testing design has its own strengths and weaknesses and takes care of specific defects.
The test designs are categorised as:
Static test design techniques consist of a plethora of activities....
Informal reviews: An Informal review focuses on a cursory review of the software product's working manual with the help of a team of couple of experts along with the author. The comments of this team are largely remain undocumented and are intent on improving the quality of the manual.
Technical review:A tech. review is done by a team of designers and a small group of prospective users with the aim of detecting flaws in the software as well as finding suitable alternatives.
Walkthroughs:The working code inherent in the software is studied in detail by a team of programmers and readers. Questions relevant to compliance with development standards and possibilities of error are asked.
Inspection:Similar to walkthrough but a lot more formal in nature, inspections are carried out to detect more complex errors along with safety or time related constraints.
Static analysis:The software's source code is checked for coding compliance and possible syntax errors.This also involves steps for code optimization.
The scope for Dynamic test design techniques is pretty wide and consists of the following:
The test cases are derived with the help of external descriptions and the specifications of the software. The tester need not have any prior knowledge of the internal code of the product. Some of the commonly used approaches are:
The entire input test data is carved into smaller divisions which are then used to create test cases.
After the segregation of the entire input data into equivalence partitions, boundaries are selected with the biggest and smallest values. This is done keeping in mind the fact that most of the bugs found are located here.
Also known as a cause & effect table, a decision table's utility in handling large number of combinatorial inputs and responses is a pretty useful asset for testing
This technique helps in devising test cases which have coverage to examine the complete working system in the software product from start to finish.
Sometimes, outputs are generated based on the change in input condition or state of the system. The test cases are then devised to implement these valid and invalid transitioning to different states of the software system.
Error guessing: basically depends on the past working experience of the tester in dealing with bugs and errors.
Exploratory testing: this technique focuses on minimum planning and maximum execution of test cases. The tester incorporates a learner's attitude while generating new test cases.