Testing technique refers to the method or way to test a software or a part of 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 different testing technique might be a good way to test a 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 – 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 client 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 ex, The Medical and Financial sectors are high risk areas and require thorough testing for their software. 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 ex, 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 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 ex, Exploratory Testing is more likely to be used in an Iterative test methodology rather than Waterfall method.
- Purpose of the software – It may include the end user. For ex, a software designed for handicapped or disabled people must be test for accessibility.
You may interested in Software Estimation Techniques
Let’s discuss some of the testing techniques, their benefits and what they are suited for most:
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 following ways:
- Reviewing the requirements or design to find out any missing or obscure requirements and infeasible design.
- A 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 phase is expected from the team members.
Specification based testing technique:
This technique is best way to make sure that all the requirements have been covered and expected matches the actual. It is based on specification or requirements of software as drafted in the documents. It is also known as Black Box Testing. Based on 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 ex, for testing a ecommerce site offering discount on 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 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.
It is mostly used for testing financial applications. The best example would be loan application where depending on the combination of answers to different questions like if loanee has 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 on clicking on Next button depending on the details filled in. For ex, if all the details are filled correctly then next page will display, error message will display in case of incorrect information or on not filling the mandatory information.
Risk based Testing Technique:
This testing technique is very important for Financial and Medical areas. It is used to test break points of 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 defect in early stage which can be fixed right away. Unit Testing comes under 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 sole test technique but it is used to provide more coverage to 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 idea that what could go wrong or where the defect might be. Testing methods like Ad-hoc Testing and Monkey Testing comes under this technique. This test technique is generally used for low risk system 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.
From the above discussion, we can conclude that each testing technique has its own advantages and disadvantages. No technique is better than other. 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.
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: