UsefulLinks
Computer Science
Cybersecurity
Python Testing
1. Fundamentals of Software Testing
2. Python Testing Environment Setup
3. The unittest Framework
4. The pytest Framework
5. Test Design and Best Practices
6. Mocking, Patching, and Test Doubles
7. Advanced Testing Techniques
8. Testing Specific Application Types
9. Test Automation and Continuous Integration
10. Code Coverage
11. Security-Oriented Testing
12. Test Data Management
13. Debugging and Troubleshooting Tests
14. Performance and Optimization
5.
Test Design and Best Practices
5.1.
Characteristics of Good Tests
5.1.1.
Fast
5.1.1.1.
Minimizing Test Duration
5.1.1.2.
Performance Optimization
5.1.2.
Independent
5.1.2.1.
Avoiding Shared State
5.1.2.2.
Test Isolation
5.1.3.
Repeatable
5.1.3.1.
Consistent Results Across Runs
5.1.3.2.
Deterministic Testing
5.1.4.
Self-Validating
5.1.4.1.
Clear Pass/Fail Criteria
5.1.4.2.
Meaningful Assertions
5.1.5.
Timely
5.1.5.1.
Writing Tests Early in Development
5.1.5.2.
Test-First Development
5.2.
The Arrange-Act-Assert Pattern
5.2.1.
Structuring Test Logic
5.2.2.
Improving Readability
5.2.3.
Clear Test Phases
5.3.
Test Organization Strategies
5.3.1.
Structuring the tests Directory
5.3.1.1.
Separating Unit and Integration Tests
5.3.1.2.
Organizing by Feature or Module
5.3.1.3.
Test File Hierarchies
5.3.2.
Naming Conventions for Files and Functions
5.3.2.1.
Descriptive Test Names
5.3.2.2.
Consistent Naming Patterns
5.3.2.3.
Test Documentation
5.4.
Writing Maintainable Tests
5.4.1.
Test Code Quality
5.4.2.
Avoiding Code Duplication
5.4.3.
Test Refactoring
5.5.
Avoiding Common Pitfalls
5.5.1.
Testing Implementation Details
5.5.1.1.
Focusing on Public Interfaces
5.5.1.2.
Behavior vs Implementation
5.5.2.
Writing Brittle Tests
5.5.2.1.
Reducing Dependency on Internal State
5.5.2.2.
Flexible Test Design
5.5.3.
Overusing Mocks
5.5.3.1.
Balancing Realism and Isolation
5.5.3.2.
Mock Usage Guidelines
5.5.4.
Test Data Management
5.5.4.1.
Avoiding Hard-Coded Values
5.5.4.2.
Test Data Factories
Previous
4. The pytest Framework
Go to top
Next
6. Mocking, Patching, and Test Doubles