August 1999
SE203 : SOFTWARE ENGINEERING

QUESTION 5

Total Marks: 20 Marks

Click here to access other questions

SUGGESTED SOLUTIONS
Solutions and allocated marks are indicated in green.
Return to
Question 5

(a) Define what is meant by the term software quality assurance. [2]
Software quality assurance (SQA) is a planned and systematic pattern of actions that are required to ensure quality in software.

 

(b) Consider the following statements :

A successful test is one that uncovers a new error.

Both the software developers, and independent testers should test software.

Based on your understanding of testing, comment on whether both of these statements can be true.

[4]
Any suitable solutions accepted.

 

(c) One of the frequently made statements regarding testing is that it has become practically impossible for modern professional software to be completely and thoroughly tested to ensure 100% error-free operation. Based on your understanding of testing, and the nature of computer systems, comment on whether this statement is true. [3]
Possible points could be as follows: software must be published and made available to the public before deadlines ( marketing reasons?); that software program needs to be compatible with various other software (which could cause conflicts), different configurations and versions of hardware; a normal professional software program would typically comprise f at least thousands, and probably millions of lines of code - impossible practically to test the program completely.

 

(d) Consider the following flow graph representing a program :

pic2.gif (10613 bytes)

(i) Based on both the number of regions and the edges/nodes methods, calculate the value of cyclomatic complexity. Draw the diagram into your answer script, and ensure that all your working is clearly shown.

(ii) Based on your value of cyclomatic complexity, indicate clearly your basis set of test paths. Ensure that you are ordering the set of test paths correctly.

(iii) Re-calculate the value of cyclomatic complexity using the predicate nodes method. You will realise that this value does not match either of the first two methods. Based on your understanding of the flow-graph, redraw the graph that will allow you to calculate correctly the value of cyclomatic complexity. Also, indicate clearly where your new predicate nodes are on this new graph.

 

 

 

 

 

 

 

 

 

[2]

 

[5]

 

[4]

 

(i) Number of regions (these must be clearly indicated on a graph drawn in to the answer script) = 5 Number of edges - Number of nodes = 10 - 7 + 2 = 5.

(ii) Possible basis set of test paths: 1-4-6-7 1-4-6-1-4-6-7 1-4-5-7 1-3-5-7 1-2-5-7

(iii)

pic4.gif (12449 bytes)