Unit 11 Flashcards
IF ERIC TRUMP
What are the 11 software quality factors (SQFs)?
- Integrity
- Flexibility
- Efficiency
- Reliability
- Interoperability
- Correctness
- Testability
- Reusability
- Usability
- Maintainability
- Portability
(b3, p107-108)
MUsIC
What are the 4 primary software quality factors (SQFs)?
- Maintainability
- Usability
- Integrity
- Correctness
(b3, p109)
What is verification and validation?
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)
What is consistency and self-consistency?
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)
What is completeness?
Completeness means that everything that should have been ‘said’ in a system description has been ‘said’.
(b3, p113)
What are the 6 steps of the test-driven development (TDD) cycle?
- Decide on a code increment
- Decide on a test
- Write the test
- Run all tests, expecting the new test to fail
- Write the code
- Run all the tests and succeed
(b3, p116)
What are the benefits of test-driven development TDD?
- 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)
What are the limitations and pitfalls of test-driven development (TDD)?
- 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)
Write a Java assertion to check a balance is above 0.
assert balance \> 0;
(b3, p120)
What is the format for using Java assertions to verify pre- and post-conditions of a method?
method heading assert boolean expression for preconditions method body assert boolean expression for postconditions
(b3, p120)
RUDR
What are the 4 categories of testing?
- Requirements-based
- Usability
- Developmental
- Regression
(b3, p127)
What are the 3 scopes of developmental testing?
- Unit testing
- Integration testing
- System testing
(b3, p128)
RUSSIA PIP
What 9 tests should be involved when system testing?
- Restart testing
- User-command testing
- Stress testing
- Security testing
- Initialisation testing
- Acceptance testing
- Performance testing
- Interface testing
- Protocol testing
(b3, p132)
How are test cases designed in black-box and white-box testing?
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)
What are the 3 steps for using partitioning for black-box testing?
- For each method in the class, determine the input space
- Partition the input data space into subdomains
- Test all subdomains given by the case analysis
(b3, p139-141)
What 6 test data values should be considered for black-box testing?
- Extreme high value
- Exteme low value
- Near extreme high value
- Near extreme low value
- Middle value
- Null value
(b3, p141)
What is basis-path testing?
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)
What is the main limitation of black-box testing?
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)
What is the main limitation of white-box testing?
White-box testing alone may not reveal customer requirements that have been omitted.
(b3, p145)
What are the 2 main methods of measuring system complexity?
- Lines-of-code metric
- Cyclomatic-complexity metric
(b3, p146-147)
DRCNLW
What are the 6 object-oriented metrics for measuring complexity?
- Depth-of-inheritance-tree (DIT) metric
- Response-for-a-class (RFC) metric
- Coupling-between-objects (CBO) metric
- Number-of-children (nOC) metric
- Lack-of-cohesion-in-methods (LCOM metric
- Weighted-methods-per-class (WMPC) metric
(b3, p149-150)
What is the lines-of-code (LOC) metric?
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)
What is the cyclomatic-complexity metric?
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)
How do you calculate the cyclomatic-complexity of a method?
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)
What is the depth-of-inheritance-tree (DIT) metric?
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)
What is the coupling-between-objects (CBO) metric?
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)
What is the number-of-children (NOC) metric?
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)
What is the reponse-for-a-class (RFC) metric?
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)
What is the lack-of-cohesion-in-methods (LCOM) metric?
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)
What is the weighted-methods-per-class (WMPC) metric?
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)