The testing of a software application is an art. Good testing, also, requires a tester’s creativity, experience and intuition, together with proper techniques. The software testing is a process that is carried out with the intention of checking the existence of software bugs. Testing is needed to validate and verify that a software application meets the business and technical requirements for successful development.
Challenges without a Formal Document
There are few challenges, faced by a tester, if there is no formal document provided for reference.
To design test cases or write test case scenarios becomes difficult, since testers do not have any document for reference.
- When tester has the requirements, he/she knows how a system would look upon completion. But in this case, one can only put Unit Level Approach.
- The requirements can be easily, be, misunderstood or changed frequently which can make the system unstable and difficult to test.
- There are few important factors that one must know before starting the testing phase.
- The type of testing that the tester is going to perform on the system (Functional, Regression, Load etc.)
- If this is the child version of an old product then the tester should have all the old specifications to refer.
- He/she must ensure that the client is available for clearing queries and doubts because such an approach (testing without requirements) requires frequent meetings and doubt clarification sessions to make it run smoothly.
- One should have the knowledge of all the documents that the developers are referring to for coding purposes, so that the tester can refer to the same to get an idea about how the product will work.
- The tester should be aware of the risks, related to the software product, that he/she is likely to face during the process.
- The tester should know which feature will be executed first.
- He/she should be aware of the OS specification, browser compatibility, ‘in-scope’ and ‘out-of-scope’ in software testing.
Steps to Follow for Testing Application
If the requirement document is not available, the test can follow these steps:
- Read the documents properly, which are referred by developers, to develop the product and share the test cases with them. In this way, the tester will know how developers are developing the software and can design the test cases based on it. Also, sharing the test cases with them ensures that the tester has understood the functionality and will test it properly.
- In case of any ambiguity, make things clear as soon as possible. Involve all the teams i.e. testers, developers, business analysts and clients. Make sure that after the meeting, all the teams are on the same understanding level and then, you can proceed with the process.
- Make proper documentation of the work flow. This will help in better understanding of the approach. Use flowcharts and diagrams which are easy to understand.
- Prepare a list of In-Scope and Out-of-Scope items and share with all team members and get approval from the manager. Tester can update the list, any time later, after the discussion with team members.
- If possible, make test cases out of the user stories. Sometimes, the end-user (client side) is there to test the product at early stages, too. If the tester has few user stories then he can, always, make few test cases out of them to know the client’s expectations and usefulness of the software.
- Perform more exploratory testing, since tester doesn’t have any formal requirements listed. Perform random testing, frequently, and whatever he/she feels is not right, can be discussed with the clients and corrected before sending it to developer’s team.
- Think from the users’ perspective which can help you to make the software more useful. Give suggestions and solutions. There are various users who are going to use the software in different ways. If the tester is able to think from their perspective then the software becomes more compatible and versatile.
- Divide the whole system into small modules and understand each one in detail. Testers will do deep testing of each part of the software making test coverage maximum. It is easier to test a small module than to test the whole system at once. Start testing early for better understanding.
- Automate the test cases, which are now fixed to save time and efforts. In the beginning of the project, when requirements keep changing, this step might look unnecessary. But after a while, when few requirements or functionalities are fixed, tester can automate few test cases.
Example: Online Shopping Application
For instance, let’s consider an online shopping site where you can add items to the shopping cart. Ideally, if there is no documentation, you have no idea about how to add items to the cart, how many items can it have at a give point of time, what happens when the item that you have added suddenly goes out of stock, what is the maximum number of same items you can buy at the same time, etc.
People are aware of how shopping carts work. Hence, you make your assumptions and arrive at few basic scenarios such as:
- Items can be added to the shopping cart, after being browsed or searched.
- Once you add the items to the shopping cart, the list of items should get refreshed.
- The user should be able to continue shopping even after adding few items to the cart.
- Adding the same item twice will cause the count of the items added to be incremented.
- The items can be updated and removed.
- The total should be equivalent to the sum of the all the prices added.
- Taxes and shipping costs should be calculated, accordingly.
Before you proceed to work on a project, and don’t have any requirement document, proper planning in advance is extremely essential which will, eventually, lead to the successful completion of the task. You have to communicate well with the client and developers and understand what their expectations are while, also, obtaining their feedback, frequently, during the process. When you know what to test and how to test, you can make your own documents, stating the requirements and can refer / modify the same throughout the process.
However, it is always recommend to have documents in place. It helps the organization to refer in future and makes it easy to perform testing activities.
Test Engineer, RapidValue