ISTQB - Chapter 2 Flashcards
List four characteristics of good testing within the software development life cycle
- For every development activity there is a corresponding test activity
- Each test level has specific test objectives
- The analysis and design of tests for a test level begins during the corresponding software development activity
- Testers participate in discussions to define and refine requirements and design, and to review work products
Briefly describe the waterfall model.
Development activities are completed one after another, with testing at the very end.
How does the V-model improve on the waterfall model?
The V-model implements test levels associated with each corresponding development phase.
What is the difference between incremental and iterative development models?
Incremental completes one piece at a time, iterative starts with a rough product and refines it.
How is testing integrated into incremental and iterative development models?
Each increment or iteration is tested at the appropriate level.
What are three potential issues with incremental and iterative models from a testing perspective?
- More regression testing (good candidate for automation)
- Defects outside the scope of the iteration or increment
- Less thorough testing
What are the characteristics of the Rational Unified Process (RUP) development model?
Relatively long iterations (2-3 months) with correspondingly large feature increments are (e.g. two or three groups of related features)
What are the characteristics of the Scrum development model?
Relatively short iterations (max. a few weeks) with correspondingly small feature increments (e.g. a few enhancements and/or two or three new features)
What are the characteristics of the Kanban development model?
- Work items are represented visually on a kanban board (allowing team members to see the state of every piece of work at any time)
- Implemented in iterations (fixed-length or not)
- Can deliver a single enhancement, feature, or group of features upon completion
What are the characteristics of the Spiral (or prototyping) development model?
- Creates experimental increments and that are incorporated into later cycles, discarded, or re-worked
- Starts small and each cycle builds outwards through the phases, increasing functionality
Give three contextual factors that should be considered when selecting a software development model.
- Type of product (e.g. COTS vs custom safety-critical system)
- Business priorities (e.g. time to market)
- Product and project risks (e.g. safety risks, team communication)
List the four main test levels
- Component testing
- Integration testing
- System testing
- Acceptance testing
Who typically carries out component testing, and in what environment?
Usually performed by developers in their development environment
Briefly describe the two types of integration testing.
- Component integration testing focuses on the interactions and interfaces between components (occurs after component testing)
- System integration testing focuses on the interactions and interfaces between systems, packages, and microservices (can also include systems from external organizations)
How can we simplify defect isolation and detect defects early when it comes to integrating components or systems?
Integration should be incremental rather than “big bang” (integrating everything at once).
What is the main focus of system testing?
System testing considers end-to-end tasks performed by a whole system and its non-functional behaviors while performing those tasks.
What test environment is ideal for system testing?
The test environment should correspond to the final target or production environment.
What type of testing would examine the following types of test objects?
- Components, units or modules
- Code and data structures
- Classes
- Database modules
Component testing
What type of testing would examine the following types of test objects?
- Subsystems
- Databases
- Infrastructure
- Interfaces
- APIs
- Microservices
Integration testing
What type of testing would examine the following types of test objects?
- Applications
- Hardware/software systems
- Operating systems
- System under test
- System configuration and configuration data
System testing
What type of testing would examine the following types of test objects?
- System under test
- System configuration and configuration data
- Business processes for a fully integrated system
- Recovery systems and hot sites (backup sites)
- Operational and maintenance processes
- Forms
- Reports
- Existing and converted production data
Acceptance testing
List the four different kinds of acceptance testing
- User acceptance testing
- Operational acceptance testing
- Contractual and regulatory acceptance testing
- Alpha and beta testing
What is the main focus of user acceptance testing?
Validating that a system is fit for use by its intended users.
What is the main objective of operational acceptance testing?
Building confidence that the operators or system administrators can keep the system working properly.
The following activities are part of which test level?
- Testing of backup and restore
- Installing, uninstalling and upgrading
- Disaster recovery
- User management
- Maintenance tasks
- Data load and migration checks
- Checks for security vulnerabilities
- Performance testing
Operational acceptance testing
When would contractual acceptance testing be necessary?
When producing custom-developed software for which acceptance criteria are laid out in a contract
When would regulatory acceptance testing be necessary?
When there are government, legal, or safety regulations that the system must adhere to
When would developers be likely to use alpha and beta testing?
When looking for feedback from users about COTS software
What is the difference between alpha and beta testing?
Both are carried out by roles outside the development organization, but alpha testing is conducted in the developer’s test environment, while beta testing is conducted at an external site
What are the four main test types?
- Functional testing
- Non-functional testing
- White-box testing
- Change-related testing (confirmation and regression testing)
What is the difference between functional and non-functional testing?
Functional testing = what the system does
Non-functional testing = how well the system does what it does
What type of testing is concerned with the following: performance, load, stress, usability, reliability, portability, security?
Non-functional testing
What is the aim of white-box testing?
White-box testing is used as a way of measuring the thoroughness of testing through the coverage of a set of structural elements (e.g. code, control flows, business processes, data flows)
What is the difference between confirmation and regression testing?
Confirmation testing checks that the changes succeeded, and regression testing checks that the changes did not affect anything unintentionally
What are the three scenarios which would call for maintenance testing? Give examples for each one
- Modifications: minor releases, corrective and urgent emergency changes, changes to the environment (e.g. OS upgrades)
- Migration: moving from one platform to another (can be change of hardware, software, or operating system)
- Retirement: data migration or archiving, restore or retrieve procedures
What is impact analysis and what is it for?
Impact analysis identifies all work products affected by a change and estimates the resources needed to accomplish the change, in order to help decide whether a change is worth making or not as well as guide regression testing