Computer software development requires a process for design, coding, and testing software code. The software testing process consists of unit, integration, system, and performance testing phases. Integrated testing is the process where modules are combined within an application project and tested as an entire package.
A testing environment is a shared environment designed for testing. This environment is best used for system testing and performance testing. Typically a test environment is separate from a development and production environment.
A software application contains multiple independent modules. Each module is designed for a specific purpose, which makes it self sufficient. Unit testing is the process of validating a module within an application. This unit testing typically occurs prior to integration testing.
Software modules are like puzzles pieces that require integration into the larger software application framework. When the modules are merged into the application framework, integrated testing is performed. This testing process validates the modules can communicate with other objects in the application.
The testing model is a serial process that begins with unit test followed by integration tests and then system testing. The system testing phase allows the complete application to be tested. Before system testing can occur all modules must go through the integrated testing phase. This phase normally occurs during an automated system build process.
Most software development projects include multiple developers. Each developer is assigned specific modules to build and integrate into the software application framework. When a developer writes code he will check out his module from a shared environment into in a private development environment. This private environment is typically on a standalone computer or laptop.
Before software can be deployed into a shared development environment it must be compiled into binary machine code. This compilation process is typically referred to as the build process. Continuous integration testing is the process where software developers are required to perform integrated testing during the build process of a development effort.
The automated build process includes documentation creation, unit test validation, and integrated testing validation. This sequence is repeated for each update of the software code. If an error occurs during the build process the code remains in a private environment. This integration process reduces errors in the shared code environment. Automated build processes are considered a best practice for software development.
Within software development, a project is a folder that contains multiple modules, objects, and classes that makeup a software package. Project testing is the testing of an entire software project. This project testing is completed during the integration testing phase.