Download as DOCX, PDF, TXT or read online on Scribd
You are on page 1/ 2
Test Automation Part 1
Q1. What are the reasons to automate the testing process?
1. Manual Testing Takes Too Long: Testing everything manually as the application grows is time-consuming and limits the pace of development. 2. Manual Processes Are Error Prone: Repetitive and tedious tasks increase the risk of human error, skipped tests, or missed bugs. 3. Automation Frees People to Do Their Best Work: Automation removes mundane tasks, allowing testers to focus on exploration and creative testing. 4. Automated Regression Tests Provide a Safety Net: They ensure confidence in changes and allow teams to refactor or add new features without fear of breaking existing functionality. 5. Automated Tests Give Feedback Early and Often: Frequent test execution helps identify issues immediately after code changes, making fixes easier and cheaper. 6. Tests and Examples That Drive Coding Can Do More: Automated tests created early drive development and ensure the functionality aligns with business requirements. 7. Tests Provide Documentation: Automated tests serve as up-to-date, executable documentation of the system's behavior. 8. Automation Can Be a Good Return on Investment (ROI): It reduces long-term costs by enabling quicker bug detection and better code quality.
Q2. What are the barriers to a successful test automation?
1. Programmers’ Attitude: Some programmers rely on QA teams for testing and don’t see the value of automating tests themselves. 2. The “Hump of Pain”: The steep learning curve and initial struggle of adopting automation practices can discourage teams. 3. Initial Investment: Setting up automation requires time, tools, and training, which may not yield immediate benefits. 4. Code That’s Always in Flux: Frequent changes to the application can make maintaining automated tests challenging. 5. Legacy Systems: Testing old, poorly designed code that wasn’t built with automation in mind can be daunting. 6. Fear: Lack of programming knowledge or confidence in automation tools can intimidate team members. 7. Old Habits: Teams often revert to manual testing under pressure, neglecting automation tasks. Test Automation Part 2
Q1. What aspects of a development process can we automate?
1. Continuous Integration, Builds, and Deploys: Automate building, integrating, and deploying code to ensure quick feedback and consistent results. 2. Unit and Component Tests: Essential for regression testing and ensuring high-quality, robust code. 3. API or Web Services Testing: Use automation to handle numerous test permutations and ensure correctness in API responses. 4. Testing Behind the GUI: Focuses on stable business logic, unaffected by GUI changes, making it ideal for automation. 5. Testing the GUI: Automate regression tests for GUI functionality but keep them minimal to avoid frequent updates due to UI changes. 6. Load Tests: Performance and scalability testing are best handled through automation for 1. accuracy and repeatability. 7. Comparisons: Automate tasks like comparing output files, database tables, or ASCII outputs for 2. efficiency and accuracy. 8. Repetitive Tasks: Automate any tedious, repeatable task to save time and reduce errors. 9. Data Creation or Setup: Automate the generation and cleanup of test data to ensure consistency and efficiency.
Q2. What aspects of a development process should we not automate?
1. Usability Testing: Requires human judgment to evaluate user experience and interface aesthetics effectively. 2. Exploratory Testing: Involves creativity and adaptability, making it unsuitable for automation. 3. Tests That Will Never Fail: Automating tests for extremely stable functionality or low-risk areas may not be worth the effort. 4. One-Off Tests: Tests that are executed only once (e.g., date-specific functionality) often don't justify the time or cost of automation.