1. Introduction to Software Testing
Test planning is a critical phase in the software testing process that involves creating a comprehensive plan outlining the approach, scope, resources, schedule, and deliverables for testing a specific project. A well-defined test plan serves as a roadmap for the testing team, guiding them throughout the testing life cycle. Here are key aspects of test planning:
Objectives of Test Planning:
-
- Define Scope and Approach: Clearly outline what will be tested, including features, functionalities, and system components.
- Establish Test Criteria: Set criteria for test entry, exit, and completion.
- Identify Resources: Determine the human, hardware, software, and other resources required for testing.
- Schedule and Timeline: Develop a timeline for test activities, aligning with the overall project schedule.
- Define Deliverables: Specify the test deliverables, such as test cases, test scripts, and test reports.
- Define Scope and Approach: Clearly outline what will be tested, including features, functionalities, and system components.
Key Components of a Test Plan:
-
- Introduction: Overview of the test plan, including its purpose, objectives, and scope.
- Test Items: List of items or features to be tested, including software components and configurations.
- Features to be Tested: Specify the functionalities or features that will be tested.
- Features Not to be Tested: Clearly state any features or functionalities that are excluded from testing.
- Test Approach: Outline the overall testing strategy, methodologies, and techniques to be used.
- Test Deliverables: Specify the documents, reports, and artifacts to be produced during the testing process.
- Testing Tasks: Break down the testing activities into tasks with assigned responsibilities.
- Environmental Needs: Identify the necessary hardware, software, and network configurations for testing.
- Staff and Training Needs: Outline the roles and responsibilities of team members, along with any required training.
- Schedule: Create a detailed timeline for each testing phase, including start and end dates.
- Risks and Contingencies: Identify potential risks to the testing process and outline contingency plans.
- Approvals: Specify the individuals or groups responsible for approving the test plan.
- Introduction: Overview of the test plan, including its purpose, objectives, and scope.
Test Planning Process:
-
- Understanding Requirements: Gather and understand the project requirements to define the scope of testing.
- Identifying Testable Items: Determine the features, functionalities, and components to be tested.
- Defining Test Objectives: Clearly state the objectives and goals of the testing process.
- Selecting Test Techniques: Choose appropriate testing techniques based on the project's needs and requirements.
- Resource Planning: Allocate resources, including personnel, tools, and equipment.
- Scheduling: Develop a testing schedule that aligns with the project timeline.
- Risk Analysis: Identify potential risks and develop strategies to mitigate them.
- Documenting: Document the test plan with all the relevant details.
- Review and Approval: Review the test plan with stakeholders and obtain necessary approvals.
- Understanding Requirements: Gather and understand the project requirements to define the scope of testing.
Benefits of Test Planning:
-
- Ensures a systematic and organized approach to testing.
- Provides a clear roadmap for the testing team.
- Helps in resource allocation and management.
- Facilitates communication among team members and stakeholders.
- Enables early identification and mitigation of risks.
A well-prepared test plan is a crucial document that contributes to the success of the testing process. It helps in achieving comprehensive test coverage and ensures that the software meets the specified quality standards.
To create a test plan you should follow the next steps:
Analyze the product
Before any test activity occurs, it’s important to define the scope of testing for your release. This means defining the features or functions that need to be included in the release, considering any constraints and dependencies that can affect the release, and determining what type of release it is.
Examples of questions to ask when defining the release scope include:
-
- Are there new features being released in this version?
- What are the risk areas?
- Are there any particularly sticky areas where you’ve seen regressions in the past?
- What type of release is it? Is this a maintenance release that includes bug fixes? Is this a minor feature release? Is this a major feature release?
- What does being “done” actually look like for your team?
- Are there new features being released in this version?
For example, what information would you require if your organization has just launched a new e-commerce site and wants to test it before it launches?
Whether it’s talking with the developers to understand the scope of the project, or working with a product manager to walkthrough new functionalities and user flow, defining the scope ensures that accurate information is being shared and that there is a common understanding of the product’s goals, expectations, and features (How To Create A Test Plan (Steps, Examples, & Template).
Design test strategy
Test Strategy is a critical step in making a Test Plan in Software Testing. A Test Strategy document, is a high-level document, which is usually developed by Test Manager. This document defines:
-
- The project’s testing objectives and the means to achieve them
- Determines testing effort and costs
- The project’s testing objectives and the means to achieve them
Back to your project, you need to develop a Test Strategy for testing that banking website. You should follow the steps below
(TEST PLAN in Software Testing (Example))
Test Strategy Example - See attached files.
Define test objectives
Test Objective is the overall goal and achievement of the test execution. The objective of the testing is to find as many software defects as possible; and ensure that the software under test is bug-free before release.
To define the test objectives, you should do 2 following steps
-
- List all the software features (functionality, performance, GUI…) which may need to be tested.
- Define the target or the goal of the test based on the above features
Let’s apply these steps to find the test objective of the Bank testing project, for example:
This figure shows all the features which our example may have.
Define test criteria
Test Criteria is a standard or rule on which a test procedure or test judgment can be based. There’re 2 types of test criteria as follows:
- Suspension Criteria
Specify the critical suspension criteria for a test. If the suspension criteria are met during testing, the active test cycle will be suspended until the criteria are resolved.
Test Plan Example: If your team members report that there are 40% of test cases failed, you should suspend testing until the development team fixes all the failed cases.
- Exit Criteria
It specifies the criteria that denote a successful completion of a test phase. The exit criteria are the targeted results of the test and are necessary before proceeding to the next phase of development. Example: 95% of all critical test cases must pass.
Some methods of defining exit criteria are by specifying a targeted run rate and pass rate.
(TEST PLAN in Software Testing (Example))
Resource Planning
Resource plan is a detailed summary of all types of resources required to complete a project task. Resource could be human, equipment and materials needed to complete a project
The resource planning is an important factor of test planning because helps in determining the number of resources (employees, equipment…) to be used for the project. Therefore, the Test Manager can make the correct schedule & estimation for the project.
Plan Test Environment
Planning a test environment guarantees precise and robust testing. The test environment includes hardware, software, and network configurations for software testing. Follow these procedures to set up the test environment:
-
-
- Determine your hardware and program requirements: Select test environment devices and software, including operating systems, browsers, databases, and testing tools.
- Install the required software: Once prerequisites are established, install the necessary tools on the test environment. This may require setting up a separate server to host the application and installing a database management system or other tools.
- Configure the network: Make sure that firewall protocols, IP addresses, and DNS settings, among other network configurations, are identical between the test and production environments.
- Create the test data: Prepare the test material for the application’s testing. Test data can be created manually with data from the production environment, retrieved from an existing production environment and database, or, created via automated Data Generation Tools.
- Access the builds: Ensure that the builds that the testers will be testing are accessible. One example is setting up a file-sharing or version control system to allow testers access to the most current builds.
- Verify the test environment: After setting it up, check that your test environment fulfils the requirements.
- Determine your hardware and program requirements: Select test environment devices and software, including operating systems, browsers, databases, and testing tools.
-
Schedule and Estimation
Software Test Estimation Techniques
Test Deliverables
Test deliverables are provided before the testing phase.
-
- Test plans document.
- Test cases documents
- Test Design specifications.
- Test plans document.
Test Plan Example - See Attached files.