Software testing plays a vital role in delivering a software product that meets the business and technical requirements. Many people are under the impression that they can start testing of the software product right away with the aim of finding bugs. However, if you are disciplined test manager, you know that software testing process needs some planning.
Today, we are going to discuss various parameters that can help you in planning the software testing process effectively. We will bring 10 things you should know before embarking on software testing planning into your perspective. We will discuss some points in more detail as they need more explanation to be understood.
Let's move on to our list of 10 things you should know before embarking on software testing planning.
1. Understand the Mindset of the Client
It may sound basic, yet many professionals overlook the need of business. Understanding business requirements and product features is one thing; understanding the mindset of client and audience is another. In an effort to translate the business requirements into working software, we often indulge in too many technical details and overwhelmed with our own priorities. Sometimes, mistakenly, we prioritize some modules and features because we find it more interesting and challenging; ignoring the value that it adds to the business.
Before embarking on software testing planning, you need to understand the perspective of client. You can simplify the process by pondering over following parameters:
Functionality as Core
Different products address different business needs. If you are building a financial application, the focus of client will be on the functionality of the application. You will need to consider technical details as a minor mistake may have a major impact. Similarly, if you are building inventory management system, the color scheme and user interface would not hold much value for the client.
User Friendliness and Interface
On the contrary, if you are developing a hotel booking or tour planner website - color scheme, layout and ease of use holds greater value. In this case, the client is not interested in addressing the complex corner cases, rather he has a priority for the user interface of the website and its smooth flow.
Time to Market
Another important factor that needs to be considered is the 'Time to market' of application. As obvious, developing a big product with a long list of features require months and years to develop. This may cause a serious loss to business as the competitor might come up with the same idea in the market, before your client.
The efficient approach is to step earlier in the market and launch the product with small set of features. More features can be added later on as the product updates. This requires the prioritization of features and functionalities as per the product launch plan. In such scenarios, your test planning should include integration and regression testing. You might want to automate regression and smoke checklist to gain testing efficiency as it will be a repeated activity for a longer period of time.
Proof of Concept (POC) and Prototypes
Sometimes, a client is unclear about the requirements. They may carry the attitude 'I will know it, when I see it'. In these cases, you might need to work with software prototyping model and plan your test strategy accordingly.
2. Know Your Platforms & Target Devices
Another important thing that you need to know before embarking on software test planning is knowing the target platforms and devices. In today's world, the tech market is flooded with the variety of platforms, devices and screen sizes. There are Personal Computers, Laptops, Notebooks, Tablet PCs and Mobile devices. Furthermore, there is variation in specifications of each of these devices. Thus, making it humanly impossible to perform testing on each and every device before you release your product.
Thus, it is important to get client's agreement over the platforms, devices and screen sizes on which testing will be performed.This is vital as there is myriad combination of mobile platforms, device and screen sizes. Similarly, if you are defining test strategy for web applications, you can decide the operating systems, browsers and screen resolutions.
You can shortlist your target platforms, devices, screen sizes, browsers and resolutions by doing some market research on your audience and targeted users.
3. Craft Your Test Strategy
Once you have a clear understanding of what is important for the business of client and target audience, you are ready to craft your test strategy. A test strategy is a high-level document that defines your approach to testing the particular product. Test strategy is different from the test plan as it does not contain the details of assignments, responsibilities, and timelines.
You can craft your software test strategy in a step by step manner:
Understand the Business Need
As discussed above, it is important to understand the business requirements before you embark on software testing planning. Your testing strategy should complement the business needs. While building a user friendly product, your testing strategy can include user interface testing, usability testing, cross browser testing and cross platform testing.
Select the Required Testing Types
There a lot of testing techniques available. All testing techniques can not be applied on every project. Depending on the requirements, you select the required testing types to test all areas of your application/product.
Testing strategy might compose of several testing types. This includes any combination of black box testing, white box testing, security testing, database testing, API testing, load testing, stress testing, performance testing, usability testing, cross browser testing, cross platform testing, integration and regression testing techniques.
4. Choose the Right Testing Tools
After crafting your test strategy, you are ready to choose the right testing tools for your testing activities. Several testing tools are available in the market to facilitate and expedite the testing process. In some cases, it becomes inevitable to use a testing tool. For example, you will face great trouble in simulating 1,000 or more users from your single machine.
The LoadComplete tool can assist you in load and stress testing. You can also use some tools to help you generate test data quickly. Such tools come in handy when you are performing load testing and performance testing.
Similarly, you might have opted for automation testing in your test strategy. In such cases, you will need some automation tools such as Selenium, Ranorex, WAPT. If you are working with mobile test automation, you might want to use Appium.
Besides, you will need a test or defect management tool to efficiently manage your test cases, status of test cases' execution and reporting of bugs. is one such tool that seamlessly integrate your requirements, test cases, execution statuses and bugs at one place.
5. Establish Quality Assurance Process
Different projects can have different structure of project teams, roles and assignments. Hence, you might have the choice to adherence to the company quality assurance process or tweak it as per the project needs. You might also need to define the states in the bug life cycle for your project.
Quality assurance process includes the complete quality cycle for the project starting from the understanding of requirements, creation of test scenarios, execution of test cases, identification and reporting of bugs, verifying the fixes and finally performing the smoke test of final product.
6. Estimate Quality Assurance Effort
On the basis of your testing strategy and testing tools, you can estimate the testing effort required for the project. The quality assurance activity includes understanding of business requirement, creation and execution of test cases, the creation of test data, and some contingencies.
Creation and Execution of Test Cases
Creating test scenarios is an important quality assurance activity. It is also a challenging task as it requires brainstorming, understanding of requirements and coming up with side cases. The next step is to create test cases for the scenarios. Some people overlook the effort and time required to create test cases. Make sure you include the time required for creating test scenarios and test cases in your estimates.
Creation of Test Data
Sometimes, you need to create test data for your application. Depending upon the project requirements and available tools, you can estimate the effort required for creation of test data. The estimates vary greatly depending upon whether you are using any tool or not.
Analysis of Resources
Analyze the skill set of resources and their availability for the project. For example, an expert resource will take 2 days to complete a task; where as, a beginner resource might take 4 days for the same task.Similarly, if you are using some new testing tools, the duration for learning curve should be included in the estimates.
Delays and Contingency
You can use several estimation techniques to give realistic estimates for testing activities. However, there is still chance that real work will deviate from the estimated effort. In some cases, it happens that development took more effort and the release does not become available for testing until deadline comes very close.
Hence, it is recommended to consider such delays and add some contingencies in the estimates.
7. Schedule Quality Assurance Activities
Estimates tell you the number of hours required to complete a work. Schedule, on the other hand, tells you about the time line. The schedule tells you when to start the activities, what is the deadline for activities and what are the expected delays. This also helps you to identify and apply fast tracking or crashing techniques to compress the schedule and meet project deadline.
You can schedule your QA activities by identifying the logical relationships between your quality assurance activity, development tasks and required approvals. For instance, you might prepare test data, test scenarios and test cases in a few days; yet, you have to wait for the release as the coding might require more effort. Similarly, the resource allocation can also affect your schedule. Resources can be allocated fully or partially. So, it is another important factor to consider while the QA activities.
8. Availability of Resources
Plan your software testing process on the basis of availability of your testing resources. This includes test environment, testing tools, testing devices and human resource. You might have special software or hardware requirements to comply with the system under development. Hence, make sure that you have or you will set up the required test environment when needed.
9. Know the Essentials of a Test Plan
When you have considered all the above mentioned factors, you will come up with an outline of how you are going to execute the quality assurance process for the project. Sounds good? But, you can neither keep all that in your head nor you will explain your plan to each related team member verbally. You will need a document that systematically organizes all the planning for software testing process.
A test plan document comes in handy for doing so. A is a document that defines the strategy that will be used to verify that the product or system is developed according to its specifications and requirements. There are several options for writing a test plan. You can create a test plan following IEEE 892 standard, or you can create a customized test plan.
10. Execution Is Just as Important as Planning
Needless to say, execution of planned activities is just as important as the planning itself. There will occur several situations where things were not go as they were planned initially. To cover such scenarios, you need to analyze risks and their associated responses beforehand - while creating the test plan.
In this article, we have discussed 10 things you should know before starting your software testing planning. Start from understanding the mindset of the client. This will help to identify tasks, prioritize tasks and deliver a product that conforms to the client's expectations. The second important thing is to identify the platforms and devices on which testing should be performed.
Moving forward, a test strategy is developed and right tools are chosen. You can also establish a quality assurance process to assure a systematic approach towards software testing...
Furthermore, you can analyze the available resources and the required testing effort. On the basis of estimates, you can develop the test schedule. You can, then, put all your information into a test plan. This test plan can guide you throughout the execution of your software testing process.
Did you find this article helpful? In your opinion, what other things should be asked before embarking on software testing planning? Share your thoughts in the comment section below and spread the knowledge!