Useful Links
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
Test Design and Best Practices
Characteristics of Good Tests
Fast
Minimizing Test Duration
Performance Optimization
Independent
Avoiding Shared State
Test Isolation
Repeatable
Consistent Results Across Runs
Deterministic Testing
Self-Validating
Clear Pass/Fail Criteria
Meaningful Assertions
Timely
Writing Tests Early in Development
Test-First Development
The Arrange-Act-Assert Pattern
Structuring Test Logic
Improving Readability
Clear Test Phases
Test Organization Strategies
Structuring the tests Directory
Separating Unit and Integration Tests
Organizing by Feature or Module
Test File Hierarchies
Naming Conventions for Files and Functions
Descriptive Test Names
Consistent Naming Patterns
Test Documentation
Writing Maintainable Tests
Test Code Quality
Avoiding Code Duplication
Test Refactoring
Avoiding Common Pitfalls
Testing Implementation Details
Focusing on Public Interfaces
Behavior vs Implementation
Writing Brittle Tests
Reducing Dependency on Internal State
Flexible Test Design
Overusing Mocks
Balancing Realism and Isolation
Mock Usage Guidelines
Test Data Management
Avoiding Hard-Coded Values
Test Data Factories
Previous
4. The pytest Framework
Go to top
Next
6. Mocking, Patching, and Test Doubles