Certified Jenkins Engineer
Introduction and Basics
Software Testing
Effective software testing is essential in the CI/CD pipeline to catch defects early, improve code quality, and enable safe refactoring. By integrating a robust test suite into your development workflow, you can ensure that every change maintains system integrity and performance.
Common Types of Software Testing
- Unit Testing
Verifies individual functions or methods in isolation. - Integration Testing
Ensures that modules or services communicate correctly. - Smoke Testing
A quick, surface-level check of critical features. - Functional Testing
Validates the software against functional requirements. - Non-Regression Testing
Confirms that new changes haven’t broken existing functionality. - Acceptance Testing
Tests the system from an end-user perspective. - Code Quality & Static Analysis
Identifies code smells, style violations, and potential bugs using tools like ESLint or SonarQube. - Performance Testing
Measures responsiveness and stability under load. - Security Testing
Scans for vulnerabilities such as SQL injection or cross-site scripting. - Manual Testing
Exploratory or UX-focused tests performed by QA engineers.
Test Categories by Execution Speed
Category | Test Types | Purpose |
---|---|---|
Fast Automated | Unit Tests, Integration Tests, Smoke Tests | Immediate feedback on code changes |
Slower Automated | Functional Tests, Non-Regression Tests, Acceptance | Comprehensive validation before release |
Manual | Exploratory Testing, User-Experience Validation | Human-driven scenarios and edge cases |
Note
Manual testing is best reserved for exploratory scenarios and usability validation after your automated suites pass.
Balanced Testing Strategy
A layered testing approach optimizes feedback loops and resource usage:
- Run Unit Tests First
Trigger these on every commit for fast error detection. - Schedule Higher-Level Tests
Execute functional, non-regression, and acceptance tests on a build server or nightly job. - Investigate Failures from Bottom Up
Always start with unit or integration test errors to pinpoint the root cause.
Warning
Skipping unit tests can lead to cascading failures in higher-level tests. Always fix the smallest failing test before moving up the testing pyramid.
Key Testing Principles
Principle | Description |
---|---|
Speed and Frequency | Run low-level tests (unit/integration) on every change; reserve resource-intensive tests. |
Cost Effectiveness | Maximize automated coverage where maintenance effort yields high ROI. |
Failure Analysis | Address unit/integration failures before reviewing higher-level test results. |
Cascade Effect | Trace broad test failures back to the smallest component to locate defects efficiently. |
Links and References
Watch Video
Watch video content