C20: Software Testing Flashcards
What is software testing?
A software dynamic validation technique that can detect errors but cannot prove the software is error free.
What are some of the limitations of static approaches to software engineering?
Static approaches don’t execute the program, so they can’t detect errors that require execution.
Walkthrough and peer review couldn’t handle complexity very well because of human limits.
Benefits of software testing
● Knowing the software is going to be tested developers are more cautious when developing software.
● Can significantly improve the quality of the software.
● Adds another layer of quality assurance in addition to inspection, walkthrough.
● If the bugs are tracked, for example in a bug database, the information can be used to produce bug statistics used for process improvement.
What is black box testing?
Test cases designed to test the functionality of the program.
What are the black box testing techniques?
Equivalence Partitioning: Divides the input and output domains into a number of disjoint subsets and selects one test case from each subset.
Boundary Value Analysis: Selects test cases at and near the boundary of the equivalence classes.
Cause and Effect Analysis: Analyzes the functionality to identify the causes and their effects and tabulates them.
What is white box testing?
Derives test cases from the structure or logic of the component.
What are the white box testing techniques?
Basic Path Testing: Generates basic paths of the flow of the component under tree.
Condition Testing: Focus on testing logical conditions in the program.
Data Flow Testing: Select test paths of a program according to the location of definitions and uses of variables.
Loop Testing: Loops generate many different paths,
What is Cyclomatic Complexity?
The number of basics paths of the component under tree is defined as the cyclomatic complexity of the component.
Flow Graph Test Coverage Criteria
Node coverage: Each node of the graph must be visited at least once by the test cases.
Edge coverage: Each edge must be visited at least once by the test cases.
Basic path coverage: Requires that every basis path must exercised at least once.
All path coverage: requires that every possible path is test at least once. However this is practically impossible.
Data Flow Test Coverage Criteria
All defines coverage: Each definition is tested at least once.
All uses coverage: Each definition to each use is tested at least once.
All defined-uses paths coverage: All def-use paths from each definition to each use is tested at least once.
What is test coverage?
The percentage of certain software items that are tested (or exercised) over the total number of items of the same kind. A quality goal to be accomplished as well as a measuremtn of the accomplished goal.
Generic Software Testing Process
- Create test model from specification and determine a test coverage.
- Generate test cases as well as test data.
- Analyzing test results. Such as debugging.
What are the steps of use-case based testing?
- Prioritize the use cases using the traceability matrix.
- Generate test scenarios from the expanded use cases
- Identify test cases
- Generate test data
- Generate test scripts
What are the different tests of non-functional requirements?
Performance and Stress Testing: Aimed at assessing the system’s workload, throughput, response time, efficiency and resource utilization.
Testing For Security: Aimed at detecting the security vulnerabilities that can be exploited to breach a system.
Testing User Interface: Detect defects in the look and fee of the UI or the actor system interaction behaviour.
What is the difference between performance and stress testing?
Performance Testing: Aimed at assessing a system’s resource performance under normal usage situations.
Stress Testing: Aimed at assessing a system’s ability to withstand and process an extremely heavy workload.