Final Exam Prep Deck Flashcards
What is Software Engineering?
- Programming integrated over time.
- All the tools and processes and organization uses to build and maintain code over time
What is Software Testing?
The dynamic verification that a program provides expected behaviors on a finite set of test cases, suitably selected from the usually infinite execution domain
When does Software Testing take place?
- It should be pervasive throughout the entire development and maintenance life cycle.
- Planning for testing should start with the early stages of the software requirements process
What is a fault?
The cause of a malfunction
What is a failure?
A undesired effect observed in the system’s delivered service
What term can be applied to both fault and failure when the distinction is not important?
defect
What are four levels of testing?
- Unit Test
- Integration Test
- System Test
- Acceptance Test
What is a unit test?
Testing individual components.
What is an integration test?
Testing integrated component
What is system test?
Testing the entire system
What is an acceptance test?
Testing the final system
What is regression testing?
Selective retesting of a system/component to verify that motification have not caused unintended effects & the system/component still complies with its specified requirements.
What tradeoff must be made in regression testing?
The tradeoff is between the assurance given by regression testing every time a change is made and resources required to perform the regression test.
What are testing techniques?
Aids that help ensure the achievement of test objectives
What are testing objectives?
Test-related measures that provide an evaluation of the program under test
Give an example of a testing technique.
Branch coverage - how much of the codebase is tested. Meeting a branch coverage metric (i.e 95%) is a way of improving the chances of finding failures by attempting to systematically exercise every program branch at every decision point.
What is software maintenance?
The totality of activities required to provide cost effective support to software.
What is pre delivery activities?
Planning for post delivery operations, maintainability and logistics determination for transition activities.
What has caused the increased focus on software maintenance?
Organizations trying to squeeze the most out of their software by keeping it operating as long as possible.
What are the five key characteristics of maintaining software?
- Maintaining control over the software’s day-to-day functions.
- Maintaining control over software modification.
- Perfecting existing functions.
- Identifying security threats and fixing security vulnerabilities.
- Preventing software performance from degrading to unacceptable levels.
Describe the technical issues with software testing.
- Cost of repeating full testing on major piece of software is significant.
- Validating reported problems need to be replicated by the maintainer.
- Regression testing is important to maintenance.
- Finding time to test can be difficult.
- Coordinating test between members of maintenance team can be challenging
- Critical software may be difficult to bring offline for testing.
- Tests cannot be executed in the most meaningful place - the production system.
What is maintainability?
The capability of software product to be modified.
Why is maintainability often difficult to achieve?
Because the sub characteristics are often not an important focus during the process of software development. The developers are often focused on other things which results in lock of software documentation and test environments.
How can we enhance maintainability?
The presence of systematic and mature processes, techniques, and tools to help enhance the maintainability of software.
What is the best approach to maintenance estimation?
Experience combined with historical data.
What are four levels of maintenance planning?
- Organizational Level
- Transition Level
- Software Level
- Request Level
At the request level (Individual Request), when is planning carried out?
During impact analysis.