Monkey testing

from Wikipedia, the free encyclopedia

Monkey testing is a software testing technique that simulates that a monkey would use the application. H. there are random inputs generated on the user interface and are testing whether the application or system crashes. The monkey test is the extreme form of the negative test .

overview

While the source of the name "Monkey" is uncertain, it is believed by some that the name has something to do with the Infinite Monkey theorem , which states that if a monkey types long enough on a typewriter, a monkey will , at some point produced the complete works of William Shakespeare . Others believe that the name was derived from the classic Mac OS application "The Monkey," which was developed by Steve Capps before 1983 to feed random events into Mac programs and to find bugs in MacPaint .

Types of Monkey Testing

Monkey testing can be divided into “dumb” and “intelligent” monkey testing ( dumb or smart monkey testing ).

Stupid monkey testing

Dumb monkey testing has the following characteristics:

  • No knowledge of the application or the system
  • No knowledge of whether the input behavior is valid or invalid
  • No knowledge about the behavior of the application or the system or the typical user behavior
  • Can find fewer errors than intelligent monkey testing, but may find U. important errors that are more difficult to find by intelligent monkey testing.

Intelligent monkey testing

Intelligent monkey testing is usually distinguished by the following characteristics:

  • Rudimentary knowledge of the application or the system
  • Knows the current state within the application, past states and possible future states
  • Knows its capabilities and those of the application or system
  • Targeted attempts to crash the application or system
  • Reports on errors found

Sometimes intelligent monkey testing is also referred to as brilliant monkey testing when it tries to approximate typical user behavior and can make statements about the probability of the occurrence of the errors found.

Advantages and disadvantages

advantages

Monkey testing is an efficient way to identify some out-of-the-box errors. Since the tested scenarios are mostly ad hoc , the monkey test can also be a good way to conduct load and stress tests. The intrinsic randomness of monkey testing also makes it a great way to find critical bugs that can destroy the entire system. Setting up monkey testing is easy, so it is well suited for any type of application. If intelligent monkey testing is properly configured and has a good enough state model, it is good at finding different types of faults.

disadvantage

The randomness of monkey testing often makes it difficult or impossible to reproduce the errors and thus also demanding and time-consuming to analyze them. With certain systems, monkey testing has to run for a long time before it finds a bug.

Similar techniques and distinctions

While monkey testing is sometimes viewed as a subspecies of fuzz testing and the two terms are usually used together, others say they differ in that monkey testing is more about random actions than fuzz testing via random but structured data (e.g. XML ). Monkey testing is also different from ad hoc testing in that ad hoc testing is performed without planning and documentation, and the goal of ad hoc testing is to randomly break the system down into subsections and verify its functionality. Monkey testing, on the other hand, does not check the technical functionality, but only for robustness .

Tool support

  • A JavaScript library called gremlins.js is available for web applications .
  • For mobile applications under Android , Monkey Testing is part of the standard test tools of Android Studio as a UI / Application Exerciser Monkey .
  • For Java - Swing applications, there is a commercial tool called retest .

Individual evidence

  1. What is Monkey Testing | IT Training and Consulting - Exforsys .
  2. ^ Folklore.org: Monkey Lives .
  3. Robert Brummayer, Florian Lonsing, Armin Biere: Ofer Strichman (Eds.): Automated Testing and Debugging of SAT and QBF Solvers ( en ) (= Lecture Notes in Computer Science). Springer Berlin Heidelberg, July 11, 2010, ISBN 978-3-642-14185-0 , pp. 44-57, doi : 10.1007 / 978-3-642-14186-7_6 .
  4. ^ Fuzz Testing in Delphi - DelphiTools .
  5. ^ Difference between fuzz testing and monkey test .
  6. gremlins.js JavaScript library for Node.js and the browser - Marmelab .
  7. ^ UI / Application Exerciser Monkey - Android Developers .
  8. ReTest Monkey Testing - ReTest GmbH .