Exploratory testing is a testing approach that emphasizes learning, creativity, and adaptability. It involves simultaneous test design and test execution, where the tester uses heuristics, intuition, and experience to explore the system under test and discover new information. Exploratory testing can be performed in an Agile project to complement other testing activities, such as test-driven development, behavior-driven development, and acceptance test-driven development.
The correct approach to adopt for exploratory testing in an Agile project is D, as it follows the best practices for exploratory testing:
Ask experienced testers to prepare test charters for time-boxed sessions lasting no more than 2 hours: A test charter is a brief document that describes the scope, objective, and strategy of an exploratory testing session. A test charter helps guide the tester's exploration and document the results. A time box is a fixed period allocated for an exploratory session. It helps keep focus and limits scope. A time box should not be too long, as it may reduce concentration and creativity. A recommended duration is between 45 minutes and 2 hours.
Tests should be designed and executed within each session using heuristics, creativity, and intuition: Exploratory testing is iterative and interactive. The tester designs and executes tests based on observations and feedback from the system. The tester uses heuristics (rules of thumb that help simplify complex problems), along with creativity and intuition, to generate test ideas and make informed decisions.
The incorrect approaches to adopt for exploratory testing in an Agile project are A, B, and C, as they violate the principles and practices of exploratory testing:
Option A: Allocate independent testers to design exploratory tests using test charters in time-boxed sessions. Plan to run all sessions in parallel with each session lasting more than 5 hours: This approach is incorrect because it separates test design from test execution, which contradicts the core of exploratory testing. It also uses excessively long time boxes, which can harm focus and creativity.
Additionally, it reduces collaboration within the Agile team by isolating testers from developers and stakeholders.
Option B: Ask experienced testers to try and find new defects by using the system without the constraint of documentation and tools: This approach is incorrect because it does not use test charters, which are essential for guiding and documenting exploratory testing sessions. It also overlooks heuristics, creativity, and intuition as structured methods for generating test ideas. It suggests that exploratory testing is random and unstructured, which is a misconception-exploratory testing is disciplined and systematic.
Option C: Use testers who have not been involved in the sprint to write new test cases from the user stories. These test cases are then executed in a time-boxed session for the sprint: This approach is incorrect because it separates test design from execution. It also uses testers who were not part of the sprint, which may limit their understanding of the product and user needs. It does not use test charters and does not rely on heuristics, creativity, or intuition, all of which are essential to exploratory testing.