Exploratory software testing is a powerful approach. ET can promote Computational thinking. I’ve tried various definitions of exploratory testing. The one that has emerged out of my discussions with my colleagues is this: Exploratory testing is simultaneous learning, test design, and test execution. In other words, exploratory testing is any testing to the extent that the tester actively controls the design of the tests as those tests are performed and uses information gained while testing to design new and better tests.
What kinds of specifics affect ET? Here are some of them:
- the mission of the test project
- the mission of this particular test session
- the role of the tester
- the tester (skills, talents, and preferences)
- available tools and facilities
- available time
- available test data and materials
- available help from other people
- accountability requirements
- what the tester’s clients care about
- the current testing strategy
- the status of other testing efforts on the same product
- the product, itself
- its user interface
- its behavior
- its present state of execution
- its defects
- its testability
- its purpose
- what the tester knows about the product
- what just happened in the previous test
- known problems with it
- past problems with it
- strengths and weaknesses
- risk areas and magnitude of perceived risk
- recent changes to it
- direct observations of it
- rumors about it
- the nature of its users and user behavior
- how it’s supposed to work
- how it’s put together
- how it’s similar to or different from other products
- what the tester would like to know about the product