Black-box testing

Black-box testing could be considered more of a quality-control/quality-assurance check. The application is tested based on what a user would expect to deal with, without any knowledge of the source code itself; the software is considered a "black box", and only the input and output is known, not how it is manipulated.

Some of black-box techniques include the following :

  • Equivalence partitioning: Input is partitioned into equivalent data from which tests are created. Ideally, each partition is tested at least once. The purpose is to identify classes of errors rather than individual errors, thereby reducing the total number of tests that have to be written.
  • Boundary-value analysis: Within a set of values, the minimum and maximum values are tested, allowing easy elimination of everything in between as potential errors.
  • All-pairs testing: If all possible input combinations are identified, then testing all possible, discrete pairings can help speed parameter testing.
  • State testing: Using one of several different "state machines" (such as a state table or state diagram), all possible states of a system are identified and tested. Input includes normal input parameters, as well as the current state, while output includes normal output parameters and the new state.
  • Decision table: A visual representation of if...else statements, switch cases, and so on. An example of this is a troubleshooting guide in a vendor manual. A decision table can be used to validate the various conditions in order to verify whether everything is accounted for in both expected and unexpected use cases. As a table, it could also be made into a database or another computer-readable format to provide automated testing.
  • Fuzzing: This uses automated software to produce a variety of input values to determine how they affect system outcome, such as crashes, error generation, and memory leaks.
  • Use cases: A list of actions that defines a variety of expected uses of the software and the expected outcomes. This is often a key part of agile programming, as it helps direct a programming team in the final product's capabilities.
..................Content has been hidden....................

You can't read the all page of ebook, please click here login for view all page.
Reset
18.226.98.208