Integration Testing Flashcards
What is integrations testing and what does it aim to do?
Test that the units when put together, satisfies the requirements or use cases (does what it should).
The purpose is to expose the defects in the interactions between components or other systems.
What is meant by Continuous Integration Process?
It’s a Software development practice where the team integrates the work frequently. Each integration will be verified by an automated build (including test) to detect integration errors asap.
What is a code repository?
It is a container for all the code that the project has.
What is an automated build?
There are tools like Maven that will create automated builds, they are used to execute the code so that you can perform automated tests on them.
- You can build some parts of the components as standalone.
- You can upl
What is a Continuous Integration Server and what does it do?
The continuous integration server acts as a monitor to the repository. Every time a commit against the repository finishes the server automatically checks out the sources onto the integration machine, initiates a build and notifies the committer of the result of the build.
What is a integration environment and what should it look like?
It is the environment that the Continuous Integration tests happens in. It should mimic the production environment, which means that it should run on the exactly same versions and programs that it would once released.
What are the advantages of The Continuous Integration Process?
It reduces risks and it is easier to determine how much time is needed to finish integration, by integrating small bits every day.
Maybe most important you will know be better at narrowing down where the error is, as you know with what code it came
What is the overall process / general steps of CI?
- Upload to the mainline (repository / server)
- build and test on the server
- upload to the mainline if no mistakes are found or solve problems and retry to upload-
What is the goals of a code repository?
- To be able to quickly export the program to a virgin machine and build correctly.
- Include everything in the code repository.
- Have a mainline and keep branches to the minimum.
- Keep everything needed for the build in the repository and keep the build products away from the repository.
After the developer is done with a task what should he do if the team is doing CI?
- When he is done (usually multiple times a day) he should upload it to the CI server which will create an automated build and run the tests.
- If the tests pass and the the changes will be committed to the main branch and pushed.