ArticleDirectory
- Unit tests: white box
- Integration tests
- Functional Tests
- Acceptance Tests
- System Tests
- Stability tests
CI Automation
In the CI process, the automated process generally includes the following:
- CompileCode
- Prepare Database
- Run the test
- Analyze code
- Create installation and deployment content
- Generate document
TFS has integrated some processes directly according to the solution. You can also use the msbuild script if you need to expand the process.
If integration is performed in other tools, the msbuild script is generally used.
Test in Ci
CI automated testing is very important. through automated testing, the system can automatically run relevant tests to detect the impact of modifications.
Unit tests: white box
Where unit test tools are used, such as nunit mstest
Integration tests
Integration tests usually take multiple pieces of functionality and test how they behave together. Such tests can involve two or more classes, assemblies, components, or even small programs that interoperate.
Functional Tests
Functional Tests, on the other hand, are sometimes associated with integration tests and sometimes with system tests. you extract functional tests from other types of tests to support your CI scenario.
Acceptance Tests
Acceptance Tests take fully integrated software with all its dependencies and test it against a normal environment. this means no mocking-only the real deal. you shoshould test I/O, network, and database operations with specific configurations. acceptance tests can be designed by the customer or domain specialist.
System Tests
System tests are also shortmed on fully integrated software, but the environment tends to mimic a production environment more than it does during acceptance tests.
This kind of test is hard to integrate within your build process; these tests tend to rely on specific hardware and software deployments. but if you strain a little, some system tests can be released ded in your automatic build and test schedule.
Stability tests
You may also want to test the stability of your software. stability tests answer such questions as whether there are any memory leaks in your Windows service, whether your program can restore the database connection after hibernation, and so on.
Although in most cases it's possible to automate these tests, they usually have no place in Ci the process. they take too much time. you need hours to properly test place in Ci the process.