summay
summay
summay
Test Plan
A test plan is a document that describes the scope, approach, resources, and schedule of intended
test activities. It identifies test items, features to be tested, testing tasks, who will do each task,
degree of tester independence, the test environment, the test design techniques and entry and exit
criteria to be used, and the rationale for their choice, and any risks requiring contingency planning.
1. Analyze the Product: Learn the product thoroughly to understand its features and
functionality.
2. Develop Test Strategy: Define the scope of testing, risk, and issues.
3. Define Objective of Test: Define the objective of the test to ensure that it aligns with the
project goals.
4. Define Test Criteria: Define the criteria for pass-fail, suspend, and resume testing.
5. Planning the Resources: Plan the resources required for testing, including personnel,
equipment, and software.
6. Plan Test Environment: Plan the test environment, including the hardware, software, and
network configuration.
7. Schedule and Cost: Schedule the testing activities and estimate the cost of testing.
8. Test Deliverables: Identify the test deliverables, including test cases, test scripts, test data,
and test reports.
1. Master Test Plan: A single high-level test plan for a project/product that unifies all other test
plans.
2. Testing Level Specific Test Plans: Plans for each level of testing, including unit testing,
integration testing, system testing, and acceptance testing.
3. Testing Type Specific Test Plans: Plans for major types of testing, including performance
testing, security testing, and usability testing.
1. Make the Plan Concise: Avoid redundancy and superfluousness in the test plan.
2. Be Specific: Be specific when specifying the test environment, test data, and test criteria.
3. Use Lists and Tables: Use lists and tables to make the test plan easy to read and understand.
4. Review and Update: Review and update the test plan regularly to ensure that it remains
relevant and effective.
3. Setting up Criteria for Testing: Set up clear entry and exit criteria, pass or fail criteria,
suspend criteria, and resume criteria for different phases of testing.
5. Identifying Resource Requirements: Identify the resources required for testing, including
personnel, equipment, and software.
1. Test Deliverables: Identify the test deliverables, including test cases, test scripts, test data,
and test reports.
2. Milestones: Identify the milestones for testing, including the completion of test planning,
test execution, and test reporting.
Test Management
1. Test Infrastructure Management: Plan and manage the test infrastructure, including the test
environment, test data, and test tools.
2. Test People Management: Manage the test team, including staffing, training, and
motivation.
3. Test Process: Define and manage the test process, including test planning, test execution,
and test reporting.
1. Identify Test Teams: Identify the test teams and their roles and responsibilities.
2. Decide Roadmap: Decide the roadmap for the project, including the test schedule and
milestones.
3. Identify Scope of Testing: Identify the scope of testing, including the features to be tested
and not to be tested.
4. Discuss Test Plan: Discuss the test plan with the development team and stakeholders.
5. Identify Metrics: Identify the metrics for testing, including test coverage, test efficiency, and
test effectiveness.
6. Calculate Size of Project: Calculate the size of the project, including the number of test cases
and test scripts.
7. Identify Skill Gap: Identify the skill gap in the test team and provide training and education.
8. Identify Tools: Identify the tools required for testing, including test automation tools and test
management tools.
1. Initiate Test Plan: Initiate the test plan and test execution.
2. Conduct Review Meetings: Conduct review meetings to discuss test progress and issues.
3. Monitor Test Progress: Monitor test progress and identify issues and risks.
4. Check for Delays: Check for delays in the test schedule and identify the root cause.
5. Discuss Risks: Discuss risks and issues with the test team and stakeholders.
Test Process
1. Base Lining of Test Plan: Base line the test plan and test execution.
2. Test Case Specification: Develop test case specifications, including test case ID, title,
program, author, date, background, expected error, reference, data, and script.
3. Test Reporting: Develop test reports, including test summary report, test cycle report, and
test incident report.
Test Reporting
1. Test Incident Report: Develop a test incident report to document defects and issues.
2. Test Cycle Report: Develop a test cycle report to document test progress and issues.
3. Test Summary Report: Develop a test summary report to document test results and
recommendations.
First unit
Here's a more detailed explanation of each point:
Software testing is the process of executing a program or system with the intent of finding errors or
bugs. It involves evaluating the software to determine whether it meets the required specifications,
works as expected, and is free from defects. Software testing is a critical part of the software
development life cycle, and it helps to ensure that the software is reliable, stable, and meets the
user's requirements.
2. Role of Testing
Find defects: Testing helps to identify defects or bugs in the software, which can be fixed
before the software is released to the end-users.
Gain confidence: Testing helps to gain confidence in the quality of the software, which is
essential for building trust with the end-users.
Prevent defects: Testing helps to prevent defects by identifying and fixing them early in the
development cycle.
Ensure requirements: Testing ensures that the software meets the business and user
requirements, which is critical for the software's success.
Satisfy BRS and SRS: Testing ensures that the software satisfies the Business Requirement
Specification (BRS) and System Requirement Specification (SRS).
Gain customer confidence: Testing helps to gain the confidence of the customers by
providing them with a quality product.
4. Types of Testing
Static testing: Static testing involves reviewing the software's code and documentation
without executing the code. It includes techniques such as walkthroughs, inspections, and
reviews.
Dynamic testing: Dynamic testing involves executing the software to test its functionality and
performance. It includes techniques such as unit testing, integration testing, system testing,
and acceptance testing.
White box testing: White box testing involves testing the software with knowledge of its
internal code and structure. It includes techniques such as code review and code coverage
testing.
Black box testing: Black box testing involves testing the software without knowledge of its
internal code and structure. It includes techniques such as functional testing and non-
functional testing.
Boundary value analysis: Boundary value analysis involves testing the software at the
boundaries of its input domain to ensure that it works correctly.
Code coverage testing involves testing the software's code to ensure that it is executed correctly. It
includes techniques such as:
Statement coverage: Statement coverage involves testing each statement in the software's
code to ensure that it is executed correctly.
Branch coverage: Branch coverage involves testing each branch in the software's code to
ensure that it is executed correctly.
Condition coverage: Condition coverage involves testing each condition in the software's
code to ensure that it is executed correctly.
7. Quality Assurance
Quality assurance is a process-oriented approach to ensuring that the software meets the required
quality standards. It involves:
Providing confidence: Quality assurance provides confidence that the software meets the
required quality standards.
Fulfilling quality requirements: Quality assurance involves fulfilling the quality requirements
of the software.
8. Quality Control
Quality control is a product-oriented approach to ensuring that the software meets the required
quality standards. It involves:
Fulfilling quality requirements: Quality control involves fulfilling the quality requirements of
the software.
Measuring quality: Quality control involves measuring the quality of the software to ensure
that it meets the required standards.
2nd Unit
Unit Testing
Unit testing is a level of software testing where individual units or components of a software are
tested. The purpose is to validate that each unit of the software performs as designed. It is the first
level of testing and is performed prior to Integration Testing. A unit is the smallest testable part of
software, usually with one or a few inputs and a single output.
Integration Testing
Integration testing is a level of software testing where individual units are combined and tested as a
group. It tests the integration or interfaces between components, interactions to different parts of
the system, and interfaces between systems. There are two approaches to integration testing:
incremental and non-incremental.
2. Bottom-Up Integration: Testing is conducted from sub-module to main module. If the main
module is not developed, a temporary program called a driver is used to simulate the main
module.
Performance Testing
Performance testing is a type of testing to ensure software applications will perform well under their
expected workload. It checks the software's speed, scalability, and stability.
1. Load Testing: Testing the system with a constantly increasing load until the load reaches its
threshold value.
2. Stress Testing: Testing the stability of the software when hardware resources are not
sufficient.
Security Testing
Security testing is a testing technique to determine if an information system protects data and
maintains functionality as intended. It aims to verify six basic principles: confidentiality, integrity,
authentication, authorization, availability, and non-repudiation.
Client-Server Testing
Client-server testing is a type of testing usually done for 2-tier applications. It involves testing the
front-end and back-end of the application.
Acceptance Testing
Acceptance testing is a level of software testing where a system is tested for acceptability. It
evaluates the system's compliance with business requirements and assesses whether it is acceptable
for delivery.
2. Operational Acceptance Test: Validates whether the system meets the requirements for
operation.
1. Alpha Testing: Conducted by a team of highly skilled testers at the development site.
2. Beta Testing: Conducted at the customer's site, where the system is tested under real-world
conditions.
Regression Testing
Regression testing is a type of software testing to confirm that a recent program or code change has
not adversely affected existing features.
GUI Testing
GUI testing is the process of testing the system's graphical user interface. It involves checking the
screens with controls like menus, buttons, icons, and all types of bars.
4th unit