Exploratory testing: Difference between revisions

Content deleted Content added
Added modern approach list for creating Exploratory Testing business case, or for use in interviews when asking about the topic.
 
(One intermediate revision by one other user not shown)
Line 17:
 
== Description ==
Exploratory testing seeks to find out how the software actually works, and to ask questions about how it will handle difficult and easy cases. The quality of the testing is dependent on the tester's skill of inventing [[Test case (software)|test case]]s and finding [[software bug|defects]]. The more the tester knows about the product and different [[test method]]s, the better the testing will be.
 
To further explain, comparison can be made of freestyle exploratory testing to its antithesis [[test script|scripted testing]]. In the latter activity test cases are designed in advance. This includes both the individual steps and the expected results. These tests are later performed by a tester who compares the actual result with the expected. When performing exploratory testing, expectations are open. Some results may be predicted and expected; others may not. The tester configures, operates, observes, and evaluates the product and its behaviour, critically investigating the result, and reporting information that seems likely to be a bug (which threatens the value of the product to some person) or an issue (which threatens the quality of the testing effort).
Line 43:
== Scientific studies ==
Replicated experiment has shown that while scripted and exploratory testing result in similar defect detection effectiveness (the total number of defects found) exploratory results in higher efficiency (the number of defects per time unit) as no effort is spent on pre-designing the test cases.<ref>{{Cite journal|last1=Itkonen|first1=Juha|last2=Mäntylä|first2=Mika V.|date=2013-07-11|title=Are test cases needed? Replicated comparison between exploratory and test-case-based software testing|journal=Empirical Software Engineering|language=en|volume=19|issue=2|pages=303–342|doi=10.1007/s10664-013-9266-8|issn=1382-3256|citeseerx=10.1.1.363.6524|s2cid=254472881 }}</ref> Observational study on exploratory testers proposed that the use of knowledge about the ___domain, the system under test, and customers is an important factor explaining the effectiveness of exploratory testing.<ref>{{Cite journal|last1=Itkonen|first1=J.|last2=Mäntylä|first2=M. V.|last3=Lassenius|first3=C.|date=2013-05-01|title=The Role of the Tester's Knowledge in Exploratory Software Testing|journal=IEEE Transactions on Software Engineering|volume=39|issue=5|pages=707–724|doi=10.1109/TSE.2012.55|s2cid=1763558 |issn=0098-5589}}</ref> A case-study of three companies found that ability to provide rapid feedback was a benefit of Exploratory Testing while managing test coverage was pointed as a short-coming.<ref>{{Cite book|last1=Itkonen|first1=J.|last2=Rautiainen|first2=K.|title=2005 International Symposium on Empirical Software Engineering, 2005 |chapter=Exploratory testing: A multiple case study |date=2005-11-01|pages=10 pp.–|doi=10.1109/ISESE.2005.1541817|isbn=978-0-7803-9507-7|s2cid=7974121 }}</ref> A survey found that Exploratory Testing is also used in critical domains and that Exploratory Testing approach places high demands on the person performing the testing.<ref>{{Cite book|last1=Pfahl|first1=Dietmar|last2=Yin|first2=Huishi|last3=Mäntylä|first3=Mika V.|last4=Münch|first4=Jürgen|title=Proceedings of the 8th ACM/IEEE International Symposium on Empirical Software Engineering and Measurement |chapter=How is exploratory testing used? A state-of-the-practice survey |date=2014-01-01|series=ESEM '14|___location=New York, NY, USA|publisher=ACM|pages=5:1–5:10|doi=10.1145/2652524.2652531|isbn=9781450327749|hdl=10138/153363|s2cid=17924562 }}</ref>
 
== Usage ==
Exploratory testing is particularly suitable if [[software requirement|requirements]] and [[Program specification|specifications]] are incomplete, or if there is lack of time.<ref name=Bach-ETE>{{Cite web
| last = Bach
| first = James
| title = Exploratory Testing Explained
| publisher = satisfice.com
| year = 2003
| page = 7
| url = http://www.satisfice.com/articles/et-article.pdf
| access-date = October 23, 2010}}</ref><ref name=Kaner-TET>{{Cite web
| last = Kaner
| first = Cem
| title = A Tutorial in Exploratory Testing
| publisher = kaner.com
| year = 2008
| url = http://www.kaner.com/pdfs/QAIExploring.pdf
| pages = 37, 118
| access-date = October 23, 2010
| archive-date = June 12, 2013
| archive-url = https://web.archive.org/web/20130612043734/http://www.kaner.com/pdfs/QAIExploring.pdf
| url-status = dead
}}</ref>
The approach can also be used to verify that previous testing has found the most important defects.<ref name=Bach-ETE />
 
Fundamental Principles that make Exploratory Testing a valuable and effective approach in software quality, explained using the W.A.T.E.R Acronym coined by [https://www.linkedin.com/posts/aj-wilson-b00b1e80_exploratorytesting-testing-interviewing-activity-7202235368849424384-XZ7C? Aj Wilson] in 2024.
 
W — Wide Coverage
 
Exploratory testing aims to cover as many areas of the application as possible. Testers explore various features, functions, and user paths to ensure that the parts of the system their oracle knowledge tells them to cover, which might be missed in scripted/fallible testing.
 
A — Adaptive Approach
 
Exploratory testing is highly adaptive. Testers continuously learn and adapt their testing strategies based on their findings. This flexibility allows testers to pivot and focus on areas that seem more error-prone or that reveal unexpected behaviours.
 
T — Time-Efficient
 
Exploratory testing can be more time-efficient compared to traditional testing methods. Without the need for detailed test case documentation beforehand, testers can start testing immediately. This efficiency is particularly beneficial in agile environments where quick feedback is crucial.
 
E — Experience-Driven
 
The success of exploratory testing heavily relies on the tester’s experience and intuition, we sometimes call this their Oracle experience. Skilled testers use their knowledge of the application, the ___domain, and common software issues to guide their testing efforts. Their experience helps in identifying critical issues that automated tests might overlook.
 
R — Realistic Scenarios
 
Exploratory testing often involves simulating realistic user scenarios whilst also considering real life experiments that might be going on across your engineering domains. Testers interact with the application as real users would, uncovering usability issues and ensuring the application behaves as expected under real-world conditions. This approach helps in finding bugs that affect the end-user experience or will be detrimental to Product Health or Value.
 
== See also ==