Unit 11 Flashcards

1
Q

IF ERIC TRUMP

What are the 11 software quality factors (SQFs)?

A
  1. Integrity
  2. Flexibility
  3. Efficiency
  4. Reliability
  5. Interoperability
  6. Correctness
  7. Testability
  8. Reusability
  9. Usability
  10. Maintainability
  11. Portability

(b3, p107-108)

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

MUsIC

What are the 4 primary software quality factors (SQFs)?

A
  1. Maintainability
  2. Usability
  3. Integrity
  4. Correctness

(b3, p109)

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

What is verification and validation?

A

Verification is a way of assessing whether a product does what it is supposed to do.

Validation is a way of assessing whether a product does so correctly.

(b3, p111)

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

What is consistency and self-consistency?

A

Consistency means two or more system descriptions that describe the same part make no contradicting statements.

Self consistancy means a system description does not contradict itself.

(b3, p112)

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

What is completeness?

A

Completeness means that everything that should have been ‘said’ in a system description has been ‘said’.

(b3, p113)

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

What are the 6 steps of the test-driven development (TDD) cycle?

A
  1. Decide on a code increment
  2. Decide on a test
  3. Write the test
  4. Run all tests, expecting the new test to fail
  5. Write the code
  6. Run all the tests and succeed

(b3, p116)

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

What are the benefits of test-driven development TDD?

A
  • Test coverage
  • Regression testing and early discovery of errors
  • Executable documentation
  • Beneficial effect on design
  • Complementary with DbC
  • Promotes good code quality
  • Inhibition of ‘featuritis’ (addition of unnecessary features)

(b3, p118)

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

What are the limitations and pitfalls of test-driven development (TDD)?

A
  • Does not readily apply to user interface testing
  • Inadequate for testing of databases
  • Unsuitable for testing multithreaded systems
  • Cannot take the place of customer acceptance testing
  • Tests must be added retrospectively for legacy systems
  • Requires management support
  • Cannot take the place of integration testing
  • Only as good as the tests devised

(b3, p118-119)

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

Write a Java assertion to check a balance is above 0.

A
assert balance \> 0;

(b3, p120)

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

What is the format for using Java assertions to verify pre- and post-conditions of a method?

A
method heading assert boolean expression for preconditions method body assert boolean expression for postconditions

(b3, p120)

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

RUDR

What are the 4 categories of testing?

A
  1. Requirements-based
  2. Usability
  3. Developmental
  4. Regression

(b3, p127)

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

What are the 3 scopes of developmental testing?

A
  1. Unit testing
  2. Integration testing
  3. System testing

(b3, p128)

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

RUSSIA PIP

What 9 tests should be involved when system testing?

A
  1. Restart testing
  2. User-command testing
  3. Stress testing
  4. Security testing
  5. Initialisation testing
  6. Acceptance testing
  7. Performance testing
  8. Interface testing
  9. Protocol testing

(b3, p132)

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

How are test cases designed in black-box and white-box testing?

A

In black-box testing, test cases are designed by looking at the specification of the system to be tested.

In white-box testing, test cases are designed by looking at the detail of the implementation of the system to be tested.

(b3, p137)

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

What are the 3 steps for using partitioning for black-box testing?

A
  1. For each method in the class, determine the input space
  2. Partition the input data space into subdomains
  3. Test all subdomains given by the case analysis

(b3, p139-141)

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

What 6 test data values should be considered for black-box testing?

A
  1. Extreme high value
  2. Exteme low value
  3. Near extreme high value
  4. Near extreme low value
  5. Middle value
  6. Null value

(b3, p141)

17
Q

What is basis-path testing?

A

Basis-path testing is a white-box testing technique that ensures that all reachable statements in a method are tested at least once.

(b3, p143)

18
Q

What is the main limitation of black-box testing?

A

Black-box testing does not work so well if a tested method’s operation depends on the internal state of an object for its behaviour.

(b3, p144)

19
Q

What is the main limitation of white-box testing?

A

White-box testing alone may not reveal customer requirements that have been omitted.

(b3, p145)

20
Q

What are the 2 main methods of measuring system complexity?

A
  1. Lines-of-code metric
  2. Cyclomatic-complexity metric

(b3, p146-147)

21
Q

DRCNLW

What are the 6 object-oriented metrics for measuring complexity?

A
  1. Depth-of-inheritance-tree (DIT) metric
  2. Response-for-a-class (RFC) metric
  3. Coupling-between-objects (CBO) metric
  4. Number-of-children (nOC) metric
  5. Lack-of-cohesion-in-methods (LCOM metric
  6. Weighted-methods-per-class (WMPC) metric

(b3, p149-150)

22
Q

What is the lines-of-code (LOC) metric?

A

The lines-of-code (LOC) metric is used to measure the complexity of a system by counting the number of lines of code.

(b3, p146)

23
Q

What is the cyclomatic-complexity metric?

A

The cyclomatic-complexity metric is used to measure the complexity of a system by counting the number of independent paths through a method body.

(b3, p147)

24
Q

How do you calculate the cyclomatic-complexity of a method?

A

Count the number of decision points and add one to it.

Decision points are:

  • if statements (but do not count the else statement)
  • loop statements (while, for)
  • and/or operations (&&, | |)

(b3, p147-148)

25
Q

What is the depth-of-inheritance-tree (DIT) metric?

A

The depth-of-inheritance-tree (DIT) metric is used to measure the complexity of an object-oriented system by counting the maximum number of hops we can make up the inheritance tree until we can go no further.

(b3, p149)

26
Q

What is the coupling-between-objects (CBO) metric?

A

The coupling-between-objects (CBO) metric is used to measure the complexity of an object-oriented system by counting the number of relationships a class has with other classes.

(b3, p149)

27
Q

What is the number-of-children (NOC) metric?

A

The number-of-children (NOC) metric is used to measure the complexity of an object-oriented system by counting the number of immediate children for a class.

(b3, p149-150)

28
Q

What is the reponse-for-a-class (RFC) metric?

A

The response-for-a-class (RFC) metric is used to measure the complexity of an object-oriented system using the size of the response set for a class.

The response set consists of all the methods and constructors of this class (including those inherited from superclasses), together with all the methods and constructors that are invoked within this class on objects of other classes.

(b3, 150)

29
Q

What is the lack-of-cohesion-in-methods (LCOM) metric?

A

The lack-of-cohesion-in-methods (LCOM) metric is used to measure the complexity of an object-oriented system by counting the number of pairs of methods that do not make reference to the same attributes, minus the number of pairs that do.

(b3, 150)

30
Q

What is the weighted-methods-per-class (WMPC) metric?

A

The weighted-methods-per-class (WMPC) metric is used to measure the complexity of an object-oriented system by counting the cyclomatic complexities of each method of a class.

(b3, 150)