TASK 4 - MANUAL TESTING
Published: 2023-12-24 11:38:30

**MANUAL TESTING**
       As the name itself suggests, this testing is the one in which application testing happens manually. The test cases are executed one by one by Testers manually without using any readymade tools, and then the results are verified.
   
In this software testing, a tester carries out tests on the software by following a set of predefined test cases. Testers make test cases for the codes, test the software, and give the final report about that software to meets its user requirements. 

![Image description](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/1pzal0tyvk13zmfrxd9e.jpg)

The tester has to makes sure that reported defects are fixed by developers and re-testing has been performed by testers on the fixed defects.
The manual testing verification is the most primitive form of software testing. Any new or updated applications must be tested manually before automation testing.

**Need of Manual Testing**

With the changing trends in the software field, more and more software professionals prefer automated testing, but there are still multiple reasons which justify the need for manual testing. Few of them are:

The main goal of this testing is to ensure that the application is bug-free, stable, in conformance with the requirements and delivers a stable product to the end users.
It helps the test engineers get more familiar with the product and get an end-user perspective. This helps them to write correct test cases for the software application.
Manual testing helps to verifies that the defects are fixed by the developer and that retesting has been done on the fixed defects.


![Image description](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/1eb0ay17hbapu1gsnjlj.jpg)

**Requirement Analysis**
       Tester has to study the software project documentation, guides, and Application Under Test (AUT). Analyse the requirements thoroughly from SRS.
The Tester identifies test conditions, to check the basis of the test where tests basis is the crucial info on which test cases are based, like architecture, requirements, design specifications, product risk analysis, and interfaces.
The tester has to plan the tests.
To design the test environment set-up and determine the required tools and infrastructure.

**Test Plan Creation** 
      Tester has to Create a test plan covering all the requirements of the end user.
These test cases help us follow a sequence to test functionality and various test scenarios such that we cover the entire application and check expected results.

**Test Case Creation**
      Tester has to design the test cases that cover all the requirements described in the documentation.
After the analyses the necessities, now time to develop and hierarchize test cases by using methods and creating test data for those testing. 
Test cases function as reference guides for QA engineers, laying out as well as steps to test the distinct scenarios and functions within the software application.

**Test Case Execution**
      After the test case Review and baseline the test cases with the team lead and client. Then Execute the test cases on the application under test.

Defect Logging 
     To Detect the bugs, log and report them to the developers is the primary thing in this stage. 
In this procedure to identify defects in the software under test or product by testing or keeping records from customers and making advanced versions of the product that mitigate and fix the flaws.

**Defect Fix and Re-verification**
    In this stage bugs are fixed, again execute the failing test cases to verify that they pass or not.

The software developer makes changes in code alterations and verifies the modifications then he/she can build bug status as ‘Fixed’ and the bug issues are shifted to QA manual testing team. 

At this phase, the tester performs the further certification and testing of the altered code.

**TYPES OF MANUAL TESTING**
     There are so many different methods to implement manual testing, but it is mainly classified into three types of manual testing

![Image description](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/gw7s8ynf28vgtmim7krs.jpg)

**Black Box Testing**
It is the type of testing where the tester testing the functions without the knowledge of about any internal structure or logical or code implementation. This test simply checks the inputs and user expected output it meets the requirements or not. This testing focus on user perspective only.

**White Box Testing**
It is the testing where the tester must have full knowledge of internal functions or structure, and logically it performs or not. In this testing user has to know code and implementation. It is completely developers' perspective only. It is also called as clear box or glass box.

**Grey Box Testing**
It is the testing that combines both black box testing and white box testing. This testing performs from both developer point of view and user point of view. In this testing we have some knowledge of how it works internally.

**Tools Used for Manual Testing**

![Image description](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/27aumk9r1pxbvyx44klq.jpg)

**Test Link**
   Web-based test management system that facilitates software QA. 
   The most user-friendly programs. 
   Available through a browser with good internet connection. 
   Supports cross-browser testing across different platform.

