5/25-2 Deck (mobile Flashcards
What is a software development lifecycle (SDLC) model?
A software development lifecycle (SDLC) model is an abstract, high-level representation of the software development process. A SDLC model defines how different development phases and types of activities performed within this process relate to each other, both logically and chronologically. Examples of SDLC models 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).
What are some examples of software development methods and Agile practices?
Examples include: acceptance test-driven development (ATDD), behavior-driven development (BDD), domain-driven design (DDD), extreme programming (XP), feature-driven development (FDD), Kanban, Lean IT, Scrum, and test-driven development (TDD).
How does testing need to be adapted to the SDLC?
Testing must be adapted to the SDLC to succeed. 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
What are some good testing practices independent of the chosen SDLC model?
Good testing practices, independent of the chosen SDLC model, include the following:
• For every software development activity, there is a corresponding test activity, so that all development activities are subject to quality control
• Different test levels have specific and different test objectives, which allows for testing to be appropriately comprehensive while avoiding redundancy
• Test analysis and design for a given test level begins during the corresponding development phase of the SDLC, so that testing can adhere to the principle of early testing
What are the characteristics of Test-Driven Development (TDD)?
Directs the coding through test cases (instead of extensive software design) (Beck 2003)
Beck, K. (2003). Test-Driven Development: By Example.
What are the characteristics of Acceptance Test-Driven Development (ATDD)?
Derives tests from acceptance criteria as part of the system design process (Gärtner 2011)
Gärtner, M. (2011). ATDD by Example: A Practical Guide to Acceptance Test-Driven Development.
What are the characteristics of Behavior-Driven Development (BDD)?
Expresses the desired behavior of an application with test cases written in a simple form of natural language, which is easy to understand by stakeholders – usually using the Given/When/Then format. (Chelimsky 2010)
Chelimsky, D. (2010). The RSpec Book: Behaviour-Driven Development with RSpec, Cucumber, and Friends.
What are some benefits of DevOps from a testing perspective?
Fast feedback on the code quality, CI promoting a shift-left approach in testing, automated processes like CI/CD establishing stable test environments, increased view on non-functional quality characteristics, automation through a delivery pipeline reducing the need for repetitive manual testing, and minimizing regression risk due to automated regression tests
Kim, G. (2016). The DevOps Handbook: How to Create World-Class Agility, Reliability, and Security in Technology Organizations.
What are some risks and challenges of DevOps?
The need to define and establish the DevOps delivery pipeline, introduce and maintain CI/CD tools, resource requirements for test automation, and the continued need for manual testing, especially from the user’s perspective
Kim, G. (2016). The DevOps Handbook: How to Create World-Class Agility, Reliability, and Security in Technology Organizations.
What is the Shift-Left Approach in testing?
An approach where testing is performed earlier in the SDLC, suggesting testing should be done earlier but not neglecting testing later in the SDLC
International Software Testing Qualifications Board. (2023). Certified Tester Foundation Level v4.0.
What are some practices to achieve a ‘shift-left’ in testing?
Reviewing specifications from a testing perspective, writing test cases before code implementation, using CI/CD for fast feedback, completing static analysis before dynamic testing, and performing non-functional testing starting at the component test level
International Software Testing Qualifications Board. (2023). Certified Tester Foundation Level v4.0.
What is important for stakeholders in the Shift-Left Approach?
Stakeholders need to be convinced and bought into the concept of testing earlier in the SDLC to achieve a ‘shift-left’ approach
International Software Testing Qualifications Board. (2023). Certified Tester Foundation Level v4.0.
What is the shift-left approach?
The shift-left approach involves performing activities such as testing, training, effort, and/or costs earlier in the process to save efforts and/or costs later in the process.
Example sentence: Implementing test automation in the early stages of development is a key aspect of the shift-left approach.
Why is it important for stakeholders to be convinced and bought into the shift-left concept?
Stakeholders need to be convinced and bought into the shift-left concept for successful implementation.
Additional information: Without stakeholder buy-in, it can be challenging to implement the necessary changes effectively.
What are retrospectives?
Retrospectives are meetings held at the end of a project or iteration to discuss what was successful, what was not successful, and how to incorporate improvements for the future.
Example sentence: The team conducted a retrospective to reflect on the recent project and identify areas for improvement.