1/46
Looks like no tags are added yet.
Name | Mastery | Learn | Test | Matching | Spaced |
---|
No study sessions yet.
True
Testing does not exist in isolation; test activities are related to software development activities. (T/F)
Software Development Lifecycle (SDLC)
is an abstract, high-level model representation of the software development process. It defined how different development phases and types of activities performed within this process relate to each other.
Software Development Lifecycle (SDLC)
Examples of them include: Sequential development models (e.g., waterfall model, V-model), iterative development models (e.g., spiral model, prototyping), and incremental development models (e.g., Unified Process).
Testing
The process consisting of all life cycle activities, both static and dynamic, concerned with planning, preparation and evaluation of software products and related work products to determine that they satisfy specified requirements, to demonstrate that they are fit for purpose and to detect defects.
True
Testing activities must be adapted to the SDLC to succeed. (T/F)
Testing
The choice of the SDLC impacts on the:
- Scope and timing of test activities (e.g., test levels and test types)
- Level of detail of test documentation
- Choice of test techniques and test approach
- Extent of test automation
- Role and responsibilities of a tester
- Skills and Resources required for Testing
Sequential Development Model
Describes the software development process as a linear, sequential flow of activities.
- This means that any phase in the development process should begin when the previous phase.
- In theory, there is no overlap of phases, but in practice, it is beneficial to have early feedback from the following phase.
Requirements gathering and Design
Sequential Development Model
In the initial phases of the sequential development models, like ___________ __________ and _________, tester's typically participate in requirement reviews, conduct test analysis and design, tests which will be executed later once testable code becomes available.
development phase
Sequential Development Model
Since executable code is usually created in the later phases such as the __________ __________, dynamic testing typically cannot be performed early in the SDLC before the Development stage where code is developed.
Waterfall Model
Shows the steps in sequence where the customer requirements are progressively refined to the point where coding can take place. This type of model is often referred to as linear or sequential model.
Waterfall Model
- Each work or product is completed before moving on to the next.
- Testing is carried out once the code has been fully developed.
- Once testing is complete, a decision can be made on whether the product can be released into the live environment.
Additionally, testers are involved after development is done and the testing at the end serves as a quality check. The product can be accepted or rejected at this point.
Requirement Gathering
In the Waterfall Model, this is where:
- Review and Analyze Requirement Documents
- Identify testable requirements
- Create a test plan
System Design
In the Waterfall Model, this is where:
- Analyze System Requirements
- Create test scenarios
- Identify test data and environment
Development
In the Waterfall Model, this is where:
- Developers code and test
Testing
In the Waterfall Model, this is where:
- Test Execution
- Integration Testing
- System Testing
- Acceptance Testing
Waterfall Model
The disadvantages of this model are:
- Finding defects at the end (during testing), could result in substantial costs associated with defect fixing.
- The commercial and financial aspects associated with cost of fixing the defects could be very high - maybe even more than the entire project budget.
- We cannot reject the parts of the system found to be defective and release the rest because the removal of software is often not a clean-cut activity as this could cause the system to become unusable.
Entry Criteria for Testing - Typical Examples:
SCREENSHOT NA LANG IN SLIDE 11
Exit Criteria for Testing - Typical Examples:
SCREENSHOT NA LANG IN SLIDE 12
Test Coverages in Entry/Exit Criteria
- Ensure that the planned test coverage has been achieved.
- Reduces the risk of untested areas which could harbor defects.
Entry/Exit Criteria for Defect Resolution
- Ensures that all critical and high-severity defects are resolved and verified.
- Allows the teams to take control actions where necessary in the event of inadequate outcomes from testing.
- Allows the team to decide if the next development/testing stage/level can begin.
- Residual risks related to unresolved defects are documented and communicated.
Residual Risk
Refers to the remaining risk after all planned measures to mitigate risk have been implemented, it includes any potential issues that remain in the system after testing is complete, such as: Defects that are Unresolved or Deferred, Test Conditions or Functionalities or Test Configurations that remain untested (ex: maybe due to resource unavailability or low risk impact that it "Accepted")
Entry Criteria
Residual Risk:
- ________ _________ help teams ensure that testing begins on a solid foundation, which helps to minimize the residual risk for example: allows teams to adequately prepare for coverage and ensure availability of test environment.
Exit Criteria
Residual Risk:
- Similarly, _________ __________ highlights residual risk (defects unresolved) to ensure stakeholders are informed so that they can decide whether to accept the risk as "known issues".
Verification
The V-Model
"Confirmation by examination and through the provision of objective evidence that specified requirements have been fulfilled."
Validation
The V-Model
"Confirmation by examination and through provision of objective evidence that the requirements for a specific intended use or application have been fulfilled."
V-Model
The essence of the ________ is:
- To graphically show the stages of the development life cycle (including the testing stages).
- To graphically show the relationship between each development stage and the related testing stage.
- To demonstrate simply that once a basis for testing has been produced (having been verified) then Planning and Preparation can commence.
- To depict the test stages for which the document is to be a source.
Acceptance Testing
V-Model: Sequence of V-Model
Performed by users; end to end testing.
Business Requirements <------------------> ____________________
System Integration Testing
V-Model: Sequence of V-Model
Performed by testers; dynamic testing; manual or automated.
Functional Specification (FRS) <------------------> ____________________
System Testing
V-Model: Sequence of V-Model
Performed by testers; dynamic testing; manual or automated.
Technical Specification <------------------> ____________________
Component Integration Testing
V-Model: Sequence of V-Model
Typically performed by developers.
Design Specification <------------------> ____________________
Component Testing
V-Model: Sequence of V-Model
Typically performed by developers.
Code <------------------> ____________________
Characteristics of Sequential Model
• They need business needs and requirements to be well defined before development can begin
• It require a development phase to be complete before the next one can begin. (Requirements to be fully defined before Design can begin, Design fully developed before Coding can begin, Tests fully developed before execution can begin)
• Level of (detail) Documentation is based on the complexity of the project, organizational standards, regulatory requirements and specific project requirements and is typically formal.
• In this, in the initial phases testers and other stakeholders can typically participate in requirement reviews, test analysis, and test design.
Characteristics of Sequential Models
• The executable code is usually created in the later phases, so typically dynamic testing cannot be performed early in the SDLC before development of code is complete.
• Customers/Business Representatives often experience the product only during acceptance testing (Tunnel Effect) and are rarely involved during development
• Change management is sequential models is complex and when a change is accepted, it requires changes to be implemented through layers of development documentation. Hence this development methodology may not be suitable for unpredictable or rapidly evolving business needs which require rapid changes to the solution.
Testing in Sequential Models
• Testers create and execute tests on the software under test (verify) and provide reports to the stakeholders.
• Applicable test techniques are used in documenting Test Cases to demonstrate test coverage criteria.
• Testing typically involves manually executing test cases so test cycles tend to be longer.
• Automated Test Scripts are developed from well defined and documented test cases and test scripts.
• Automated tests may run parallelly with manual testing
• Test Automation is often introduced late in the Testing and tend to focus on System and Acceptance tests.
• Emphasis of automation is for Regression Testing and time-consuming tests
Testing in Sequential Models
• Testing in sequential development models need (and assumes ) stable and well defined requirements.
Each phase of development has a corresponding test level
• Tests are divided into categories or test types according to their objectives, which are pursued with differing priorities on different test levels:
• Comprehensive test planning is an important part of the testing process.
• Testers should ideally be involved in validating requirements and design.
• Test documentation is generally detailed (based on formality - including test plans, test cases and test scripts)
Tunnel Effect
The _________ ________ in project management is where the customer has little or no visibility of the product during the course of the development project. Therefore, they only judge at the very end of the project if the deliverable satisfies his need or not.
Iterative Incremental Model
While Sequential Models need requirements to be fully developed and follow a linear progression, ________ ________ ________ are characterized by:
• Adaptability of development for evolving business needs
• Continuous refinement of development process
• Customer involvement and collaboration
• Rapid feedback mechanisms
They are particularly well-suited for projects where requirements are expected to evolve, and there is a need for regular feedback and adaptation. Modern software development practices often favor this for dynamic and evolving project requirements.
Incremental Development
is an approach to software development where a system is designed, implemented, and delivered in small, manageable increments or pieces.
• Each increment could represent a partial implementation of the complete system, adding new features or functionality to the existing project.
• This increment is then reviewed, and feedback from stakeholders is used to make improvements and plan the next iteration.
Incremental Development
• The goal of incremental development is to deliver a working and usable system/workflow gradually by removing bottlenecks, allowing for flexibility, adaptability, and continuous refinement throughout the development process.
Examples:
(Agile) KANBAN (KanBan - Visualizing progress on a whiteboard)
Rational Unified Process
Agile methodologies
follow specific principles and practices outlined in the Agile Manifesto. Some popular examples include: KANBAN, SCRUM, EXTREME PROGRAMMING.
They follow specific principles and practices that promote flexibility, customer collaboration, and continuous improvement and are different them other iterative incremental models like RUP (prescriptive and has definite phases Inception, Elaboration, Construction, Transition) and the Spiral Model (focuses heavily on risk assessment and requires significant documentation and management involvement.)
Agile methodologies
The four core values of _____ software development as stated in the ______ Manifesto are as follows:
1. Individuals and interactions over processes and tools
2. Working software over comprehensive documentation
3. Customer collaboration over contract negotiation
4. Responding to change over following a plan
SCRUM
is a software development approach where the development project is broken down into smaller releases and each release is further broken down into smaller sprints (iterations).
_______ specifics at a glance:
Product Backlog: A prioritized list of features, enhancements, and fixes required for the product.
Sprint Backlog: A subset of the product backlog items selected for implementation in the current sprint (Iteration) Increment: The product backlog items implemented and "Done" during a sprint, a potentially shippable product (MVP)
Sprint: A time-boxed iteration (usually 2-4 weeks) during which a potentially shippable product increment(MVP) is developed.
SCRUM
Each sprint undergoes the development process in multiple iterations in time boxes so that each iteration provides an increment of the product that can be deployed.
• During an iteration, a set of tasks or user stories is selected and worked on, with the goal of producing a "potentially shippable" product increment after the acceptance tests pass (Minimum Viable Product).
• Collaborative Sprint Planning involving the Developers (incl Testers) and the Product Owner allows the team to clarify, refine and plan the implementation of the user stories for the sprint with clear, defined, testable acceptance test criteria.
• The stakeholders that represent the business decide whether to deploy the MVP for use after the acceptance tests pass.
• The process is repeated in further iterations (sprints) until the software meets the desired quality and functionality.
Release planning
In iterative SDLCs, typically two kinds of planning occur:
_________ ________ looks ahead to the release of a product, defines and re-defines the product backlog, and may involve refining larger user stories into a set of smaller user stories. It also serves as the basis for the test approach and test plan across all iterations.
Iteration planning
In iterative SDLCs, typically two kinds of planning occur:
_________ ________ looks ahead to the end of a single iteration and is concerned with the iteration backlog.
Release planning
Testers involved in _______ _______:
• participate in writing testable user stories and acceptance criteria
• participate in project and quality risk analyses
• estimate test effort associated with user stories
• determine the test approach and plan the testing for the release.
Iteration planning
Testers involved in _______ _______:
• participate in the detailed risk analysis of user stories,
• determine the testability of user stories,
• break down user stories into tasks (particularly testing tasks),
• estimate test effort for all testing tasks,
• identify and refine functional and non-functional aspects of the test object.