L11 - Continuous Integration Flashcards
Define Continuous Integration…
- The automated continuous and rapid integration of code during the development lifecycle.
What is the end product of the integration?
- An artefact
What are the 4 release types in traditional Product Delivery?
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.
What is another name for Modern Feature Delivery?
CI/CD Pipeline
What are the 3 environment in Modern Feature Delivery (CI/CD Pipeline) ?
- Development
- Staging
- Production
What is the Development environment in the CI/CD pipeline?
- Where the work of a single development team is put together during a sprint
- Environment is anything that the team finds convenient
What is the Staging environment in the CI/CD pipeline?
- Where the work of multiple development teams is put together
- Looks like production
What is the Production environment in the CI/CD pipeline?
- When ready, the output from the staging process is published to customers
What is meant by automated build management?
If we check-in changes, the VC system should automatically run tests and progress the software through the delivery stages.
Explain Git Push and Git Pull Requests…
Push → Uploads changes from local to remote repository
Pull → Proposes a set of changes be made from a local to remote repository
What are the components of the Testing Pyramid? Define each…
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
In testing, what is Stubbing?
Testing code using a Stub, a stand-in for a service, that responds to requests with artificial responses.
In testing, what is Mocking?
- A Stub that provides additional assertions and call order
- More advanced than a Stub
What are Brittle Tests?
A test that fails due to the failure of another service
What are Flaky Tests?
- 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