What is manual Testing?What are the benefits and drawbacks of manual testing?Give some Examples in support of your answer?
Published: 2024-03-28 12:53:44

                      **1.Manual Testing:**

  Manual testing is a technique to test the software that is carried out using the functions and features of an application.In manual testing a tester carried out tests on the software by following a set of predefined test cases. In this testing testers make testcases for the codes, test the software and give the final report about that software.Manual testing is time consuming because it is done by humans and there is a chance of human errors.
  Every new applications must be manually tested before its testing can be automated. Manual testing requires more effort than automation testing but is necessary to check automation feasibility. There is no requirement for knowledge of any testing tool in manual testing.

     **Characteristics of  Manual Testing:**

**Human Performance** - Human testers who use the product in the same way as end users conduct manual testing. Manually carrying out test cases tester provide input and watch the result to find errors.
**Investigative Testing** - Exploratory testing in which testers examine the application without using predefined testcases is a common component of manual testing.**
Flexibility** - Throughout the testing process testers are able to adjust to changing conditions and requirements. Based on their observations they are able to adapt testcases.
**Initial Testing** - Early in the software development lifecycle even before the program is fully developed,manual testing can be started. By doing exploratory testing testers can find problems early in the development process.**
Examining complex situations** - When testing the complex scenarios that could be difficult to automate ,manual testing works well. Testers are able to evaluate the interaction between various components.
**Testing User Interface** - Manual testing is a good way to assess an applications user interface. From a users point of view testers can evaluate the general design, responsiveness and appearance and feel.

              **Need of Manual Testing**

Below are some reasons why manual testing is required
 **Bug free and stability** - The main goal of manual testing is to ensure that the application is bug-free, stable, in conformance with the requirements delivers a stable product to the customers.
 **Familiarity with the product** - Manual testing helps the test engineers get more familiar with the product and get an end-users perspective.This helps them to write correct testcases for the software.
 **Fixing the defects** - Manual testing ensure that the defects are fixed by the developer and that retesting has been done on the fixed defects.

            **Steps in manual testing**

 **1.Requirement Analysis:**
                 Before testing begins thoroughly understand the requirements and specification of the software being tested. This includes functional requirements, non-functional requirements, user stories and any other relevant documentation.
  **2.Test Planning:**
                 Create a test plan outline scope, objectives, resources, schedule and approach for testing. Define test cases based on requirements and risks identified during requirement analysis.
  **3.Test Case Preparation:**
                 Develop detailed test cases based on the requirements. Each test cases should include the following:
      Test Case Id
      Description of the test scenario
      Preconditions
      Testing Steps to execute the test
      Expected result
      Actual result
      Status(Pass/Fail)
   **4.Test Environment Setup:**
                Prepare the test environment with the necessary hardware, software, configurations and test data required for testing. Ensure that the environment closely resembles the production environment.
   ** 5.Test Execution:**
                Execute test cases according to the test plan. Follow the steps outlined in each test case, inputting data, interacting with the system and observing the results.Record the actual results obtained during testing execution.
   **6.Defect Reporting:**
                If any discrepancies are found between expected and actual results document them as defects in a defect tracking system.Provide detail information about defect, including steps to reproduce, environment details, severity and priority.
                Defect the bug, log and report them to the developers.
    **7.Regression Testing:**
           After defects are fixed perform regression testing to ensure that the changes have not impacted existing functionalities.Re-run relevant test cases to verify that the system behaves as expected.
   **8.Retest and Closure:**
           once all identified defects are fixed and regression testing is completed retest the affected areas to conform that the defects have been successfully resolved.When testing objectives are met and the software is deemed ready for release, formally close the testing phase.
  ** 9.Documentation:**
          Document the testing process including test plans, test cases, test results, defect reports and any other relevant information. This documentation serves as a reference for future testing efforts and audits.
  **10.Feedback and Continuous Improvement:**
           Provide feed back on the testing process and product quality to improve future testing efforts. Analyze testing results, identify areas for improvement and incorporate lessons learned into future testing cycles.
By following these steps manual tester can systematically verify the functionality, usability, performance and other aspects of the software under test.

              **Types of Manual Testing**

