Continuous Integration Flashcards

1
Q

What is Continuous Integration (CI)?

A

Continuous Integration (CI) is the practice of quickly integrating newly developed code with the rest of the application code. This saves time when the application is ready to be released. The process is usually automated and produces a build artifact at the end of the process.

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

What are the four releases in Traditional Product Delivery?

A
  1. Alpha release
  2. Beta release
  3. Release candidate
  4. Release
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
3
Q

What are the three environments in Modern Feature Delivery?

A
  1. Development environment
  2. Staging environment
  3. Production environment
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
4
Q

What is the Development Environment?

A

It is where the work of a single development team is put together and updated throughout a two-week sprint.

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

What is the Staging Environment?

A

It looks like the production environment

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

What is the Production Environment?

A

It is where the work of multiple development teams becomes available to customers and is updated when the business considers the time is right.

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

What is Shift Left Testing?

A

A software testing technique that involves performing tests earlier in the development process

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

What is the Test Pyramid?

A

The test pyramid describes the types of tests carried out in development:
1. Unit Tests
2. Service Tests
3. End-to-End Tests.

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

What are Unit Tests in the Test Pyramid?

A

In the development environment

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

What are Service Tests in the Test Pyramid?

A

In the staging environment

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

What are End-to-End Tests in the Test Pyramid?

A

In the staging environment

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

What is the Test Snow Cone?

A

An antipattern where there are many more end-to-end tests than service tests than unit tests. This is a bad idea because if a test fails

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

What are Brittle Tests?

A

A brittle test is one that fails because another service fails.

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

What are Flaky Tests?

A

A flaky test is one that sometimes fails because another service fails — perhaps due to a time-out or race condition.

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

What is the Normalisation of Deviance?

A

The idea that over time

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

What are Build Light Indicators?

A

A simple visual indicator used in Agile software development to inform a team of software developers about the current status of their project. They benefit accountability but also add pressure on developers.

17
Q

What is Integration Hell?

A

An anti-pattern of software development where the integration of pieces of a software system happens far too late

18
Q

What is the point of Rule 1: run commit tests locally?

A

The deployment pipeline is a valuable shared resource that should be avoided from being blocked with unnecessary tests.

19
Q

What is the point of Rule 2: wait for the results?

A

It allows those who make changes to be present and ready to fix any problems immediately.

20
Q

What is the point of Rule 3: fix or revert failures within 10 minutes?

A

This rule avoids blocking useful progress by others.

21
Q

What is the point of Rule 4: if a teammate breaks the rules, revert their changes?

A

To avoid others blocking useful progress.

22
Q

What is the point of Rule 5: if someone else notices you caused a failure before you notice it’s a build sin?

A

This rule encourages developers to pay more attention to their changes and its impact on the build.

23
Q

What is the point of Rule 6: once commit passes move on to your next task

A

Rapid, automated testing frees up time to do new, useful work.

24
Q

What is the point of Rule 7: if any test fails it is the responsibility of the committer?

A

Someone takes responsibility for a failure and its fix.

25
What is the point of Rule 8: it is the responsibility of everyone who may be responsible to agree who will fix a failure?
This ensures that someone takes responsibility for fixing failures
26
What is the point of Rule 9: monitor the progress of your change?
This rule ensures that software can be rejected as soon as it is shown not to be in a releasable state.
27
What is the point of Rule 10: address any pipeline failure immediately?
It ensures the pipeline stays clear for other changes and avoids delays in progress