**Bugzilla**
   Web-based bug-tracking tool that is developed by Mozilla. 
   This has simple bug search that it searches the complete text of the bug.
  Supports various OS like Windows,Linux,Mac etc.,
  It has the Facility to list the software bug in different format.
  This has advance searching facility.

**Jira** 
   This is the Manual testing tool that helps the teams to assign, track, report, and manage work and bring the teams together. 
This tool is one which is compatible with agile software projects also. 
It has the Option to track and manage the bugs and defects in the software application.
This will Prioritize and assign tasks.
Collaborate with team members is possible.
In this we can Easily generate reports and track progress.

**LoadRunner** 
   Most widely used performance testing tools. 
   The purpose of this tool is to categorize the most prevalent causes of performance problems.  
  Simulates real-world user behaviour and load.
  Identifies bottlenecks and performance issues.
  Scalable architecture for large-scale testing.
  Provides detailed reports and analysis.

**Apache JMeter**
      It has Open-source load testing tool for analysing and measuring the performance of a variety of services in software application. It has an easy-to-use user interface. 
Simulates various types of loads (web, database, etc.).
Highly configurable and extensible.
Integrates with various plugins for additional features.
Provides comprehensive performance reports and graphs.

**ADVANTAGES AND DISADVANTAGES OF MANUAL TESTING**

  
![Image description](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/m6c5dloc2pe7p22moocq.jpg)

**ADVANTAGES**

- Fast and accurate visual feedback
- Less expensive
- No coding is required.
- It is suitable in case of unplanned changes to the application, as it can be adopted easily. so, its Efficient for unplanned changes
- It uses black box testing, so don’t need programming knowledge.
- Easy for new testers to learn.
- The tester interacts with the apps as a real user, to spot usability and user interface issues.

**DISADVANTAGES**
  
-  It is less reliable as it does not provide testing on all aspects of testing.
-  It comparatively large number of human resources needed.
-  Testers cannot use a given test case again so cannot be reused. 
-  Testers need to develop separate test cases for each new 
- application for the software.
-  In this tester develops test cases based on their skills and 
previous experiences. So, there is no proof that they have covered, 
all functions in the software applications. 
-  If the project is large, then this type of testing process is 
time-consuming.

EXAMPLE:
LOGIN WEB PAGE

![Image description](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/zuuri85h2b2lrhxmjbrj.jpg)

**The user provides the correct username and password the user will be redirected to the homepage. If the user input is wrong, an error message will be displayed.**

Test Case 1 – Username and password both were wrong. It shows an error message.
Test Case 2 – Username was correct, but the password was wrong. It shows an error message.
Test Case 3 – Username was wrong, but the password was correct. It shows an error message.
Test Case 4 – Username and password both were correct, and the user navigated to the homepage.

**Mobile Banking Test Cases**
    Banking applications allow the users to experience financial services that banks offer more easily for the end user.
Test the installation and setup of the mobile banking app.
Verify the compatibility with different mobile device types (iOS, Android).

1. Test the installation process and setup functions of the mobile banking app.
2. Verify it works with different mobile device types like iOS, Android.
3. Test the responsiveness of the app function on various screen sizes and resolutions.
4. Verify that mobile check deposit functions working correctly.
5. Test mobile bill payment and funds transfer process in a right manner.
6. Verify the accuracy of notifications and alerts.
7. Testing the offline functionality, such as viewing account balances without an internet connection is possible or not.
8. Verify the ability to check between multiple user accounts.
9. Test the mobile app's synchronization with the web-based banking platform.
10. Verify that the app is accessible to all type of users with disabilities (ADA compliance).
11. Test the performance of the mobile app under low-network conditions.
12. Verify that biometric authentication works securely e.g., fingerprint, face ID works securely.
13. Test mobile app updates and their impact on existing data.
14. Verify that the mobile app supports various language preferences and localization.
15. Test mobile app-specific features like remote account deactivation is available or not.
16. Verify that mobile app data is protected against device theft or loss.
17. Test the mobile app's ability to generate and scan QR codes for transactions.
18. Verify the handling of interruptions (e.g., phone calls) during app use.
19. Test the mobile app's accessibility on both smartphones and tablets.
20. Verify the integration of mobile app analytics for performance monitoring.