官术网_书友最值得收藏!

Testing techniques

Ranging from easy and straightforward to complex and machine-computed, many testing techniques guide the design and generation of your test cases. In the this section, we will describe the most basic of these techniques based on the ISTQB standards:

  • Equivalence classes: By definition, an equivalence class is a single class of inputs generating an equivalent output. Vice versa, it could be a single class of outputs generated from equivalent inputs. For example, imagine you need to test a simple numeric field which accepts values from 0 to 100. During your testing, you cannot possibly exhaust all the values, hence we would identify one valid equivalence partition and three invalid partitions as follows:

    For valid partitions:

    • Values between 0 and 100 inclusive

    For invalid partitions:

    • Values less than zero
    • Values greater than 100
    • Nonnumeric inputs

    As a result, you now choose tests from the four equivalence classes instead of testing all the options. The value of equivalence classes analysis lies in the reduction of testing time and effort.

  • Boundary values: When choosing boundary value analysis, you study the limits of your system input. Typically, they are the logical minimum and maximum values in addition to technical or computational limits, such as register sizes, buffer sizes, or memory availability. After determining your logical and technical limits, you would test the system by inputting the actual boundary, the boundary decremented by the smallest possible unit, and the boundary increment by the smallest possible unit.

    Assuming our system is an application form where you need to enter your first name in one of the fields, you can proceed with a boundary value analysis on the length of the first name string. Considering that the smallest input is one character, and the largest input is one hundred, our boundary values analysis will lead to a test for strings having the following number of characters: zero (empty input), one, two, ninety-nine, one hundred, and one hundred and one.

  • Decision tables: In certain systems, many rules may be interacting with each other to produce the output, such as a security matrix. For instance, let's assume your system is a document management system. The possible factors determining whether a user will have view rights or not are as follows:
    • Belonging to user groups with a permission set for each group
    • Having an individual permission for each user
    • Having access to the documents' file path

    These factors are called the conditions of the decision table, where the actions might be reading, editing, or deleting a document. A decision table would allow you to test and verify every combination of the listed conditions. Certain rules might simplify your table, but they are outside the scope of this book. The resulting decision table for the previous example of document management system is illustrated as follows:

    Decision table for user rights

  • State transition diagram: In some systems, not only do the actions performed determine the output and the routing of the application, but also the state in which the system was in before these actions. For such systems, a state transition diagram is used to generate test cases.
    1. Firstly, the state transition diagram is drawn with every state as a circle and every possible action as an arrow. Conditions are written between square brackets and the output is preceded by a forward slash.
    2. Secondly, each action represented in the diagram is attempted from an initial state.
    3. Thirdly, test cases are generated by looping around the state transition diagram and by choosing different possible paths while varying the conditions.

    The expected behavior in state transition test cases are both the output of the system and the transition to the next expected state. In the following sample diagram, you will find the state transition diagram of a login module:

    State transition diagram for user authentication to the system

主站蜘蛛池模板: 偏关县| 吉木萨尔县| 静宁县| 公安县| 女性| 淮滨县| 长治市| 咸阳市| 兴城市| 永德县| 徐水县| 清流县| 长乐市| 双牌县| 鄂托克前旗| 平乐县| 焦作市| 鄂州市| 田林县| 抚州市| 宜黄县| 霞浦县| 高台县| 海宁市| 崇礼县| 晴隆县| 遂宁市| 长阳| 巩义市| 平南县| 青田县| 恩施市| 会东县| 黄山市| 东阿县| 南昌市| 莱芜市| 开封市| 旌德县| 淮滨县| 阿拉善盟|