Code Testing Learning Map
![map](https://raw.githubusercontent.com/Sanix-Darker/code-testing_learn/master/./code-testing.svg)
CHECK THE INTERACTIVE MAP
- What is Code Testing?
- Ensuring software quality
- Identifying defects
- Validating functionality
- Importance of Code Testing
- Reliability
- Maintainability
- Performance
- Manual Testing
- Exploratory Testing
- Ad-hoc Testing
- Usability Testing
- Automated Testing
- Unit Testing
- Integration Testing
- Functional Testing
- End-to-End Testing
- Regression Testing
- Performance Testing
- Security Testing
Testing Frameworks and Tools
- Unit Testing
- JUnit (Java)
- NUnit (C#)
- pytest (Python)
- Mocha (JavaScript)
- Integration Testing
- TestNG (Java)
- pyTest (Python)
- Functional Testing
- Selenium
- Cypress
- TestCafe
- End-to-End Testing
- Regression Testing
- Retest
- Regression Tracker
- Performance Testing
- Security Testing
- Mocking and Stubbing
- Mockito (Java)
- unittest.mock (Python)
- Sinon.js (JavaScript)
- Code Coverage
- Istanbul (JavaScript)
- JaCoCo (Java)
- Coverage.py (Python)
- Test-Driven Development (TDD)
- Behavior-Driven Development (BDD)
- Acceptance Test-Driven Development (ATDD)
- Continuous Testing
- CI/CD Integration
- Jenkins
- Travis CI
- GitHub Actions
- Test Case Design
- Clear and concise
- Independent
- Repeatable
- Testing Pyramid
- Unit Tests
- Service Tests
- UI Tests
- Assertion Strategies
- Basic assertions
- Fluent assertions
- Test Data Management
- Test doubles (mocks, stubs, fakes)
- Fixture management
- Keeping Tests Maintainable
- DRY (Don't Repeat Yourself)
- Descriptive naming
- Refactoring tests
- Managing Test Environments
- Isolated environments
- Consistent state
- Parallel Testing
- Benefits
- Challenges
- Tools and techniques
- Test Reporting and Analytics
- Generating test reports
- Analyzing test results
- Tracking test metrics
Common Testing Challenges
- Flaky Tests
- Identifying flaky tests
- Reducing flakiness
- Test Debt
- Accumulating test debt
- Managing and reducing test debt
- Legacy Code
- Testing legacy systems
- Refactoring for testability
Tools for Specific Programming Languages
- Java
- JUnit
- TestNG
- Mockito
- JaCoCo
- Python
- pytest
- unittest
- Coverage.py
- Behave (BDD)
- JavaScript
- C#
- NUnit
- xUnit
- MSTest
- SpecFlow (BDD)
- Official Documentation
- Tutorials and Courses
- Coursera
- Udemy
- Pluralsight
- Codecademy
- Books
- "Test Driven Development: By Example" by Kent Beck
- "Clean Code: A Handbook of Agile Software Craftsmanship" by Robert C. Martin
- "The Art of Unit Testing" by Roy Osherove
- Online Communities
- Stack Overflow
- Reddit (r/testing)
- Testing community forums
- Practice Projects
- Creating unit tests for a small application
- Setting up a CI/CD pipeline with automated tests
- Writing integration tests for a web service
- Keeping up-to-date
- Testing blogs and articles
- Testing conferences and webinars
- Community events