5/25-2 Deck (mobile Flashcards

1
Q

What is a software development lifecycle (SDLC) model?

A

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).

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
2
Q

What are some examples of software development methods and Agile practices?

A

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 well did you know this?
1
Not at all
2
3
4
5
Perfectly
3
Q

How does testing need to be adapted to the SDLC?

A

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

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
4
Q

What are some good testing practices independent of the chosen SDLC model?

A

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

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
5
Q

What are the characteristics of Test-Driven Development (TDD)?

A

Directs the coding through test cases (instead of extensive software design) (Beck 2003)

Beck, K. (2003). Test-Driven Development: By Example.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
6
Q

What are the characteristics of Acceptance Test-Driven Development (ATDD)?

A

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.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
7
Q

What are the characteristics of Behavior-Driven Development (BDD)?

A

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.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
8
Q

What are some benefits of DevOps from a testing perspective?

A

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.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
9
Q

What are some risks and challenges of DevOps?

A

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.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
10
Q

What is the Shift-Left Approach in testing?

A

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.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
11
Q

What are some practices to achieve a ‘shift-left’ in testing?

A

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.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
12
Q

What is important for stakeholders in the Shift-Left Approach?

A

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.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
13
Q

What is the shift-left approach?

A

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.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
14
Q

Why is it important for stakeholders to be convinced and bought into the shift-left concept?

A

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.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
15
Q

What are retrospectives?

A

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.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
16
Q

Why are retrospectives critical for continuous improvement?

A

Retrospectives are critical for the successful implementation of continuous improvement as they help identify areas for enhancement and ensure recommended improvements are followed up.

Additional information: By conducting retrospectives, teams can learn from past experiences and make necessary adjustments for future projects.

17
Q

What are some typical benefits of retrospectives for testing?

A

Some typical benefits of retrospectives for testing include increased test effectiveness/efficiency, improved quality of testware, team bonding and learning, improved quality of the test basis, and better cooperation between development and testing.

Example sentence: The team observed a noticeable improvement in test effectiveness after implementing suggestions from the retrospective.