Testing technique refers to the method or way to test a software or a part of the software. Each testing technique has its own benefits. Different techniques target different types of defects. So, it would be wrong to call one technique best. Based on the software and its requirements, one test technique may suit better than the other to serve the purpose. And sometimes, a combination of the different testing techniques might be a good way to test software.
The various factors that determine which testing technique should be used are discussed below:
- Time constraint – It helps in eliminating and/or selecting testing types, depending on the timeline allotted for testing. For ex: a software with a small timeline for testing will more likely skip Endurance Testing.
- Budget – The budget might put a restraint on the different aspects of testing for ex: resources, no. of test cases, etc., which may impact the choice of testing technique.
- Specifications provided by Client – Sometimes clients can provide clear guidelines as to what testing needs to be done. They can also intervene to eliminate the testing types identified during planning too.
- Risks involved – Based on the risk assessment of the software, the testing technique can be selected. For example, The Medical and Financial sectors are high-risk areas and require thorough testing for their software. The testing approach should be risk-based and performance testing is a must.
- System Requirement Specifications – Based on the documents and requirements drafted by the business entities, testing techniques like system testing, ad-hoc testing, etc. are decided. For example, if there are no specific requirements provided then tester can go for Ad-hoc testing.
- Defects: It is based on the defects found in a past release of the software. Regression testing can be involved in the test suite for the next release to recheck the areas impacted.
- Software Development Lifecycle – SDLC followed for the software also acts as a deciding factor for the test technique. For example, Exploratory Testing is more likely to be used in an Iterative test methodology rather than the Waterfall method.
- Purpose of the software – It may include the end-user. For example, software designed for handicapped or disabled people must be tested for accessibility.
You may be interested in Software Estimation Techniques
Let’s discuss some of the testing techniques, their benefits, and what they are suited for most:
Static Testing:
This test technique should be included in all software testing. It helps in detecting defects before the formal testing starts. It involves testing or review of documents or code during early SDLC phases without doing any actual execution. This technique helps in software development in the following ways:
- Reviewing the requirements or design to find out any missing or obscure requirements and infeasible design.
- Static analysis of code can help in finding structural defects without doing any actual execution.
As we all know, the earlier a defect is identified in the SDLC, the cheaper it is to fix it. This technique requires expertise in business and domain. Also, the efforts are increased during this testing as involvement in various phases is expected from the team members.
Specification-based testing technique:
This technique is the best way to make sure that all the requirements have been covered and expected matches the actual. It is based on the specification or requirements of software as drafted in the documents. It is also known as Black Box Testing. Based on the logic used during development one of the following black box technique can be selected :
- Equivalence partitioning testing: It is used when test conditions can be divided into different sets. For example, for testing an e-commerce site offering a discount on the purchase like 5% off on Rs.1000, 10% on 1500, and 20% on 2500 and above, equivalence partitioning can be used to divide testing in the range of 0-999, 1000-1499, 1500-2499 & >=2500. A value from each partition can be tested instead of testing the entire range.
- Boundary Value Testing: In the above example, the testing can be optimized by involving Boundary values from each partition to have more coverage.
Decision Table:
It is mostly used for testing financial applications. The best example would be loan application were depending on the combination of answers to different questions like if the loanee has an account in the same bank if he has taken some other loan etc., the maximum loan amount is calculated.
- State Transition Diagram: For testing a website for online form submission. Different outputs come out by clicking on the Next button depending on the details filled in. For example, if all the details are filled correctly then the next page will display, an error message will display in case of incorrect information or on not filling the mandatory information.
Non-functional testing like stress testing, load testing, etc. also come under this testing technique.
Risk-based Testing Technique:
This testing technique is very important for Financial and Medical areas. It is used to test the breakpoints of the system and its response in those conditions. If a system in Clinical Research Organization crashes and the data is lost then many test trials and years of work may get wasted. Performance testing comes under this technique.
- Structure-Based Testing Technique: It is also known as White Box Testing. It requires knowledge of the code and is generally performed by developers. It helps in improving the quality of code as dead and redundant code can be spotted using this technique. It also helps in identifying the defect in the early stage which can be fixed right away. Unit Testing comes under the Structure-Based Technique Type.
- Defects based Testing Technique: This technique focuses on the area with maximum defects. The test cases are written based on the defects found in the past. Regression testing comes under this category. It can’t be used as the sole test technique but it is used to provide more coverage for overall testing.
- Experience-based testing technique: It is based on the experience, background, and skills of a person in the field of testing. The testing is done on the basis of the idea that what could go wrong or where the defect might be. Testing methods like Ad-hoc Testing and Monkey Testing come under this technique. This test technique is generally used for low-risk systems or when the requirements are not clear or enough. It is also used when there is a time constraint and not enough time for testing.
Conclusion:
From the above discussion, we can conclude that each testing technique has its own advantages and disadvantages. No technique is better than others. It rather depends on factors such as time, budget, client, software type, etc. and should be selected as per its suitability to the software and its requirements.
⇓ Subscribe Us ⇓
If you are not regular reader of this website then highly recommends you to Sign up for our free email newsletter!! Sign up just providing your email address below:
Happy Testing!!!