This section addresses key components and strategies for managing test activities effectively in the context of software testing.
Defect Management: The process of identifying, documenting, and resolving defects.
Risk Management: Involves identifying and managing potential risks that could affect product quality.
Test Planning: The process of defining the scope, approach, resources, and schedule of intended testing activities.
Test Monitoring and Control: Assessing the test progress and performance to meet established criteria.
FL-5.1.1: Understand the purpose and content of a test plan.
FL-5.1.2: Recognize the tester's value added to iteration and release planning.
FL-5.1.3: Distinguish between entry and exit criteria.
FL-5.1.4: Utilize estimation techniques to ascertain required test effort.
FL-5.1.5: Implement test case prioritization strategies.
FL-5.1.6: Recall the concept of the test pyramid.
FL-5.1.7: Summarize the testing quadrants and their connections to test levels and types.
FL-5.2.1: Identify risk levels using likelihood and impact.
FL-5.2.2: Differentiate between project risks and product risks.
FL-5.2.3: Explain how product risk analysis influences testing thoroughness and scope.
FL-5.2.4: Describe measures in response to analyzed product risks.
FL-5.3.1: Review metrics utilized in testing.
FL-5.3.2: Summarize purposes and audiences for test reports.
FL-5.3.3: Communicate the status of testing effectively.
FL-5.4.1: Explain how configuration management supports testing.
FL-5.5.1: Develop a defect report.
A test plan serves as a guide documenting the objectives, resources, and processes associated with a test project. Its main purposes include:
Documenting means and schedules to accomplish test objectives.
Ensuring that test activities meet established criteria.
Acting as a communication tool among stakeholders.
Ensuring adherence to test policy and strategy.
Key contents of a test plan typically encompass the context of testing, assumptions, stakeholder assignments, communication plans, risk registers, test approaches, budget, and schedules. For in-depth details, reference the ISO/IEC/IEEE 29119-3 standard.
In an iterative software development life cycle (SDLC), two types of planning take place: release planning, which focuses on the overall product release scope, and iteration planning, which pertains to single iteration activities. Testers in release planning can draft testable user stories, engage in project risk analysis, and determine their testing approaches. In iteration planning, Tester’s roles include assessing user story risk, task identification, and estimating effort required for testing tasks.
Entry Criteria outline prerequisites that must be fulfilled before initiating testing activities, such as resource availability and pre-test quality assurance pass.
Exit Criteria, conversely, define the completion benchmarks for activities, including thoroughness measures like defect densities and completion of planned tests. Both criteria must be tailored to each test level based on defined objectives. In Agile practices, similarities exist with Definition of Done for exit criteria and Definition of Ready for entry criteria.
Effective estimation techniques are pivotal for allocating suitable resources. Methods include:
Ratios: Using historical data to create standard ratios.
Extrapolation: Analyzing early-stage data to derive future estimates.
Wideband Delphi: Gathering insights from multiple experts and refining estimates through discussion.
Three-point Estimation: Utilizing optimistic, pessimistic, and most likely estimates to derive a final estimate and associated variability.
Prioritization of test cases can include risk-based, coverage-based, or requirements-based strategies. Effective prioritization ensures high-risk functions are tested first or that requirement priorities dictate execution order while acknowledging dependencies.
The test pyramid emphasizes that varied test types exist at different levels of granularity. Typically, unit tests are at the base needing high quantities, while high-level end-to-end tests occupy the apex, requiring fewer instances due to their complexity and execution time.
Defined by Brian Marick, the Testing Quadrants categorize tests based on their purpose (support vs. critique) and focus (business vs. technology). The quadrants are:
Q1: Component tests (technology-facing, supporting team).
Q2: Functional tests (business-facing, supporting team).
Q3: User acceptance and exploratory tests (business-facing, critiquing product).
Q4: Smoke and non-functional tests (technology-facing, critiquing product).
Effective risk management fosters confidence and trusts while influencing product quality and achievement of objectives. Key activities encompass risk analysis including identification and assessment, and risk control involving mitigation and monitoring.
Risk is defined as a potential event that could create adverse effects characterized by:
Likelihood: Probability of risk occurrence.
Impact: Consequences of that occurrence which together measure the risk level.
Project risks pertain to management issues potentially impacting schedules and budgets, while product risks relate to quality characteristics, affecting functionality and user satisfaction, often leading to unfavorable outcomes.
Conducted early in the SDLC, product risk analysis aims to focus test efforts on reducing residual risks through identification and assessment techniques such as brainstorming workshops or interviews, leading to prioritization based on importance.
Encompasses necessary responses to identified risks including mitigation through testing actions and ongoing monitoring to track the effectiveness of these measures, ensuring proactive adjustments as required.
Metrics such as project progress, test execution outcomes, product quality, defect counts, risk levels, and coverage metrics provide insights into the testing process, guiding decision-making and adjustments.
Test reports serve to summarize and communicate testing outcomes, risks, and progress to stakeholders, showcasing both detailed reports and concise progress updates tailored to the audience's requirements.
Effective communication strategies may involve verbal updates, dashboards, electronic channels, online documentation, and formal reports, tailored to meet stakeholder needs and enhance understanding of testing status.
Configuration management disciplines identify, manage, and track all testing-related documentation and items, ensuring traceability and accountability across the testing lifecycle using proper version control practices.
A robust defect management process is crucial for surfacing and addressing defects throughout the SDLC. Reported defects should be logged, categorized, and resolved according to a defined workflow, facilitating continuous improvement in development practices.