L11 - Continuous Integration Flashcards

1
Q

Define Continuous Integration…

A
  • The automated continuous and rapid integration of code during the development lifecycle.
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
2
Q

What is the end product of the integration?

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

What are the 4 release types in traditional Product Delivery?

A

Alpha release → Developers testing software

Beta release→ Select test-users or a QA team conduct beta testing on the software

Release candidate → Unstable version released to the public. Release with many potential caveats.

Release → Fully released solution.

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

What is another name for Modern Feature Delivery?

A

CI/CD Pipeline

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

What are the 3 environment in Modern Feature Delivery (CI/CD Pipeline) ?

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

What is the Development environment in the CI/CD pipeline?

A
  • Where the work of a single development team is put together during a sprint
  • Environment is anything that the team finds convenient
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
7
Q

What is the Staging environment in the CI/CD pipeline?

A
  • Where the work of multiple development teams is put together
  • Looks like production
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
8
Q

What is the Production environment in the CI/CD pipeline?

A
  • When ready, the output from the staging process is published to customers
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
9
Q

What is meant by automated build management?

A

If we check-in changes, the VC system should automatically run tests and progress the software through the delivery stages.

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

Explain Git Push and Git Pull Requests…

A

Push → Uploads changes from local to remote repository

Pull → Proposes a set of changes be made from a local to remote repository

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

What are the components of the Testing Pyramid? Define each…

A

Unit tests:
- Testing each unit of a code segment to ensure that all tests pass individually
- Usually implement a large number of them

Service tests:
- Performed before code is deployed to a service
- Less numerous that unit tests
- Slower than unit tests due to usually using network requests

End to end tests:
- Performed before system is accepted into the production environment
- Tests a specific journey within the software. E.g. testing the deleting of a user account

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

In testing, what is Stubbing?

A

Testing code using a Stub, a stand-in for a service, that responds to requests with artificial responses.

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

In testing, what is Mocking?

A
  • A Stub that provides additional assertions and call order
  • More advanced than a Stub
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
14
Q

What are Brittle Tests?

A

A test that fails due to the failure of another service

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

What are Flaky Tests?

A
  • A test that sometimes fails because another service fails
  • Awful kind of failure due to inconsistent nature of test responses
  • Should eliminate all flaky tests
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
16
Q

What are the worst type of test failures and why?

A
  • Flaky tests
  • Hard to replicate to identify issues