Manual Testing encompasses various type of testing each serving a specific purpose in the software testing process. Here are some common types of manual testing
**1.Exploratory Testing:** - Testers explore the software  system without predefined test cases. They rely on their domain Knowledge,Intution and experience to uncover defects and areas of improvement.
**2.Ad-hoc Testing** - Testers perform testing without any formal test documentation. They spontaneously execute test based on their understanding of the system and attempt to break it in unexpected ways.
**3.Black Box Testing** - Tester evaluate the functionality of the software without knowing its internal code structure. They focus on inputs and outputs, ensuring that the system behaves as expected from the user's perspective.
**4.White Box Testing** - Testers examine the internal code structure and logic of the software. They verift that the code is functioning correctly according to the specifications and requirements.
**5.Regression Testing** - Tester ensure that recent code changes do not adversely after existing functionalities. They rerun previously executed test cases to validate to validate that the system still behaves as expected after modifications.
**6.Usability Testing** - Tester access the user's friendliness and ease of the software from an end-users perspective. They evaluate factors such as navigation, layout, accessibility and overall user experience.
**7.User Acceptance Testing(UAT)** - End-users validate whether the software meets their business requirements and expectations. They perform UAT in a real world environment to determine if the system is ready for deployment.
**8.Integration Testing** - Testers verify the interaction between various module of the software. They ensure that integrated components work seamlessly together as a unified system.
**9.Localization and Internationalization Testing** - Tester assess how well the software adapts to different languages, culture and regional preferences. They verify that the software meets the linguistic and cultural requirements of target markets.
**10.Accessibility Testing** - Testers evaluate the software accessibility feature to ensure that users with disabilities can access and use the application effectively. They assess compliance with accessibility standards and guidelines.

             **Manual Testing Tool- jira**

  jira is a manual testing tool that helps teams assign, track, report and manage work and brings team together. This tool is compatible with agile software projects also.
  Jira is a popular project management and issue tracking tool developed by atlassian.While jira is not specifically a manual testing tool, it is widely used by software development and testing teams for managing tasks, tracking issues and collaborating on projects.
Here's how jira can be utilized in the context of manual testing
**1.Issue Tracking** - Tester can use jira to report defects discovered during manual testing.They create new issues, categorize them based on severity and priority assign them to developers for resolution and track their progress until they are resolved.
**2.Test Case Management** - While Jira is not a dedicated test case management tool it can be configured to manage test cases using its issue tracking features. Test cases can be created as issues in jira organized into test plans and linked to user stories.
**3.Test execution tracking** - Testers can use jira to track the execution of manual test cases by updating the status of test case issues as they progress through various testing phase.They can also record test execution details such as test results and comments within the test case issues.
**4.Integration with Test management Tool** - Some test management tools integrate with jira allowing testers to synchronize test cases, test plans and test execution results between the test management tool and jira.This integration streamlines the manual testing process by providing a centralized platform for test management and issue tracking.
**5.Reporting and Dash Boarding** - Jirs offers robust reporting and dash boarding capabilities allowing testers to generate custom reports and dashboards to visualize testing progress, defect trends and other key metrics.This helps stakeholders gain insights into the status of manual testing activities and identify areas for improvement.

While jira is not specifically designed for manual testing,its flexibility and customization options make it a valuable tool for managing manual testing activities within software development projects.Many testing teams integrate jira into their testing workflows to improve collaboration, transparency and efficiency throughout the manual testing process.
 **Features of jira** 
       Option to track and manage bug and defects.
       Prioritize and assign tasks.
       Collaborate with team members.
       Easily generate reports and track progress.


        ** 2.Advantages And Disadvantages of Manual Testing** 

        **Advantage of Manual Testing**

Manual testing despite the rise of automated testing tools continues to hold significance in software development processes due to several advantages it offers.Here are some key advantages of manual testing

**1.Human judgement and intuition**
              Manual testing allows testers to apply human judgement and intuition which are crucial in identifying some issues that automated tests might overlook. testers can employ their experience and domain knowledge to detect anomalies that automated scripts might not be programmed to recognize.
**2.Exploratory Testing**  
           Manual testing is particularly effective for exploratory testing where testers explore the software system in an unscripted manner to uncover unexpected behaviors and usability issues. This flexible approach can reveal critical issues that automated tests might miss.
**3.User Perspective**
          Manual testers can simulate real-world usage scenarios and evaluate the software from the perspective of end-users. They can assess the factors such as user experience, usability, accessibility and user interface design, ensuring that the software meets user expectations.
**4.Adaptability To Changes**
          In agile development environments where requirements evolve rapidly manual testers offers the advantage of being easily adaptable to changes. Testers can quickly modify test cases or perform ad-hoc testing to accommodate new features and changes in functionality.
