Deployment environment
As a delivery environment ( English deployment environment or deployment animal ) is referred to in the computer science a computer system in which a computer program is provided and executed.
Distinction
Depending on the development progress of the program, a distinction is made between different environments:
- development
- In the development environment ( English development environment ), often abbreviated as DEV referred, which are software requirements implemented and backed by automated tests. In order to avoid undesirable developments, the development environment must be based on the production environment. Typically, all services that the program depends on are run locally.
- Build environment
- In the build environment, often referred to as BUILD for short , the source code of the application is compiled centrally , but not executed. The build environment does not have to be similar to the production environment, it only has to provide the dependencies required for compilation.
- Test environment
- In the test environment ( English testing environment ), often abbreviated as TEST referred, automated are software tests performed. Unit Tests are in this case typically after each check-in in the version management performed during long-running integration tests depending on the term in some cases only on a daily ( English Nightly be carried out) to a weekly basis.
- quality control
- In quality assurance environment ( English quality assurance environment ), often abbreviated as QA or QA refers to the application of quality assurance environment is provided, search the tester exploratory for errors in the application and implement additional tests. The quality assurance environment must correspond as closely as possible to the production environment.
- Staging
- The staging environment ( English staging environment ), the program for the product owner and the customer for acceptance ready. The staging environment must be as close as possible to the production environment.
- production
- Here the program is used for the actual purpose of the customer and generates business value . The function of the program is continuously monitored by means of logging , monitoring and auditing .
meaning
The later a bug is found, the more expensive it is to fix the error and the higher costs caused by the error. In particular, errors in financial applications can lead to massive losses of money within a short period of time, and errors in security-critical applications can become life threatening. Therefore, the development goes through different phases to find errors before the program goes into production.
Project status | Cost factor for troubleshooting |
---|---|
Requirement | 1 |
draft | 3-6 |
development | 10 |
Test environment | 15-14 |
quality control | 30-70 |
production | 40-1000 |
It is therefore important to take suitable measures to avoid errors and to find them as early as possible. Measures include:
- Writing the software requirement in an automatically verifiable language such as Gherkin or Attempto Controlled English
- Checklists , such as the Definition of Ready ( DoR ) and Definition of Done ( DoD ) in Scrum
- Code quality requirements such as SOLID principles and clean code
- Automated software tests , in particular unit tests and integration tests
- Code reviews and pair programming
- static code analysis
See also
swell
- ^ Error Cost Escalation Through the Project Life Cycle. (PDF) NASA Johnson Space Center, accessed May 29, 2017 .