TASK - 4
Published: 2024-04-10 15:02:37

Manual testing, Benefits and drawbacks of manual testing and also a example
Manual testing:

It is a vital quality assurance process in software development that relies on human testers to access the functionality, usability and quality of a software application. It involves the systematic execution of test cases and scenarios, where testers interact with the software as end-users would, identifying defects, validating requirements and assessing the user experience.

In manual testing, testers meticulously navigate through the software, inputting with various features to ensure they perform as expected. They also verify that the application functions correctly across different operating system, devices and browsers providing a holistic view of its compatibility.

This form of testing is crucial for identifying issues that automated testing tolls may overlook, including visual discrepancies, usability problems and unexpected user behaviors.

Manual testing is particularly valuable during the early stages of development, where rapid changes and frequent updates may render automated tests obsolete. It is also essential for users acceptance testing, ensuring that the software aligns with business requirements and meets user expectation.

While automation can improve testing efficiency for repetitive tasks, manual testing remains indispensable for its ability to provide qualitative insights, adaptability to changing project dynamics, and its capability to offer a more comprehensive evaluation of software quality.

Benefits of manual testing:

Exploratory testing: Manual testers can employ exploratory testing techniques to uncover unforeseen issues providing valuable insights into the software's behavior that may not be covered by predefined test cases.

Usability evaluation: Manual testers assess the user interface and overall user experience, identifying usability issues, design flaws and inconsistencies that automated tests may miss.

Real world scenarios: Testers simulate real world user interactions, ensuring that the software correctly in diverse situations and contexts.

Early testing: Manual testing can start in the early stages of development when automated test scripts might not yet be available or practical helping to catch defects sooner.

Adaptability: Manual testers can quickly adapt to changing project requirements, making it easier to accommodate last-minute changes or rapidly evolving software.

Comprehensive testing: Human testers can provide a holistic evaluation of software quality, considering factors like intuition, domain knowledge and subjective user feedback.

Complex testing: Certain aspects of testing such as security testing, load testing and accessibility testing often require manual intervention for through examination.

8.Rapid feedback: Manual testers can provide immediate feedback during testing, helping developers identify and rectify issues promptly.

Cost-effective for small projects: For smaller projects or projects with limited budgets, manual testing can be more cost-effective than setting up and maintaining automated testing infrastructure.

Early user feedback: Manual testing allows for early involvement, which can lead to valuable insights before a software release.

Some of the drawbacks of manual testing

Human error: Manual testing is susceptible to human error, leading to potential inaccuracies in test execution and results. Testers may overlook issues or make mistakes in data input, comparing the reliability of testing process.

Resource intensive: Manual testing can be time consuming and labor intensive, requiring a dedicated team of testers for extensive test coverage, This can result in higher testing costs and longer development cycles.

3.Limited repetition: Manual tests cannot be easily repeated on a large scale, making it challenging to perform thorough regression testing when changes are made to the software.

Subjectivity: Testers assessments can be subjective, leading to variations in test results based on individual perspectives, bias or experience.

Incomplete test coverage: Manual testing may not cover all possible test scenarios and edge cases, leaving some areas of the software untested.

Slow feedback: Manual testing may slow down the feedback loop between testers and developers, especially in large projects, where test execution and reporting can take considerable time.

Not suitable for performance testing: Manual testing is impractical for conducting performance, load or stress testing where automated tools are necessary to simulate large-scale user interactions.

8.Costly for long-term projects: In long-term projects with frequent releases and updates, manual testing can become cost-prohibitive due to its resource requirements and time constraints.

9.Ineffective for continuous integration: In a continuous integration delivery environment, manual testing cannot keep up with the rapid pace of code changes and deployments.

Difficulty in scaling: Scaling manual testing for large, complex applications or distributed systems can be challenging and may require substantial coordination and resources.
Example for manual testing:

Test scenario: Verify the login functionality of a web application.

Test steps:

Launch the application: Open the web browser and navigate the login page of the application.

Enter valid credentials: In the username and password fields, input valid login credentials.

Click the login button: Click the "LOGIN" button to submit the credentials.

Verify successful login: After clicking the login button, the system should validate the credentials and redirect the user to the dashboard or homepage.

Enter invalid credentials: In the username and password fields, input incorrect login credentials.

Click the login button: Click the "LOGING" button again.

Verify error message: The system should display an error message indicating that the login failed. Confirming that the error message is clear and informative.

Forgot functionality: Test the "FORGOT PASSWORD" functionality by clicking on to "FORGOT PASSWORD" link. Follow the steps to reset the password and confirm that the rest process works as expected.

Logout functionality: Log in with valid credentials and then test the logout functionality by clicking the "LOGOUT" button. Confirm that the user is logged out and cannot access protected pages without logging in again.

Browser Compatibility: Perform the login tests in different web browsers to ensure cross-browser compatibility.

Mobile responsiveness: Test the login functionalities on various devices to ensure the application is responsive and displays correctly.

Security testing: Attempt to perform security testing, such as entering SQL injection or cross-site scripting attempts in the input fields ,to confirm that the application is secure against common vulnerabilities.

Performance: Check the login response time and performance by simulating multiple login attempts concurrently to assess how the application handles load.

Localization: If the application supports multiple languages, test the login functionality with different language settings to ensure text and UI elements are localized correctly.

User experience: Evaluate the overall user experience during the login process, including the intuitiveness of the interface and the clarity of error messages.

Boundary testing: Test the login functionality with edge cases such as extremely log usernames or passwords to ensure the application handles them gracefully.

Session management: Verify that the application maintains user sessions correctly.

Cookies and security tokens: Verify that cookies and security tokens are used correctly in the login process to enhance security;.

Compatibility with third-party services: If the login process involves third-part authentication services, test their integration to ensure a seamless experience.

Accessibility: Check that the login page complies with accessibility standards to ensure it is usable by people with disabilities.

After conducting these manual tests, testers would document their findings, including any defects or issues encountered, which would then be communicated to the development team for resolution.