Chapter 2 Flashcards
What are the three main types of software development?
Sequential development
Iterative development
Incremental development
What is sequential development?
This is a linear flow of activities in which one developmental phase comes after another.
Some examples are the Waterfall and the V-model. These take months and years.
What is incremental development?
This is the process of establishing requirements, designing, building and testing in pieces so that software’s features grow incrementally.
What is iterative development?
This is when groups of features are designed, built and tested together in a series of cycles. Changes may occur in each iteration. Each iteration is a growing subset of features.
Name a type of iterative development process in which iterations are long.
Rational Unified Process
Name a type of iterative development process in which iterations are short, typically 2 weeks.
Scrum/Agile
Name a type of iterative development process in which iterations are not fixed length.
Kanban
Name a type of iterative development process in which iterations are experimental and features tend to be reworked or abandoned.
Spiral
Describe component testing,
Also called unit or module testing. This is focused on separately testable components. This is often done in isolation of the rest of the system. May cover functional or non-functional characteristics and structural properties.
What are some work products used as a test basis for component testing?
Detailed Design
Code
Component Specifications
Data models
Define test objects.
Items that will be tested.
Define test basis.
Test basis is defined as the source of information that is needed to write test cases and do test analysis.
What are test conditions?
Test conditions are the constraints that you should follow to test an application.
What is component integration testing?
This focuses on interactions and interfaces between integrated components.
Usually performed after component testing.
Generally automated
Usually apart of the continuous integration process
What is System Integration Testing?
This focuses on the interactions and interfaces between systems, packages and microservices.
This can also cover interactions with external organizations.
This can be done after system testing.
What is the test basis for integration testing?
Software and system design Sequence diagrams Interface specs Use cases Workflows
What are some test objects for SIT?
Subsystems
Databases
Interfaces
APIs
Component integration testing is the responsibility of what stakeholder?
Developers
System integration testing is the responsibility of what stakeholder?
Testers
Define system testing.
System testing focuses on the end-to-end behaviour and capabilities of a whole system or product as well as non-functional behaviours.
Describe Acceptance testing.
This focuses on the capabilites of a whole system and its readiness for deployment.
Define User Acceptance Testing.
This is typically focused on validating the fitness for use of the system by intended users in a real or simulated operational environment.
Define Operational Acceptance Testing.
This is Acceptance testing of the system by operations or systems admin staff, performed in a simulated production environment. The main objective of this is to build confidence that operators or system administrators can keep the system working properly for the users in the operational environment, even under exceptional or difficult conditions.
What is functional testing?
This type of testing evaluates functions that the system should perform.