Testing Through The SDLC Flashcards
What is the purpose f an SDLC model? List three examples SDLC models types.
An SDLC model describes the types of activities performed at each stage in the software development project
① Sequential Development Models describes the SD process as a linear, sequential flow of activities ex: Waterfall model; V model
② Incremental development models ex: testing a system in pieces, allowing the software features to grow incrementally
③ Iterative development models where groups of features are created and tested together ex: Rational Unified Process, Scrum, Kanban, Spiral
What are test levels and what are some attributes that can characterize them?
A Test level is a group of test activities that is organized and managed together. Each test level is an instance of the test process. Test levels can be categorized by the following attributes:
① Specific Objectives
② Test Basis
③ Reference to derive test cases
④ Test objects-what is being tested
⑤ Typical defects & failures
⑥ specific approaches & Responsibilities
The 4 ISTQB recognized test levels are:
① Component Testing Level- Focuses on components that are separately testable
② Integration Testing Level- Focuses on interactions between components or systems.
③ System Testing Level- focuses on the behavior and capabilities of a whole system or product, often considering the end-to-end functionality of the software.
④ Acceptance Testing Level- Like system testing, this focuses on the behavior and capabilities of a whole system or product. This happens after system testing and it can be used to test whether the software meets user requirements.
What is the component testing level and what are its objectives?
Component Testing- Focuses on components that are separately testable. Objectives of component testing include:
• Reducing risk
• Verifying component behavior
• Building Confidence
• Finding defects
• Preventing defect escape
What is the integration testing level? What are its objectives? And what are the two sub-levels of integration testing?
Integration Testing- Focuses on interactions between components or systems.
Objectives include:
• Reducing risk
• Verifying interface behavior
• Building confidence in the quality of the interfaces
• Finding defects & preventing them from escaping to higher levels
• Component testing and integration testing may include automated regression tests that provide confidence that changes have not broken existing interfaces, components or systems.
• ISTQB describes two levels of integration testing:
1. Component Integration testing which focuses on the interactions & interfaces between integrated components
2. Systems Integration testing which focuses on interactions and interface between systems, packages & microservices
What is the system testing level? And what are its objectives?
System Testing-focuses on the behavior and capabilities of a whole system or product, often considering the end-to-end functionality of the software.
Objectives include:
- Reducing risk
- Verifying whether the functional and non-functional behaviors of the whole system are designed as specified
- Building confidence in the quality of the whole system
- Finding defects and preventing them from escaping to production
- Helps stakeholders make release decisions
- May satisfy legal or regulatory requirements
- Performed by developers and testers
- consists of both positive and negative test cases
- consists of both functional and non-functional testing
What is the acceptance testing level and what are its components?
Acceptance Testing- Like system testing, this focuses on the behavior and capabilities of a whole system or product. This happens after system testing and it can be used to test whether the software meets user requirements. It’s objectives are:
- To establish confidence in the quality of the system
- Validating the system is complete
- A common form of this is user acceptance testing
- Assesses the system’s readiness for use
- Performed by testers, stakeholders and clients
- consists of only positive test cases
- consists of only functional testing
What is a test type?
A test type is a group of test activities aimed at testing specific characteristics of a software system based on specific objectives. These may include:
① Evaluating functional quality characteristics such as completion
② Evaluating non-functional characteristics such as performance
③ Evaluating structural/Architectural correctness
④ Evaluating changes (intended orotherwise)
The 4 ISTQB test types are:
① Functional Testing-tests that evaluate the functions a system should perform
② Non-Functional Testing-tests that evaluate the non-functional characteristics of the software ie. usability, performance and security.
③ White Box Testing - derives tests based on the system’s internal structure or implementation.
④ Change Related Testing - Performed when changes are made to the system- either to correct a defect or because of a changing functionality
What is the functional test type and what are its objectives?
Functional Testing-tests that evaluate the functions a system should perform
• Considers the behavior of the software so that black box techniques may be used
• Tests the functionality of the component or system
• May involve special skills or knowledge of a particular business problem that the software solves
What s the non-functional test type and what are its objectives?
Non-Functional Testing-tests that evaluate the non-functional characteristics of the software ie. usability, performance and security.
• Tests how well the system behaves
• Should be preformed as early as possible and at all test levels
• Late discovery of non-functional issues can be extremely dangerous
What is the white box testing type and what are its objectives?
White Box Testing - derives tests based on the system’s internal structure or implementation.
• Internal structure may include code, architecture, work-flows and data flows within the system
• May require special skills or knowledge such as the way the code is built and how data is stored
What is the change-related testing type and its subtypes?
Change Related Testing - Performed when changes are made to the system- either to correct a defect or because of a changing functionality
• Tests should confirm that the changes have corrected the defect or implement the new function correctly
• Confirmation testing is testing all previously failed test cases after a defect is fixed
• Regression Testing is testing other areas of the system to ensure stability and test that a change made to one part of the code didn’t unintentionally affect the behavior of other parts
• Confirmation & Regression testing are performed at all test levels
What is maintenance testing and when is it used?
When any maintenance charges are made, maintenance testing should be performed to check the success of the changes and to check for possible side effects
- A maintenance release may require maintenance testing at multiple levels, using various test types based on its scope
- The scope of maintenance testing depends on the degree of risk of the change
After they’re deployed to production environments, software and systems need to be maintained including:
① Fixing defects found in software
② Add new functionality
③ Remove existing functionality
④ To preserve or improve non-functional quality characteristics of a system over its lifetime. Ex: performance, security, portability
What are some reasons for maintenance testing?
There are several reasons (both planned and unplanned) why software maintenance & maintenance testing takes place.
We can classify these triggers as:
① Modification-planned enhancements, corrective or emergency changes
② Migrations - moving code from one platform to another
③ Retirement- When an application reaches the end of its life