01
Software Lifecycle
- Requirements establish what a system must accomplish.
- Architecture defines major components and their relationships.
- Implementation translates designs into executable software.
- Testing provides evidence about behavior and defects.
- Deployment places software into operational environments.
- Maintenance modifies software as requirements and environments change.
02
Testing
- Unit tests isolate small program components.
- Integration tests validate interactions among components.
- System tests evaluate complete workflows.
- Property-based testing checks general invariants across generated inputs.
- Load testing measures behavior under workload.
- Security testing searches for exploitable weaknesses.
03
Reliability
Reliable software is not merely software that works during a demonstration. Reliability includes predictable behavior under expected load, partial failures, malformed inputs, dependency failures, upgrades, and operational incidents.