Manual QA Testing
Manual QA testing is a vital aspect of software quality assurance that ensures the software meets its requirements, works as expected, and provides a positive user experience.It offers flexibility, a human perspective, and the ability to uncover issues that automated testing might miss.
Manual testing is essential in various testing types, such as functional testing, usability testing, and regression testing, and remains a core practice in the software development lifecycle.
Non-Functional Testing
JIRA: For defect tracking and project management.
TestRail: For managing test cases and tracking test execution.
Bugzilla: For logging and tracking bugs.
Confluence: For documenting test cases, plans, and reports.
Trello: For managing tasks and organizing testing efforts.
Key Objectives of Manual QA Testing
Identify Bugs/DefectsFind and report any software bugs or unexpected behaviors during the testing process.
Ensure Functionality
Ensure Functionality
Verify that all features of the software function as per the requirements and specifications.
Confirm Usability
Confirm Usability
Ensure that the application is easy to use and intuitive from an end-user perspective.
Validate Requirements
Validate Requirements
Ensure that the software meets the specified requirements and performs the desired tasks.
Cross-Browser & Cross-Platform Compatibility
Cross-Browser & Cross-Platform Compatibility
Test the software across different browsers, devices, and operating systems to ensure consistency and compatibility.
Types of Manual QA Testing
Manual testing can be divided into several types based on the scope and nature of the testing being performed.Functional Testing
Focuses on verifying the functionality of the application according to the specified requirements. It ensures that all features and functions work as expected.
Verifying that the login functionality works correctly by entering valid and invalid credentials.
Focuses on verifying the functionality of the application according to the specified requirements. It ensures that all features and functions work as expected.
Verifying that the login functionality works correctly by entering valid and invalid credentials.
Non-Functional Testing
Evaluates the performance, usability, security, and other non-functional aspects of the software. It ensures that the system performs well under different conditions.
Verifying the response time of a website under normal traffic conditions.
Regression Testing
Verifying the response time of a website under normal traffic conditions.
Regression Testing
Involves testing the software after changes have been made (e.g., bug fixes, new features) to ensure that existing functionality is not broken.
After a new feature is added to an app, regression testing ensures that existing features, like search and filtering, still work as intended.
Usability Testing
After a new feature is added to an app, regression testing ensures that existing features, like search and filtering, still work as intended.
Usability Testing
Focuses on evaluating how easy and user-friendly the software is for its intended users. It tests the application from a usability perspective and ensures that users can navigate and interact with it efficiently.
Testing the navigation of an app to see if users can easily find important features.
Smoke Testing
Testing the navigation of an app to see if users can easily find important features.
Smoke Testing
A quick check to ensure that the basic functionality of the software works before more detailed testing is performed.
Verifying that the application launches and the main features, such as login and navigation, function correctly.
Sanity Testing
Verifying that the application launches and the main features, such as login and navigation, function correctly.
Sanity Testing
A focused form of testing to ensure that a specific part of the application is working after a bug fix or change. It checks whether the changes made have had a positive effect and did not break anything else.
After fixing a bug in the payment gateway, sanity testing would confirm that payments can be processed without issues.
User Acceptance Testing (UAT)
After fixing a bug in the payment gateway, sanity testing would confirm that payments can be processed without issues.
User Acceptance Testing (UAT)
Performed by the end users or clients to verify that the application meets their needs and expectations. UAT is typically the final step before deployment.
Testing an e-commerce website with real users to see if they can successfully make a purchase.
Compatibility Testing
Testing an e-commerce website with real users to see if they can successfully make a purchase.
Compatibility Testing
Ensures that the application works across different browsers, devices, and operating systems.
Verifying that a website functions correctly on different browsers (Chrome, Firefox, Safari) and mobile devices (iOS, Android).
Verifying that a website functions correctly on different browsers (Chrome, Firefox, Safari) and mobile devices (iOS, Android).
Process of Manual QA Testing
Requirement AnalysisThe tester reviews the software requirements and specifications to understand what the software is supposed to do. This forms the basis for creating test cases.
Test Plan Creation
Test Plan Creation
A test plan is developed, outlining the testing scope, objectives, resources, schedule, and types of testing to be performed.
Test Case Design
Test Case Design
Test cases are written based on the requirements and features of the application. These test cases define the steps to follow, the expected results, and how to report defects.
Test Execution
Test Execution
Testers manually execute the test cases, interact with the software, and document any defects or issues encountered.
Defect Reporting
Defect Reporting
If defects are found, they are logged in a defect tracking tool (e.g., JIRA) with details about the issue, how to reproduce it, and its severity.
Re-testing and Regression Testing
Re-testing and Regression Testing
After defects are fixed by the development team, testers re-run the test cases to confirm the issues have been resolved and ensure no new problems have been introduced.
Test Closure
Test Closure
Once testing is completed, the testing team prepares the final test report, which includes details on the tests conducted, the number of defects found, and the overall quality of the software.
Advantages of Manual QA Testing
Human PerspectiveManual testing allows testers to evaluate the software from a human perspective, simulating real-user behaviors and identifying usability issues that automation might miss.
Flexibility
Flexibility
Manual testing is highly adaptable and can be used to test a wide range of scenarios, particularly those that require creativity or human judgment.
Exploratory Testing
Exploratory Testing
Testers can use their intuition and experience to discover defects that may not have been anticipated by test scripts.
Effective for Small Projects
Effective for Small Projects
Manual testing is often more cost-effective and practical for smaller projects or applications with fewer features.
Challenges of Manual QA Testing
Time-ConsumingManual testing can be slow, especially for large projects with numerous test cases or complex scenarios.
Repetitive
Repetitive
Repeating the same tests over and over can be tedious and prone to human error.
Limited Coverage
Limited Coverage
While manual testing is effective for checking specific scenarios, it may not provide the broad coverage that automated tests can.
Subject to Human Error
Subject to Human Error
Manual testing is prone to mistakes, such as missing edge cases or making incorrect assumptions during test execution.
Tools for Manual QA Testing
While manual testing is primarily done without automation, there are various tools that can assist testers in managing the process:JIRA: For defect tracking and project management.
TestRail: For managing test cases and tracking test execution.
Bugzilla: For logging and tracking bugs.
Confluence: For documenting test cases, plans, and reports.
Trello: For managing tasks and organizing testing efforts.