As a software tester, choosing the right way of testing is as important as to perform testing on the system. Right way of testing would lead us in the right direction and would yield high quality product. In this article, we are going to discuss some of the major factors on which “decision of right way to perform testing” is dependent.
I have divided these factors into two main categories:
- Internal factors
- External factors
Let’s discuss each of them in detail.
Internal factors:
These are the ones which are related to the internal operations in a project. Below is the list of some of the internal factors:
- Development model used: In any project, the type of development model used governs the testing technique to be implemented for the best result. For example, if the SRS (Software Requirements specification) comprises of a number of state transition diagrams, then the use of state transition testing would be a good technique.
- Need for documentation: Project documentation such SRS (Software Requirements Specification), FRD (Functional Requirements Documents), etc. possess must have condition for any testing technique to prosper as they show the right direction in which testing could be conducted. The choice of the testing technique which should be implemented is based on the content and style of the documentation. For example, if in the project documentation, business analyst has used the decision tables or state graphs then the test designer should use the associated test techniques which ensures the proper testing of the decision tables or state graphs.
- Skillset of testers: We can think of numerous testing techniques to implement into software testing but the skillset of the tester is another factor which should be taken into consideration. We should evaluate that the type of testing technique which the testing team is going to implement supports the available skillset of the testers. If skillset is not matched with the testing technique then it may drag the testing effort into wrong direction. Therefore, the choice of testing technique also depends of the available skillset of the tester in the project team.
- Test objective: The test objective should be very clear before the testing team could start testing of a project with an appropriate testing technique. For example, if the test objective is just to gain confidence that the software application will handle with usual operational tasks then use cases to test the application would be a practical approach. Otherwise, if the objective is to attain a full end-to-end testing then more arduous and complete techniques which may include the structure-based techniques should be selected. Therefore, the test objectives contribute towards the testing technique and approach to be taken in order to carry out the testing in the right direction for any software application.
- Software test life cycle model used: here we consider two major models namely sequential and iterative. V-Model and waterfall model are good examples of sequential. Agile model is an example for iterative. Iterative has short milestones and quick delivery so exploratory testing is a got to method whereas sequential delivers the product at the end of the complete cycle so more formal testing techniques are used here.
External factors:
These are the ones which are important to consider but they mostly are external to the project and decided by the organization. Below is the list of some external factors:
- Risks: this factor determines whether testing would be more on casual or formal side. Higher the risk, more formal testing will be carried out. A lot of documentations and meetings would be a major part. Lower risk will have more exploratory testing and less documentation.
- End users: keeping end users in mind helps in deciding the best suited testing technique. For example, if end user is a bank then the most important thing to test would be “Security” and “Performance” so two testing techniques for this type of project are “security testing and performance testing” since security is the main concern for any financial institution and when they have a large set of customers, best performance is needed from the software. If software is not secure enough then users would lose their money and if performance is not good then institution or organization would lose its customers. You get the idea!
- Project deadline: meeting the deadline or the target is utterly important for the team and the project. Let’s understand how testing technique should be chosen in this case with an example. Say, we have 1 month to go live and testing hasn’t completed yet. The best bet in this case would be exploratory testing by experienced testers and regression testing after every fix which will make sure that defect are caught and fixed properly. Agile method is very effective when there are short deadlines and development has milestones.
- Budget: We may think of numerous testing techniques and ways to implement testing but budget is one of the key factors which draw some boundaries. It plays a very important role since budget decides the number of tester who can be hired and tools which can be used to do the testing. If budget doesn’t allow to use automation tools or hiring of automation developers then doing manual testing would be the best bet but if budget is enough then regression suite can be automated to save a lot of time and efforts.
It is not necessary to adopt one testing technique for a project. Based on the situations, one should be flexible enough to handle and apply different techniques to get the best result. The end goal of the testing should be crystal clear which can be achieved with the help of above factors. These factors should be taken into consideration in order to carry out the software testing in the right way, so as to gain the desired confidence and quality of the end product.
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!!!