Author: Haroon Khalil

  • Identifying gaps in the requirements

    Test cases can also be used to identify discrepancies or deviations between requirements and their implementation. However, these benefits can only usually be realized if you systematically derive test cases using black-box techniques. You can stop testing once you have achieved the degree of coverage of the tested items in the test basis. A minimal…

  • Black-box testing

    Black-box techniques can be applied to functional and non-functional tests. As the name suggests, the point of observation for a black-box test is outside the test object and you need no knowledge of its code or inner structure. Apart from choosing input data or setting appropriate preconditions, you have no influence over the test itself. Black-box…

  • Black-box and white-box techniques

    There are many techniques available for systematically deriving and designing test cases. These are generally divided into black-box and white-box1 categories. Experience-based testing techniques can also be used to derive test cases.

  • Execute test cases

    Test sequences are usually automated using scripts written in a chosen programming language or similar notation. A test script can also include preconditions and a comparison between the expected and actual results. As an example, JUnit is a test framework that facilitates the coding of simple Java test scripts (see [URL: xUnit]).

  • Defined expected system behavior and results

    In order to design a test case, you need the input values for the test object, which can be derived using the techniques described later in this chapter. A test case also needs to fulfill any preconditions, and must include the expected results and postconditions in order to decide whether it has detected a failure.…

  • Traceability

    Traceability between individual requirements and their corresponding test cases enables us to analyze the impact of changes to requirements on the testing process (for example, designing new test cases, discarding redundant test cases, or modifying existing test cases). It also enables you to define a degree of coverage as an exit criterion for dynamic testing. In…

  • Conditions, preconditions, and objectives

    Starting at the test basis (i.e., the general test conditions), you need to analyze which aspects of the system require dynamic testing (for example, correct execution of a transaction). The objectives for verifying fulfillment of system requirements through test cases are then defined, with particular attention paid to the risks involved if the system should…

  • Necessary steps

    Dynamic testing involves the following steps: These steps can be executed in an informal, undocumented fashion or, as described here, formally. The degree of formality of the process depends among other factors on the planned system usage (for example, safety-critical), the maturity of the development and test processes, time constraints, and the skills of the…

  • Systematic development of test cases

    The test objective is to verify that the specified requirements are fulfilled by the implemented component, and to identify any failures or deviations from the requirements. The objective is to use as little effort as possible to test as many requirements and identify as many failures as possible. To achieve this objective, you need to…

  • Test framework

    The test framework also provides the test object with input data, which usually requires simulation of the component that calls the test object. This task is performed by a test driver. The test driver and the stubs make up the test framework that, together with the test object, forms an executable program. The test framework…