Test 4 - Testing

CS 325, Software Engineering Concepts, Spring 2000


Explanations should take around 50 words. Some slack will be given to explanations with more words (however, don't press your luck too many times on this); explanations a page or more long will lose five points.

  1. You are using structural tests in a system test on system X; eventually, system X is developed enough to pass your tests without exhibiting a fault. Then, a developers tells you that system X is missing module Y and that you'll have the new system tomorrow. Explain under which conditions you would not have to test the new system. Explain under which conditions you would have to test the new system.


    If your structural tests are exhaustive - that is, they cover all possible cases - then you could argue that system doesn't need module Y because your tests show that it functions properly without it. In this case you would not have to retest the new system.

    If your structural tests are not exhaustive, then there's a chance that your tests didn't cover a section of the code that, had it been executed, would have used the missing module. In this case you would have to test the new system (although it would probably be a smart move on your part to retest the old system in an attempt to discover how to drive the system into using the missing module).


  2. Explain which is the more appropriate test for regression testing: functional testing or structural testing.


    Because regression tests are long-lived, they need to be kept up to date as the system they apply to evolves. The more stable regression tests are with respect to change, the less effort required to keep them up to date. In this regard, functional tests are more stable than are structural tests because a system's function, assuming it meets client requirements, is kept constant, while a system's structure may be undergoing continuous change as new faults are found and fixed.


  3. Given the cause-effect graph
    explain how to construct a set of test data consistent with the equivalence-class criterion. You may assume the events are unique.


    The equivalence-class criterion divides the input into sets such that each member of a set results in the same output behavior, and members of different sets result in different output behavior. Because the events are unique, we can deal with each event in independently of the other events.

    From the cause-effect graph, the input-output relations are

    Output Input sets
    E1 {{C1, C2}}
    E2 {{C2}, {C3}, {C2, C3}}
    E3 {{C2, C4} {C3, C4}, {C2, C3, C4}}
    Picking one element from each input set gives the test-data set {{C1, C2}, {C2}, {C2, C4}}; there are others.


  4. What is the earliest part the software development process in which it's possible to start writing the test-case specifications. Explain. Assume the software development process you've been using for the project.


    Each test-case specification describes the details for carrying out a test described in the test plan. Starting from the beginning of the waterfall model and working forwards:



This page last modified on 6 April 2000.