**5.Early Detection of Usability Issues** 
         Manual testing is effective in detecting usability issues early in the development cycle. Testers can provide valuable feedback on user interface design, navigate flow and overall user experience, helping developers make necessary improvements before the product reaches the market.
**6.Cost Effective for Projects**
         Automated testing can require significant upfront investment in terms of time and resources to setup and maintain. For projects with frequently changing requirements manual testing can be more cost effective as it doesn't require the same level of initial investment.
**7.Testing unreliable Environment**
        In case where the testing environment is unstable manual testing can be more practical than automated testing. Human testers can adapt to unexpected issues more effectively ensuring thorough testing despite challenges in the testing environment.
**8.Bug Reporting**
        Testers can report bugs promptly allowing developers to address them early in the development cycle which can ultimately reduce the cost and effort of fixing defects later in the process.
**9.Localization and Internationalization Testing**
       Manual testing is essential for verifying the software's compatibility with different languages, cultures and regions. Testers can assess the accuracy of translations, cultural appropriateness and local specific functionality ensure that the software meets the needs of diverse global audiences.
**10.Testing Complex Scenarios**
        Manual testing is well suitable for testing complex scenarios that are difficult to automate such as multi-step workflows, scenarios involving human decision making.Testers can verify correctness of the software's behavior in these intricate scenarios, uncovering potential bugs and logic flaws.
**11.Security Testing**
       While automated testing tools can identify common vulnerabilities, manual testing is crucial for conducting in-depth security assessments such as penetration testing and ethical hacking. Testers can employee creative techniques to identify potential security loopholes, validate the effectiveness of security controls and assess the software's resilience to attacks.
**12.Accessibility Testing**
     Manual testing plays a vital role in ensuring that the software is accessible to users with disabilities. Testers ca evaluate the software's compliance with accessibility standards by testing with assistive technologies such as screen readers, magnifiers and voice recognition software and barriers to accessibility that automated tools may overlook.

While automated testing offers efficiency and repeatability, manual testing remains a crucial component of the testing process offering unique advantages that complement automated approaches. Combining both manual and automated testing strategies can result in more comprehensive test coverage and higher software quality.

        **Disadvantages of Manual Testing**

Certainly here are some disadvantages of manual testing

**1.Labor Intensive**
        Manual testing requires human testers to execute the testcases which can be time-consuming and labor-intensive especially for complex software systems.Testers need to repeat the same tests manually leading to inefficiencies and increased testing costs.
**2.Limited Coverage**
        Manual testing may not achieve comprehensive test coverage due to human limitations such as oversight, fatigue and biases.Testers may overlook certain scenarios resulting in gaps in test coverage and potentially leaving critical defects undiscovered.
**3.Subjectivity and Inconsistency**
      Manual testing is prone to subjectivity and inconsistency among different testers. Variability in tester skill levels, domain knowledge and testing approaches can lead to inconsistent test results and interpretations making it challenging to ensure the repeatability and reliability of tests.
**4.Infeasible for Regression Testing**
      Manual regression testing which involves retesting previously validated functionality after code changes can be impractical and time consuming.As the software evolves and the code base grows conducting thorough regression tests manually becomes increasingly challenging, leading to delays in the testing process and hindering the release cycle.
**5.Limited Scalability**
       Manual testing may struggle to scale effectively especially in agile environments where rapid release and frequent iterations are common.As the demand for testing increases with pace of development, manual testing teams may face difficulties in scaling their efforts to meet evolving testing requirements.
**6.High Risk of Human Error**
      Manual testing is susceptible to human errors including mistakes in test case execution, data entry errors and misinterpretation of requirements.These error can leads to false positives or false negatives in test results undermining the reliability and effectiveness of the testing process.
**7.Dependency on Test Environment**
      Manual testing relies on the availability and stability of the test environment, including hardware, software and network configurations.Any discrepancies between the test environment and the production environment can impact the accuracy and relevance of test results leading to potential discrepancies between testing and real world usages.
**8.Limited Reproducibility**
      Manual testing may lack reproducibility as test outcomes can vary based on factors such as tester expertise, testing conditions and environmental factors.Without the ability to consistently reproduce test results it becomes challenging to isolate and debug defects effectively prolonging the resolution time for identified issues.
**9.Slow feedback Loop**
      Manual testing can slow down the feedback loop between testers and developers particularly in scenarios where testers are overwhelmed with manual test execution tasks.Delays in identifying and reporting defects to developers can prolong the software development lifecycle, impeding the timely resolution of issues  delaying product release.
