It is important that we achieve optimum results while testing the software without deviating from the goal. But we need to determine that we are following the right strategy for testing. For that, we need to stick to some basic testing principles. Mentioned below are the seven common testing principles and best practices in the software industry.
Without testing, we cannot conclude whether the software is defect-free or not. Once the software is tested only then we can understand if defects are present or not. Without testing we cannot understand if the software is working correctly or not. Also, a point here to note is that if we do not find defects it does not mean that the software is defect-free.
While testing we cannot test all the possible combinations of input and output for any given system. But that does not mean we do not have to test the system thoroughly. Exhaustive testing simply means that we need to set priorities, understand the risk and impact, and analyse before test execution.
Early testing is important to minimize the cost of removing defects. So, the process to find defects should start as early as possible. If the testers are not included in the requirement phase and if the defects or some human error is getting introduced, then it will cost human effort and money. It can ease the process, if testing is introduced in the early phase of the software life cycle.
A small number of modules usually contain most of the defects discovered during the pre-release testing or are responsible for most of the operational failures. The Pareto principle of 80-20 rule states that 80% of the defects are found in 20% of the module.
Reasons for failure can consist of:
If the same test cases are executed repeatedly after some time these test cases will no longer find new defects. So, to overcome this, test cases should be reviewed again, and new test cases should be added regularly.
Testing is context dependent. Testing is done differently for different modules. For example, testing for safety or medical related systems, testing is to ensure accuracy and performance. Such systems are tested differently when compared to the testing for the e-commerce web site, as it is more related to the user experience and usability. So according to the context of testing one can divide what to test and how much to test it.
Fixing and finding defects does not help if the system built is unstable and does not fulfil the user needs and expectations. A system with no defects does not mean that the system is ready to be delivered. This should not be the acceptance criteria.
Test Planning is the activity of defining the objectives of testing and the specification of test activity to meet the objectives and mission. In test planning activity, activities such as defining scope, approach, resources, and environments are discussed. In the test planning process, we have to identify which test items are to be tested and which are out of scope, roles and responsibilities of the resources in the team and roles of the stakeholders, the relationship between the testers and the developers and the environment requirements for testing the system.
The test control is the ongoing activity of comparing actual progress against the plan and reporting the status including deviations from the plan. This needs to be taken care of throughout the test activity.
Analysis and design are concerned with the fine detail of what to test (i.e., test conditions) and how to consider test data that will be required for the test. Conditions on how to create the test cases and how to create test conditions so that a small number of test cases can cover as many of the test conditions as possible. Analysis and design are the activities during which general test objectives are transformed into tangible test cases and test conditions.
The main points in the analysis and design are as follows:
This is the activity where test procedures or scripts are specified by combining the test cases in a particular order and including any other information needed for test execution, the environment is set up and tests are executed. While the tests are executed, log the output, compare the actual and the expected output. If they do not match, look for the cause.
Mentioned below are the activities which are involved in implementation and execution:
Evaluating the exit criteria is the activity where test execution is assessed against the defined objective.
Activities in this process include the following mentioned below:
This occurs at the project milestones such as when a software system is released, a test project is completed or cancelled, or a maintenance release has been completed. In the test closure process, it concentrates on ensuring that everything is finalised, synchronised and well documented.
In this process the activities included focus on following objectives:
Written by, oprimes tester – Devyani Vyas