[hcmc stc jan 2015] practical experiences in test automation
TRANSCRIPT
Practical Experiences in Test Automation
Speaker: Tam Bui
© DiCentral Corporation
My Background • B. Eng in Computer Science – Hanoi polytechnic University.
• B. A in English – Hue University.
• ISTQB Advanced Level – Test Manager – USA.
• 10+ year experience in software automation testing and 12+ year experience in
software testing world.
• Experience in usability testing, performance testing and security testing.
• QA/QC Department Manager at DICentral.
© DiCentral Corporation
Content
• What is Automation Testing?
• Why Automation Testing?
• Automation Methodologies.
• Automation Testing Approach.
© DiCentral Corporation
What is Automation Testing?
Automation testing is about using a software, a piece of codes, or a test tool to perform the testing.
Three levels of Automation testing: Unit Testing, API Testing and GUI Automation Testing.
© DiCentral Corporation
Why automation testing? • Reduce manual testing efforts.
• Reduce test cycle time.
• Reduce test costs.
• Reduce manual testing errors when running regression tests.
© DiCentral Corporation
Why automation testing? (Cont.) • Run tests that manual tests cannot be run.
• Provide quick reports/feedbacks.
• Improve project team collaborations.
• Improve designing and programming skills.
© DiCentral Corporation
Pitfalls of Automation Testing
• Test everything. Non-repetitive tests will increase costs unnecessarily.
• Lack of designing and programming skills.
• Debug time is not planned properly.
• Hardcodes in test scripts.
• Poor manual testing quality.
© DiCentral Corporation
Pitfalls of Automation Testing
Changes in application under tests. This causes changes in test scripts.
• Automation testing can replace manual testing.
• Automation Test tool limitations.
Automation Test tools cannot recognize application controls and objects.
© DiCentral Corporation
Methodologies
• Record and Playback.
• Functional Automation.
• Data Driven.
• Keyword Driven.
• Hybrid.
© DiCentral Corporation
Key Success Factors Approach
• Select a Test Tool • Define Goals and Objectives. • Implement Automation Test
Framework. • Comprehend Design Principles. • Select Test Cases for Automation. • Separate Test Data and Test
Scripts • Provide Quick Reports/Feedbacks. • Make Maintenance easy and fun. • And other considerations
Process
• Define Automation Testing Process.
People
• Fulfill training activities. • Run Team Member
Collaborations.
© DiCentral Corporation
Fulfill training activities
• Design skills.
• Programming skills.
• Scripting techniques.
• Domain Knowledge.
• Test Tool Knowledge.
© DiCentral Corporation
Run Team Member Collaborations
• Test Designer: Comprehend domain knowledge and design test cases.
• Test Implementer: Implement and maintain test scripts.
Collaborate with: • BA: to get and clarity use cases, user stories etc.
• Developer: to get information about IDs of
Objects/Controls, Modules, Packages, etc.
• Manager: to get test automation scope, objectives, and provide strategy, plan, results and reports.
© DiCentral Corporation
Define Automation Testing Process
Plan
Design
Implement
Evaluate
Execute
Report
© DiCentral Corporation
Select a test tool
© DiCentral Corporation
Define Goals and Objectives
• Understand clearly about goals of
automation testing.
• Define objectives of automation testing to measure how much we get for the goals of automation testing.
• Then come up with the best strategy and plan for automation testing.
© DiCentral Corporation
Implement Automation Test Framework
The framework will facilitate automation testing activities: • Test designers design
test cases.
• Test implementers implement test script.
• Test executors run tests and get feedbacks/reports.
© DiCentral Corporation
Comprehend Design Principles
• Single Responsibility.
• Separation of concerns.
• Don’t repeat yourself.
© DiCentral Corporation
• Critical business test cases.
• Repetitive test cases.
• Time consuming test cases.
• Manually difficult test cases.
Select Test Cases For Automation
© DiCentral Corporation
Separate Test Data and Test Script
To improve: • Reusability
• Maintainability
© DiCentral Corporation
Provide Quick Reports/Feedbacks
© DiCentral Corporation
Make Maintenance easy and fun
• Follow design principles.
• Follow code conventions.
• Review and Refactor Code.
© DiCentral Corporation
Other considerations - Test Environment
• Test scripts can be executed across different platforms and environments.
• Test scripts can be executed in parallel to reduce execution time.
• Automation tests can be evoked by Continuous Integration process while test environment changes.
© DiCentral Corporation
Other considerations - Change Management
Put your automation test projects into configuration management systems.
© DiCentral Corporation
Conclusions
• Benefits of automation testing can be attained if we do it right at the beginning.
• There is more than one way to skin a cat.
© DiCentral Corporation.
Q & A
Thank you