**10.Difficulty in Data Driven Testing**
        Manual testing of data driven scenarios where testers are repeated with different data sets can be challenging to manage and execute efficiently.Testers may struggle to handle large volumes of test data manually leading to errors in data entry, validations and result interpretation.Automation tools are better suited for managing data driven testing scenarios.
**11.Difficulty in Test Reporting and Traceability**
        Manual testing often lacks robust mechanisms for test reporting,documentation and traceability making it challenging to track test coverage, document test results comprehensively and communicate testing progress effectively.Testers may struggle to maintain comprehensive test documentation leading ambiguity and inefficiencies in the testing process
**12.Difficulty in load and performance Testing**
      Manual load and performance testing which involves simulating concurrent user activity to assess system scalability and response time is impractical and unreliable.Manual testes cannot generate realistic loads performance accurately making it challenging to identify performance bottlenecks, scalability issues and resource constraints effectively.

Despite these disadvantages manual testing remains an integral part of the testing process complementing automated testing approaches and providing valuable insights into software quality, usability and user experience.

             **Examples of Manual Testing**

              **Example-1**

Lets considers a real time project in e-commerce domain and provide a brief explanation of manual testing activities involved

**Project Name** - Online Clothing Store

**Project Descrption**
     The project involves the development of an online platform for selling clothing and accessories. User can browse through various categories of clothing items add them to their shopping cart proceed to checkout and make purchases. The platform also includes features such as user registration, account management, order tracking and customer support.

     **Manual Testing Activities**

**1.User Registration And Login**
      Verify that users can register for new accounts with valid information.
      Test login functionality with valid and invalid credentials.
      Verify password recovery process.
**2.Browsing and Searching Products**
      Ensure that users can browse through different categories(e.g., Mens, womens and kids) and subcategories.
     Verify search functionality by entering keywords and ensuring relevant products are displayed.
**3.Product detail and card management**
      Test product pages to ensure accurate display of product information, images, pricing and availability.
      Verify that users can add items to the shopping cart, update quantities and remove items as needed.
      Test product recommendations and related product features.
**4.Checkout process**
       Verify that user can proceed through the checkout process smoothly.
      Test shipping options and address validation.
      Ensure accurate calcution of taxes, discounts and shipping costs.
     Test different payment methods like credit card, debit card and gpay, ensure secure payment processing.
**5.Order Management**
      Test order confirmation emails and notifications.
      Verify that users can view order history, track shipments and manage returns.
     Test functionality for applying coupons.
**6.User Account Management**
     Verify that users can update their profile information, including shipping addresses and payment methods.
     Test subscription management for promotional emails.
     Ensure account security features such as password changes and two factor authentification(if implemented).
**7.Cross-Browser and Cross-Device Testing**
     Test the website across different web browsers(chrome,firefox,safari,edge) to ensure compatibility and consistent user experience.
     Verify responsiveness and functionality across various devices(desktop,laptops,tablets,smartphones).
**8.Performance and Load Testing**
     Test the websites performance under normal and peak trafic conditions.
    Verify page load times, response times and server performance.
    Conduct stress testing to identify performance bottlenecks and ensure scalability.
**9.Security Testing**
    Verify that sensitive information such as payment details is transmitted securely using encryption protocols.
    Test for common security vulnerabilities such as Sql injection, cross-site scripting and insecure direct object references.
   Ensure compliance with security standards and regulations.
**10.Usability and Accessibility Testing**
     Test the website's navigation and user interface elements for intutiveness and ease of use.
     Verify accessibility feature for users with disabilities including keyboard navigation, screen reader compatibility and alternative text for images.

By conducting thorough manual testing across these areas the online clothing store can ensure a high quality and user friendly experience for its customers leading to increased satisfaction and trust in the platform.

                **Example-2**

 Lets considers a real time project in the booking domain specifically focusing on hotel reservation and provide a brief explanation of manual testing activities involved.

**Project Name** - Hotel Booking System

**Project Description**
       The project involves the development of a web-based platform for users to search for hotels, view available rooms, make reservations and manage bookings. The system also includes features such as user registration, authentication, profile management and integration with third-party hotel APIs for real-time availability and pricing information.

          **Manual Testing Activities**

**1.User Registration and login**
      Verify that users can register for new accounts with valid information.
     Test login functionality with valid and invalid credentials.
     Verify passsword recovery or retest process.
