Interactive Testing Methodologies Lesson

Click on any testing methodology below to learn about it in detail

Unit Testing
Test individual components in isolation
A B1 B2
Integration Testing
Test component interactions and interfaces
M1 M2 M3 M4 SYS
System Testing
Test complete integrated system
APP PERF
Load Testing
Test system performance under load
Service A Service B Latency Assault Exception Assault KillApp Assault ! !
Error Testing
Test system resilience and error handling
COMMIT TRIGGER BUILD TEST NOTIFY
Test Automation
Automated testing pipeline and CI/CD

🎯 Welcome to Testing Methodologies

Select any testing methodology from the left to start learning!

Each lesson covers the purpose, process, tools, and best practices.

Unit Testing

Unit Testing Flow

Input x Function f Output y Side Effects (I/O, file, database etc...)

🎯 Purpose

Unit testing involves testing individual components or modules of software in isolation to ensure they work correctly. It's the foundation of good testing practices and helps catch bugs early in development.

🔄 Process

The process follows a simple pattern: Input → Function → Output, while monitoring for side effects like I/O operations, file changes, or database interactions.

  • Write test cases for individual functions/methods
  • Mock external dependencies
  • Assert expected outputs for given inputs
  • Verify no unwanted side effects occur

✨ Benefits

  • Early bug detection
  • Easier debugging and maintenance
  • Documentation of expected behavior
  • Confidence in code changes

🛠️ Popular Tools

pytest
Mocha
JUnit
NUnit
Integration Testing

Integration Testing Hierarchy

A B1 B2 B1C1 B1C2 B2C1 B1C2

🎯 Purpose

Integration testing focuses on testing the interfaces and interaction between integrated components to detect interface defects.

🔄 Process

Tests how different modules work together when combined. The diagram shows component A integrating with B1 and B2, each having their own sub-components.

  • Big Bang: Test all components together
  • Top-down: Test from top-level down
  • Bottom-up: Test from bottom components up
  • Sandwich/Hybrid: Combination approach

✨ Key Focus Areas

  • Data flow between modules
  • Interface compatibility
  • API contracts and responses
  • Database integration

🛠️ Popular Tools

Postman
SoapUI
Selenium
Cucumber
System Testing

System Integration Architecture

Module 1 Module 2 Module 3 Module 4 System

🎯 Purpose

System testing evaluates the complete integrated system to verify that it meets specified requirements in a production-like environment.

🔄 Process

Tests the entire system as a black box, with all modules (1-4) working together as shown in the diagram.

  • Functional testing of complete workflows
  • Non-functional testing (performance, security)
  • End-to-end user scenarios
  • Environment and configuration testing

✨ Types of System Testing

  • Functional testing
  • Performance testing
  • Security testing
  • Usability testing
  • Compatibility testing

🛠️ Popular Tools

Selenium
Appium
Robot Framework
Guides
Load Testing

Load Testing Performance Analysis

App Performance (response time, throughput, error rate etc...)

🎯 Purpose

Load testing determines how a system performs under expected and peak load conditions, measuring response time, throughput, and error rates.

🔄 Process

Multiple users simultaneously access the application while monitoring performance metrics like response time, throughput, and error rates.

  • Define performance requirements
  • Create realistic user scenarios
  • Gradually increase load
  • Monitor system resources and response times

✨ Types of Load Testing

  • Load Testing: Normal expected load
  • Stress Testing: Beyond normal capacity
  • Spike Testing: Sudden load increases
  • Volume Testing: Large amounts of data

🛠️ Popular Tools

JMeter
Locust
LoadRunner
Gatling
Error Testing

Error Testing & Chaos Engineering

Service A Service B Latency Assault Exception Assault KillApp Assault CHAOS TESTING RESILIENCE

🎯 Purpose

Error testing (also called fault injection or chaos testing) deliberately introduces failures to test system resilience and error handling capabilities.

🔄 Process

Different types of "assaults" are performed on services to test their resilience:

  • Latency Assault: Introduce delays in responses
  • Exception Assault: Force exceptions in code paths
  • KillApp Assault: Terminate application processes
  • Memory/CPU exhaustion

✨ Benefits

  • Improved system reliability
  • Better error handling
  • Increased confidence in production
  • Disaster recovery validation

🛠️ Popular Tools

Gremlin
Chaos Monkey
Litmus
Pumba
Test Automation

CI/CD Automation Pipeline

Commit Change Trigger Build Build Run Test Notify Test Outcome Pipeline Status

🎯 Purpose

Test automation creates an automated pipeline that runs tests continuously throughout the development lifecycle, from commit to deployment.

🔄 Process

The automation pipeline follows these stages:

  • Commit Change: Developer commits code
  • Trigger Build: Automatic build initiation
  • Build: Compile and package application
  • Run Test: Execute automated test suites
  • Notify Test Outcome: Report results to team

✨ Benefits

  • Faster feedback cycles
  • Consistent test execution
  • Reduced manual effort
  • Early bug detection
  • Continuous quality assurance

🛠️ Popular Tools

Jenkins
Travis CI
CircleCI
GitHub Actions