Unit 11 - Product quality: verification, metrics and testing Flashcards

1
Q

Suggest three expectations that a customer might have of a software product without perhaps being aware of them.

A

Three possibilities are:

  • the product will not conflict with other software that they use
  • the product will boost productivity
  • the product will be simple to use.

SAQ 1

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
2
Q

Explain how increasing integrity within a system could affect efficiency.

A

Increasing integrity within a system means strengthening measures to ensure that modification or deletion of data by unauthorised persons, or by any other unintended means, does not occur. This might involve the use of passwords to access certain data and an authentication server to check a user’s identity, or it might mean that network traffic needs to be encrypted and decrypted. Each of these factors adds an overhead to processing, so efficiency is likely to be reduced.

SAQ 2

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
3
Q

What are the six SQF (Software Quality Factor) classes?

A
functionality
reliability
usability
efficiency
maintainability
portability.

p 106

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
4
Q

When looking at SFQs, changes to integrity might affect efficiency. These two SFQs are therefore not always independent.

Identify one other pair of SQFs that are not independent.

A

Another pair of SQFs that are not independent is usability and portability. For example, many of the features of the Apple Macintosh that contribute to its reputation for usability are built into its operating system.

SAQ 2

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
5
Q

Give a simple example of two system descriptions that might contradict each other.

A

There are numerous possibilities. One elementary example would be if a structural model for a hotel reservation system indicated that a reservation could be made for more that one room but the implementation only allowed one room per reservation.

SAQ 3

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
6
Q

Why is it important for the customer’s requirements statement to be self consistent?

A

If the customer’s requirement statement lacks self consistency, then either the resulting system will be inconsistent or it will not satisfy the customer’s requirements. The system builders can decide (implicitly or explicitly) how to resolve the inconsistencies or, if the inconsistent requirements affect different parts of the system and are not picked up by the developers, the developers could inadvertently build the inconsistencies into the product.

SAQ 4

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
7
Q

Give two reasons why it is useful to run a unit test before the relevant code increment has been written?

A

(1) If the test unexpectedly already passes at this point, this demonstrates that it is not a good test of the next increment.
(2) If it fails in an unexpected way, this demonstrates a faulty or incomplete understanding of the test that needs to be addressed in order to have a good grip on the code and test.

SAQ 5

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
8
Q

Are there any situations in which system testing should be carried out by the implementers of a system?

A

Probably the only situation where this is appropriate is when the project team is small. In small teams, one person might play the part of requirements engineer, designer, implementer, tester and maintenance engineer.

SAQ 8

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
9
Q

What do you think is the relationship between system testing and acceptance testing?

A

In general, the same tests will be carried out during acceptance testing and system testing. System testing is an in-house activity and a customer need never know how system testing went – any bugs can be dealt with before the customer sees them. Acceptance testing, on the other hand, is conducted with much more at stake – the customer can accept or reject a system based on its performance at acceptance testing.

SAQ 9

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
10
Q

Why should regression testing be necessary even after the customer has accepted the product after acceptance testing?

A

Acceptance testing is the process of showing that the software meets the customer’s requirements, not that there aren’t bugs in the code. In fact, given that a system is put into use, bugs that require fixing are almost certain to be found after acceptance testing. In addition, the system will be maintained, with functionality added and changed, leading to a requirement for regression testing.

SAQ 10

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
11
Q

Use the following phrases, which describe four kinds of testing, to fill the gaps in the following three sentences.
usability testing, requirements testing, security testing, regression testing

  1. TDD and DbC are valuable but not comprehensive tools for
    _________________.
  2. TDD has ________________ built into it.
  3. DbC and TDD cannot substitute for thorough _______________ or _________.
A
  1. TDD and DbC are valuable but not comprehensive tools for requirements testing.
  2. TDD has regression testing built into it.
  3. DbC and TDD cannot substitute for thorough usability testing or
    security testing.

SAQ 11

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
12
Q

Should the cyclomatic-complexity metric be used to measure the complexity of an object-oriented software system?

A

Because the cyclomatic-complexity metric is based on decision points, which are present only in methods, it is ‘blind’ to the class-structuring mechanisms that are available in object-oriented system descriptions. As much of the complexity of an object-oriented system is held in the class structure, applying the cyclomatic-complexity metric to a whole system would not therefore be appropriate.

SAQ 14

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
13
Q

What “decision points” or statements does the cyclomatic-complexity metric count?

A
if 
while
do-while and for loops
switch
try
&&
||
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
14
Q

Name the complexity metrics described in the module.

A

Coupling-between-objects (CBO) metric

Number-of-children (NOC) metric.

Response-for-a-class (RFC) metric.

Lack-of-cohesion-in-methods (LCOM) metric.

Weighted-methods-per-class (WMPC) metric.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
15
Q

Consider a class with ten methods, whose WMPC value is 40. How confident can you be that this class is not too complex?

A

For a class with ten methods, a value for the WMPC metric of 40 would typically suggest acceptably low class complexity. However although nearly all of the ten methods might be acceptably simple, one or two might be unacceptably complex.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
16
Q

If the WMPC value of a class with ten methods is over 100, how certain can you be that this class is too complex?

A

A complexity of greater than 10 × 10 = 100 is a fair indication that the behaviour of the class is too complex.

SAQ 17