Introduction
Testing software manually can be slow and error-prone, especially when tests need to run many times. Automation frameworks help organize and run tests efficiently, but there are different types designed for various needs and styles.
Imagine organizing a large event. You can either do every task yourself in order (linear), assign small teams for specific jobs (modular), create a shared toolkit for all teams (library), prepare different guest lists to invite (data-driven), use a checklist of tasks everyone understands (keyword-driven), or combine these methods for the best results (hybrid).
┌───────────────────────────────┐ │ Automation Frameworks │ ├─────────────┬─────────────┬────┤ │ Linear │ Modular │Library │ Framework │ Framework │Framework ├─────────────┼─────────────┼────┤ │ Data-Driven │ Keyword-Driven │Hybrid │ Framework │ Framework │Framework └─────────────┴─────────────┴────┘
def login(username, password): print(f"Entering username: {username}") print(f"Entering password: {password}") print("Clicking login button") # Data-driven example test_data = [ {"username": "user1", "password": "pass1"}, {"username": "user2", "password": "pass2"} ] for data in test_data: login(data["username"], data["password"])