**2.Hotel Search and Filtering**
       Test search functionality by entering destination, check-in/out dates and number of guests.
       Verify that search results display relevant hotels based on user criteria.
      Test filtering options such as price range, star rating and amenities and ensure accurate filtering of search results.
**3.Hotel and Room Details**
       Verify that users can view detailed information about each hotel including location, amenities, room types and pricing.
      Test room availability for selected dates and verify accurate display of room rates and available inventory.
     Ensure that images and descrptions of room are displayed correctly.
**4.Booking Process**
      Test the booking flow by selecting a room, entering guest information and conforming the reservation.
      Verify that user can add special request such as extra bed, early check-in during the booking process.
      Test for validation of booking details such as guest names, contact information and payment details.
**5.Payment processing**
      Test different payment methods credit cards,debit cards and ensure secure payment processing.
     Verify that users can receive conformation emails with booking details and payment receipts.
     Test for handling of payment failures and error messages.
**6.Resevation Management**
     Verify that user can view and manage their bookings including modifying dates, cancelling reservations and requesting refunds
    Test confirmation of reservation changes and updates to availability in real time.
**7.User Account Management**
       Test functionality for updating user profiles, including contact information, preferences and communication settings.
       Verify user can view their booking history,loyalty points and upcoming reservations.
**8.Integration Testing**
       Verify integratio with third party hotel Api's for retrieving real time availability and pricing information.
      Test synchronization of booking data between the booking system and external hotel systems.

And also we have to do the cross browser testing, performance testing, security testing, usability and accessibility as like online clothing store.By conducting thorough manual testing across these areas , the hotel booking system ensures a reliable, user-friendly experience for its customers leading to increased satisfaction and trust in the platform.

       ** Example-3**

Lets consider a real time project in the banking domain specifically focusing on an online banking platform and provide a brief explanation of manual testing activities involved

**Project Name** - Online Banking System

  **Project Description**
    The project involved a development of a web based platforms for customers to access banking services such as account management, fund transfers, bill payments and transaction history. The platforms also includes features such as user authentication, multi factor authentication, security measures and integration with banking systems for real time transactions and account updates.

            **Maual testing activities**

**1.User Registration and Login**
     Verify that user can register for new accounts with valid information.
     Test login functionality for viewing account balances, transaction histories and statements.
     Verify password recovery/retest process.
**2.Account Management** 
    Test functionality for viewing account balances, transaction histories and statements.
    Verify that user can update their personal information such as contact details and preferences.
   Test account-related actions such as account closures, account linking and account types such as saving, checking and so on.
**3.Fund Transfer and Payments**
     Test the process of transferring funds between accounts(internal transfers) and to external accounts(external transfers).
    Verify that user can setup recurring transfers and schedule future-dated payments.
    Test bill payments functionality for paying utility bills, credit card bills and other expenses.
**4.Transaction Processing**
     Test the accuracy and reliability of transaction processing , including deposits,withdrawals and transfers.
     Verify that transactions are reflected in real time and that account balances are updated accordingly.
     Test for handling of transaction failures, errors and reversals.
**5.Security Features**
     Test user authentication mechanisms such as username, password ,login, PINs and security questions.
     Verify multi factor authentication methods such as SMS codes, email verification and bio-metric authentication.
    Test security measures such as session timeouts, account lockouts and account activity monitoring.
**6.Integration Testing**
      Verify Integration with banking systems for processing tansactions, updating account informations and retrieving real time data.
     Test integration with third party services such as payment processors, credit bureaus and financial institutions.
**7.Cross Browser and Cross Device Testing**
     Test the online banking platform across different web- browsers to ensure compatibility and consistent user experience.
     Verify responsiveness and functionality across various devices
**8.Performance and Load Testing**
     Test the platforms performance under normal and peak traffic coditions.
     Verify response time for account inquiries, transaction processing and other critical functionalities.
    Conduct stress testing to identify the performance and ensure scalability.
**9.Usability and Accessibility Testing**
     Test the website's navigation and user interface elements for intuitiveness and ease of use.
    Verify accessibility features for users with disabilities including keyboard navigation,screen reader compatibility and alternative text for images.
**10.Compliance and Regulatory Testing**
    Ensure compliance with banking regulations such as KYC(Know Your Customer), AML(Anti Money Laundering) and GDPR(General Data Protection regulation).
   Verify that security measures and data handling practices comply with industry standards and regulatory requirements.

By conducting thorough manual testing across these areas the online banking system can ensure a secure, reliable and user-friendly experience for its customers.