Testing Fundamentals

Testing is the process of evaluating a system or its component(s) with the intent to find whether it satisfies the specified requirements or not. It is the process of executing a system to identify any gaps, errors, or missing requirements in the functional, performance, and security aspects.

1.Understanding Testing Fundamentals

Purpose of Testing:

  • Ensure the quality of the software product.
  • Validate and verify if the software product meets the business requirements.
  • Identify and fix defects to ensure a smooth running system.

Different Aspects of Testing:

    Functional Testing: Focuses on testing the functionality of the software. It ensures that each function or component performs the desired function accurately.

    Non-Functional Testing: Involves testing aspects like performance, reliability, usability, security, and more.

    Manual Testing: The process of testing software manually by a human tester without using any automated tools or scripts.

    Automated Testing: The process of testing software using scripts and automated tools to reduce human intervention.

    2.Types of Testing:

    Unit Testing: Individual components or units of the software are tested. It is usually done by developers.

    Integration Testing: Different units of the software are combined and tested as a group to ensure they work together.

    System Testing: The complete and integrated software is tested for the first time to check if it meets the specified requirements.

    Acceptance Testing: The software is tested for acceptance by the end-users or stakeholders to check if it satisfies the business requirements.

    Regression Testing: Ensures that new changes or modifications have not adversely affected existing functionalities.

    Performance Testing: Checks how fast the system responds under different conditions.

    Security Testing: Ensures the system is secure and protected against unauthorized access.

    Usability Testing: Checks the user-friendliness of the software.

    3.Testing Methods:

    White-Box Testing: The internal structure of the software is known to the tester. They design test cases based on the internal structure.

    Black-Box Testing: The internal structure of the software is not known to the tester. They design test cases based on the software’s external functionality.

    Grey-Box Testing: A combination of both white-box and black-box testing.

    4.Test Levels:

    Unit Testing: Tests the smallest units of the software.


    Integration Testing: Tests how different units of the software work together.


    System Testing: Tests the entire system.


    Acceptance Testing: Tests the software for acceptance by end-users or stakeholders.

    5.Test Plan and Test Cases:

    Test Plan: A document that outlines the objectives, scope, approach, resources, and schedule of testing.

    Test Case: A set of conditions under which a tester will determine whether the software meets its requirements.

    6.Quality Assurance (QA) and Quality Control (QC):

    QA: The process of managing the quality of the software development process.

    QC: The process of ensuring the quality of the product.

    Comments

    Popular posts from this blog

    What is Manual Testing? An In-Depth Look

    Introduction to Manual Testing

    Software Development Life Cycle (SDLC)