15 Lecture Flashcards
What are the Reasons for continuous integration?
- The later the integration is done, the higher the risk of unexpected failures
- When a software system becomes more complex, the integration of its components gets harder
- With continuous integration, integrating and testing is done as early as possible
Define Failure
Any deviation of the observed behavior form the specified behavior (crash)
Define Error
The system is in a state such that further processing can lead to a failure
Define Fault
The mechanical or algorithmic cause of an error (bug)
3 Ways to deal with Fault
Fault avoidance
Fault detection
Fault tolerance
What is the testing activities for Object Design
Unit Testing
What is the testing activities for System Design
Integration Testing
What is the testing activities for Requirements Analysis
System Testing
What is the testing activities for Client Expectation
Acceptance Testing
Explain Unit Testing
- Individual components are tested by the developers
Goal: Confirm that the component/ Subsystem is correct and carries out the intended functionality
Explain Integration Testing
Groups of subsystems and the entire system are tested by the developers
Goal: Test the interfaces of the subsystems
Explain System Testing
Entire system is tested by the developers.
Goal: Determine if the system meets the requirements
Explain Acceptance Testing
Evaluates the system delivered. Carried out by the client.
Goal: Demonstrate that the system meets the requirements and is ready to use
What is an Alpha test
- Client uses the software at the developer’s environment
- Controlled setting
- Developers always ready to fix bugs
What is an Beta test
- Conducted at client’s environment
- Realistic workout for software
Define Continuous Integration
- Software Development technique
- members of a team integrate their work frequently
- each integration is verified by an automated build
- each build tests are executed to detect integration errors as quick as possible
What are the advantages of continuous integration
+ Always an executable version of the system
+ Good overview of the project status
+ Automatic regression testing
What is the goal of regression testing
verify that the software previously developed and tested still performs correctly even after it was changed or interfaced with other software
AD of regression testing
+ find errors in existing source code immediately after a change is introduced
- can be very costly to execute a large test suite after each change
Which techniques are used in regression testing
- Retest all
- Regression test selection
- Test case prioritization