Normally in software industry application testing is performed on Ad-Hoc basis. Testing teams receive an application and start working on it in order to complete it with best possible outcomes. Although every testing team follows their own set of processes in order to efficiently complete the activity but without having a defined plan, best results are not guaranteed.
In this discussion, based on my experience I will share few points which will be helpful during the functional testing execution and a testing team can achieve their desired results by following these simple steps.
- First of all, as a tester you must have the crystal clear idea of the application scope/functionality which you are going to test. It’s the most important part of the test execution because every subsequent step will be based on it. So take your time and thoroughly explore the application, discuss it with your team lead and send your concerns to the client if something still isn’t clear.
- If possible, informally document your findings so that a clear picture of the application can be drawn. I used this technique while testing K-Tango application and it brought great results for me. K-Tango was a big enterprise application having multiple user roles interacting with each other over the web and mobile. At the start of execution, I wasn’t able to figure out most critical scenarios covering multiple user roles. But after proper application exploration and drawing application flow diagram, I not only figured out all the critical scenarios but also found out lots of critical bugs as well.
- Another plus point of the application exploration is that you can get application domain knowledge and in case of lacking the required extent of it (which is compulsory for testing an application), you can get it prior to the execution. This exploration also helps you to identify necessary dataset (software and hardware) required for testing. You must list down all the software and hardware requirements for testing and pass this list to your superiors to make sure all the dataset elements are available before execution.
- During exploration you can also figure out scenarios which can’t be tested due to certain limitations (Time constraints or data sets unavailability etc). During Ford Focus Rally application testing, there was a scenario of pagination in which there were options of 25-50 and 100 users on one page. We only tested it till 50 users because creating a new user and registering it with Ford Focus Rally was taking time and we left the last scenario with client approval due to time constraints. So by careful exploration of the application you will also identify these scenarios as well and notify the stakeholders about these scenarios in advance to avoid any hassle.
- Another point is, that by prioritizing application scenarios you can mitigate lots of risk factors and can define the sequence of your activities. You must have got the application idea after exploring it, so now you can identify its critical areas as well. You can define the sequence of your testing activities based on your requirements and with the mutual understanding of the client. But it’s recommended to start from the most critical areas first and so on. But you can also follow the application flow if there are not many risk factors involved.
- Another important factor to complete the test execution on time is to divide the whole activity and set daily targets. By achieving the daily targets, you can easily meet the schedule. This strategy helped me a lot during Motista application testing, where we have to complete its testing within 10 working days and we divided the complete functionality in 10 parts. During execution we found, it was a very tight estimate but only due to daily targets we were able to deliver reports on time. Similarly on another occasion, where application testing reports were required in 5 days and although the scope wasn’t that big but due to absence of daily targets, I wasn’t able to deliver its reports on time.
What if you received an application and have to deliver it on urgent basis?
In that case you just try to setup a quick meeting with the client (even with team lead if client is not available) to get as much understanding of the application as possible, its critical scenarios and discuss how you can minimize the execution time (Most often by reformatting reporting mechanism) to meet the tight schedule. But make sure you have acquired necessary knowledge of all application aspects to complete its testing successfully.
In conclusion of this discussion, I would say planning is essential for the success of any task and without proper planning planned results can’t be achieved. Same is the case with software testing where you can get the desired outcomes by considering all the above mentioned factors while you are testing an application.