GOQAGO

Introduction to Manual Testing

What is Manual Testing & How is it Performed ?

Posted By - GOQAGO Date: 01/01/2020

Need for Software Testing?

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


What is Manual Testing?

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.

Types of Manual Testing

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.

  1. Smoke testing:

    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.

  2. Regression testing:
    Regression testing scope is larger than the smoke testing. It’s purpose is to make sure that the existing functionality is not breaking after some new code is pushed as part of the development cycle. Ideally the QA team should identify and tag the regression scenarios from the functional test cases. There can many criterias for selecting a scenario as a regression like:
    1. Scenario should be from the core functionality.
    2. The most complex functionality scenarios
    3. The area of the application which most prone to bugs
    4. The area/modules which might get impacted because of the newly developed functionality
  3. Functional testing:

    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.

  4. Cross-browser (Browser Compatibility) testing:

    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.

Manual Testing Process

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.

  1. Sprint planning meeting:
    Development phase within a scrum team starts with Sprint planning meeting. During the sprint planning meeting, all the team members get together along with Product Owner and are responsible for :
    1. Backlog prioritization.
    2. Discussions over the requirements ( user stories).
    3. Finalize sprint scope
  2. Test case writing:

    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.

  3. Test case execution:

    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.

  4. Defect logging:

    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.

  5. Sprint push ( Stage or PRO):
    Once all the user stories from the sprint are tested , priority defects are fixed and retested by the QA team then the code is pushed to the Stage Or Production environment ( depending upon the environment setup within the organisation). The Qa team does a quick round of Smoke testing on the Stage/PRO environment to make sure that :
    1. New functionality is working as expected.
    2. No new regression issues.

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.

List of Tools used in Manual Testing

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.

  1. Test case management tools:

    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.

  2. Defect management tools:

    JIRA, GitHub & Redmine: are some of the very popular defect tracking tools.

  3. Other tools:
    1. Browserstack: Browserstack is one of the very popular tools for Browser compatibility, Responsive & mobile app testing.
    2. Inspectlet: Inspectlet is a tool that records videos of your visitors as they use your site, allowing you to see everything they do.You can view every mouse movement, click, scroll, and keypress on your site. It lets you analyze user behavior instantly with Eye Tracking Heatmaps, Screen Capture (record and playback actual visitor sessions), and User-Interaction Analytics.As it records user actions, it also helps to study the user's behavior on site and some times to analyse Errors/ UI issues faced by user while browsing the application
    3. Google Analytics: Google Analytics track the site’s visitor details like location, device used, session duration, conversion. That helps to improve the conversion rate and performance of online marketing software.
    4. Track JS: This tool tracks & logs the javascript error present in application while users are accessing it. It sends daily alert mail to the admin to analyse and fix the JS errors.
Conclusion

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.