kiểm chứng phần mềm

Upload: trong-hieu-bui

Post on 04-Apr-2018

221 views

Category:

Documents


0 download

TRANSCRIPT

  • 7/30/2019 Kim chng phn mm

    1/4

    Black box and white box testing

    compared

    The example above indicates that white box testing can indicate test considerationswhich are not produced by black box testing. The converse is also true, black box

    testing can produce test considerations which are not produced by white box testing.

    White box testing is concerned only with testing the software product, it cannot

    guarantee that the complete specification has been implemented. Black box testing is

    concerned only with testing the specification, it cannot guarantee that all parts of the

    implementation have been tested. Thus black box testing is testing against the

    specification and will discoverfaults of omission, indicating that part of the

    specification has not been fulfilled. White box testing is testing against the

    implementation and will discoverfaults of commission, indicating that part of the

    implementation is faulty. In order to fully test a software product both black and whitebox testing are required.

    White box testing is much more expensive than black box testing. It requires the

    source code to be produced before the tests can be planned and is much more

    laborious in the determination of suitable input data and the determination if the

    software is or is not correct. The advice given is to start test planning with a black box

    test approach as soon as the specification is available. White box planning should

    commence as soon as all black box tests have been successfully passed, with the

    production of flowgraphs and determination of paths. The paths should then be

    checked against the black box test plan and any additional required test runs

    determined and applied.

    The consequences of test failure at this stage may be very expensive. A failure of a

    white box test may result in a change which requires all black box testing to be

    repeated and the re-determination of the white box paths. The cheaper option is to

    regard the process of testing as one ofquality assurance rather than quality control.

    The intention is that sufficient quality will be put into all previous design and

    production stages so that it can be expected that testing will confirm that there are

    very few faults present, quality assurance, rather than testing being relied upon to

    discover any faults in the software, quality control. A combination of black box and

    white box test considerations is still not a completely adequate test rationale,additional considerations will be introduced in Chapter 6 of this section.

  • 7/30/2019 Kim chng phn mm

    2/4

    A white box test rationale for the

    SquareRoot function

    The intention in white box testing is to ensure that all possible feasible flow of control

    paths through a subprogram are traversed whilst the software is under test. This is not

    the same as saying that all statements in the subprogram will be executed as it is

    possible for all statements to be executed but for not all of the possible paths to be

    traversed. However, the converse is true; if all possible paths through a subprogram

    are traversed then all statements in the subprogram will necessarily be executed.

    When considering the number of possible paths through a subprogram two other

    factors need to be remembered. The first is that some of the possible paths through a

    subprogram turn out upon investigation to be non-feasible paths. The second

    consideration is that the number of possible paths through a subprogram indicated bya flowgraph analysis will indicate the minimum number of paths to ensure complete

    coverage. This may be less than the total number of paths which are possible when

    combinations of paths are allowed for. Examples of these two considerations will be

    given after the white box testing of the SquareRootfunction has been presented.

    The number of possible paths through a subprogram is equal to the number of regions

    in the subprogram's flowgraph. The final flowgraph for the SquareRootfunction, with

    the regions numbered, is as follows.

    This indicates that there are five possible paths through the flowgraph which can be

    described by listing the sequence in which the nodes must are visited. The five paths

    in the SquareRootflowgraph are as follows.

  • 7/30/2019 Kim chng phn mm

    3/4

    The first two paths differ only in the arc which is followed between nodes c and d, to

    indicate which node is intended the nodes have been labelled 1 and 2 and the paths

    annotated to indicate which arc is intended. In the subsequent paths the arc traversed

    between c and dis shown asx, indicating that it does not matter which particular arc

    is followed.

    The white box process continues by taking the black box test plan and manually

    determining which of the paths will be traversed by each of the test runs. It is

    immediately obvious that with only three test runs in the black box test plan there are

    not enough test runs to be certain that all five paths will be traversed.

    A trace of the first test run from the black box test plan will indicate that the second

    part of the ifstatement will be followed before the loop is entered and that the value

    ofCurrentErrorwhen computed on line 0028 would be 0.0, causing the ifcondition

    on line 0036 to be true. Consequently the value ofCloseEnough will be set to True

    and the loop will terminate after the first iteration. Relating this to the flowgraph this

    produces the path a c d f d e b, which is Path3 on the white box test plan.

    The second test run will also follow the second path of the selection before entering

    the loop. The ifon line 0036 will evaluate false causing the ifon line 0039 to be

    evaluated. This condition will evaluate false as the current guess will be 0.95 whosesquare (0.9025) is be greater thanNumber(0.9). Following the end of both if

    statements the loop condition will evaluate true again and the loop will iterate for a

    second time. The path traversed so far would be a c d f g1 h dand as the algorithm is

    known to terminate at some stage the path d e b would have to be traversed at some

    stage. Thus the complete path a c d f g1 h d e , Path 4 from the white box test plan,

    will have been known to be traversed during test run 2.

    The third black box test will differ from the second only in the arc which it traverses

    between nodesgand h. In this case the square will be larger thanNumberand the

    alternative path will be followed. The full path is a c d f g2 h d e , which is Path 5

    from the white box test plan

    Paths 1 and 2 will now have to be examined to determine if they are feasible. Both of

    these paths will be followed only if the body of the while loop is never entered. An

    examination of the source code will indicate that this can never happen. The loop is

    controlled by the value of the Boolean variable CloseEnough, for the loop body never

    to execute this variable will have to have the value true when the condition is

    evaluated for the first time. This is not possible as the value of the variable is set to

    false when the variable is declared. Paths 1 and 2 are thus examples of possible paths

    through a flowgraph which, upon investigation, turn out to be a non-feasible path.

    Unfortunately the total number of feasible possible paths is not always the same as the

    number of possible paths which are produced from a flowgraph. The following two

  • 7/30/2019 Kim chng phn mm

    4/4

    flowgraphs and example implementations both have three regions, but differ in the

    number of paths.

    if Condition1 then if Condition1 then

    -- First actions. -- First actions.

    else else

    -- Second actions. if Condition2 then

    end if; -- Third actions.

    else

    if Condition2 then -- Fourth actions.

    -- Third actions. end if;

    elsif end if;

    -- Fourth actions.

    end if;

    The reasons why the flowgraph on the left has a total of four feasible paths and the

    one on the right only three, despite the fact that both flowgraphs have the same degree

    of cylometric complexity are complex and are rooted in a branch of mathematics

    known asgraph theory. Despite this problem the technique of flowgraph analysis and

    the subsequent counting of regions is still a valuable measure of cognitive complexity,

    and the number ofbias paths which it indicates is the smallest number of distinct

    feasible paths which should be looked for. As this example indicates, there may also

    be more possible paths which be checked for when the flowgraph is used as the basis

    of white box testing.

    Source The Internet