![]() |
![]() |
IS&T Release Engineering assists project managers, business analysts and software engineers in ensuring that deployed applications, APIs, Software-as-a-Service (SaaS) and Platform-as-a-Service (PaaS) offerings are production-ready. Our testing engineers build automated API tests, performance tests and regression tests, offer consultation regarding testing strategies and provide assistance in the use of our testing tools: Blazemeter for performance testing and Veracode for security analysis. Developers provide their own unit tests for code as part of the development process.
This checklist is intended as a tool for project managers and business analysts as they move through the phases of software development projects and SaaS & PaaS implementations.
Questions? Email release-engineering@mit.edu.
| Project Milestone | Testing Activities | |
|---|---|---|
| Project approved for discovery | ▢ Testing resources included as part of discovery project discussion. Business Analyst works with product owner to document system requirements. | |
| Project team documents system requirements | ▢ Requirements are captured as acceptance criteria for use as functional test cases. | |
| Project Manager creates project plan | ▢
Project Manager meets with Release Engineering team manager to consider testing needs for the project. ▢ Decision regarding manual functional testing vs. automated functional testing. |
|
| Development begins | ▢
For SaaS & PaaS applications, development phase will include configuration of the vendor product and may include API development work.
▢ Developer creates function tests for APIs. ▢ Developer checks in with Release Engineering regarding function tests for APIs, for awareness. Consultation available if needed. ▢ Developer works with Release Engineering to validate API performance in isolation from the application. ▢ Explore whether Veracode security scanning will be available for the application. If so, Release Engineering creates an application entry on http://veracode.mit.edu. ▢ For Java applications, developer integrates Veracode into Integrated Development Environment (IDE). ▢ Configure Travis to execute API tests automatically for each application build. Consult with Release Engineering as needed. |
|
| Determination of server resource requirements | ▢
If this is a net new application, determine production resourcing requirements. ▢ Confirm that resources in test are on par with those in production, in order to enable accurate performance testing. |
|
| One feature or component of the application is complete | ▢
Release Engineering validates API unit tests. ▢ Release Engineering validates integration of application with APIs and other backend services. ▢ If automated function tests will be created for this application, coding begins when one feature or component of the application is complete. |
|
| Application available in Test environment | Performance Testing: | |
| ▢
BA or product owner determines test cases. ▢ BA or product owner works with Release Engineering to determine expected response times. ▢ Load testing: Validate that average response times are consistent with product owner expectations and IS&T guidelines. ▢ Stress testing: Increase load incrementally to determine the point at which the application fails to respond. |
||
| Systems Integration Testing (SIT): | ||
| ▢ Developers and BAs work with Release Engineering to validate integration of application unit tests, API function tests and other backend services. | ||
| Automated Functional Testing, if applicable: | ||
| ▢
Validate that UI behaves as expected, based on a set of specified test cases. ▢ BA validates automated regression tests and documents test cases that are not included in automated regression tests and will need manual testing. |
||
| Security Testing: | ||
| ▢ Project Manager reviews Veracode security testing results in conjunction with developer(s) and Manager of Design and Development. | ||
| Go-Live and Ongoing Maintenance | Automated Functional Testing: | |
| ▢ Automated regression tests are available to be run for all application builds, to ensure that code changes do not break existing application functionality. | ||
| API Testing: | ||
| ▢ API tests are run at build time as part of Travis Continuous Integration. | ||
| Performance Testing: | ||
| ▢ Performance tests are available to be re-run as needed. | ||
| Security Testing: | ||
| ▢ In some cases, it may be advisable to re-run security tests on a yearly basis. | ||