Nowadays we used software applications everywhere in day-today life e.g. For online shopping/ bill payment/ Money transfer, For Mutual funds investment, In equipment used in hospitals, etc. Now, what if the logic added in an application is wrong or it misses some calculation (as it’s written by humans) in that case the end result will never be correct and eventually will turn into a fiasco! A software with bugs will not only be overhead but will also incur cost to an individual or organisation using that software. So before a software is launched to the end user , it’s very very important to make sure that it’s rigorously tested.
Broadly software testing is done either Manual or via an Automated Script. As the scope of this article is limited to Manual testing only so we will not discuss Automation here. In case you want to read about automation, here is our article on automation using Selenium
Manual testing is a process to confirm that the software is working as we expected and provides the correct result. As the name suggests, this testing is done manually. Testers review the recently developed functionality against a set of requirements and make sure that there are no defects or gaps in the functionality.
Manual testing has different forms and is categorised according to the scope of testing. Here are some of the very commonly used manual testing types.
Smoke testing is done to make sure that the application is stable and ready to test after deployment of a recent code on any of the environment ( QA, Stage or Production). If we don’t perform smoke tests and start with functional testing right away after the new code is pushed, then we may end up with spending unnecessary time and adding too many defects. Smoke test consists of very critical and important scenarios of the applications and QA team should not spent more than 15-30 minutes executing those scenarios. If any defect is found in smoke test, then QA team can stop testing it further unless those issues are fixed.
Functional testing is one of the core testing done by the QA team. It deals with verifying the core functionality of the recently developed module. When a module is developed there many other testing types which QA team have to complete like UI, Performance, Responsiveness, Cross browser support etc but Functional testing should be performed as the first thing. It checks if the module functionality is working as mentioned in the requirements. Other testing should be done once the functional area is full tested and stable.
There are tons of web and mobile browsers available nowadays and depending upon the end users geographical locations, application should be supporting all the expected browsers. Cross-browser testing is to make sure an application is working fine on different desktop browsers as well as on different mobile/ tablet devices supported. While doing the cross browser testing, QA does not focus much on functional but more on the layout and responsiveness of the pages and other UI components.
Let’s read about how manual testing is carried out in most of the organisations. As maximum number of projects across the IT industry are following Agile-Scrum model nowadays so let’s see how manual testing process fits in such model.
Once the sprint goal is finalised, development and testing team is focused on their respective tasks for the sprint. When developers are working on writing the code, the QA team is responsible for writing the test cases & creating test data for the upcoming user stories from the sprint.
Once development of a user story is completed and moved to QA environment, the QA team starts testing by executing the test cases written earlier. The sequence of testing performed on user stories is generally like - Smoke Testing, Functional testing, UI/Cross Browser Testing & Regression testing.
If any defects/bugs found during test case execution, the QA team logs the defect within the defect tracker tool and assign them to the development team. One of the most important rules to remember while adding a defects is to set it the correct priority so as dev team can fix it accordingly. Developers should fix the high priority issues within the same sprint and QA team re-test the fixes.
Dev team should be always available to quickly fix any defect found while testing is in progress on Stage/PRO environment. QA provides a sign-off when testing is completed on Stage/PRO.
Here are some of the very commonly used tools in Manual testing. Depending on the project requirements and needs, management decides which tools are required.
JIRA Zephyr,HipTest & GitHub : Can be used to write and manage test cases. Some of the tools like Zephyr & GitHub allows linking defects with user stories Or test cases. It helps to generate and track defects against the requirements.
JIRA, GitHub & Redmine: are some of the very popular defect tracking tools.
Manual testing helps to identify the defects or loopholes in the system which an automation tool/script won’t be able to detect.Although a bit time consuming but it’s not irreplaceable.