FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhi
Programming skills for test automation
1. Programming
Skills for Test
Automation
Mar 9, 2012 Programming Skills for Test Automation 1
2. Overview
Programming skills for test architecture
and design
Programming skills for automated tests
Performance testing skills
Configuration management skills
Manual testing interaction
Mar 9, 2012 Programming Skills for Test Automation 2
3. Automation testing
creating programs to test other programs
Test engineer implements automated tests using
the same techniques as the ones used in software
developments
This is the point where the fun begins
Mar 9, 2012 Programming Skills for Test Automation 3
4. Job Description
Roles and Responsabilities: Skills:
Build advanced automated
test suites to exercise x years relevant work
applications experience
Work with the development Excellent coding skills in C,
and test engineering teams C++, Java, C# or Python.
to automate testing Good scripting skills in at
Conduct research on least one common language
emerging technologies (Python, Perl, Shell).
Analyze and decompose a
complicated software
system and design a strategy
to test this system
Mar 9, 2012 Programming Skills for Test Automation 4
5. Test Automation
Test automation lifecycle
Mar 9, 2012 Programming Skills for Test Automation 5
6. Test Automation
Test automation and software development lifecycle
Mar 9, 2012 Programming Skills for Test Automation 6
7. Analysis and Prototype
Select automation use cases from requirements
No third party tools can guarantee success of test
automation and return of investment:
design & implement a customized testing framework
which can use existing tools - open source/ commercial /
own custom tools
create maintainable libraries of tests
Provide the main models/principles used in
architecting the testing system
Mar 9, 2012 Programming Skills for Test Automation 7
8. Architecture and Design
TEST DATA
SELECTS
ACCORDING TO
SETTINGS
CHECK SCRIPTS USE
SCRIPTS
SETTINGS
RETRIEVE GUI ELEMENTS
MAIN FROM AUT
APPLICATION
AUTOMATION
TOOL
Mar 9, 2012 Programming Skills for Test Automation 8
9. Architectural Skills
Object oriented analysis and design
Design patterns
Creational patterns
• Singleton, Factory, Builder, Object pool
Structural patterns
• Composite, Proxy pattern
Behavioral patterns
• Observer pattern, Strategy
Mar 9, 2012 Programming Skills for Test Automation 9
10. Test Development
OOP concepts
Encapsulation, Abstraction, Inheritance, Polymorphism
Knowledge of the programming / scripting
languages
Selected test tool(s) scripting language(s)
and capabilities
Greatest advantages of programming skills:
Perform verifications accurate and repeatedly
Build your own tools if nothing helps
Mar 9, 2012 Programming Skills for Test Automation 10
11. Test Types
Unit tests
Regression tests
GUI testing
Database
Files
Performance tests
Mar 9, 2012 Programming Skills for Test Automation 11
12. Unit Tests
Requirements and user documentation knowhow
Skills:
Working with value types, strings, objects and
collections, serialization in selected programming
language/ or equivalent in scripting language
WebService: working with SOAP and REST interfaces
(requests/ responses)
xUnit frameworks
Mar 9, 2012 Programming Skills for Test Automation 12
13. GUI Automation
Ease of script maintenance rule:
Use tool(s) to identify UI controls
Select properties which are not changed every build
Don’t depend on the OS environment
• e.g. select the id/ name of the object, not coordinates
• tree searching algorithms can improve lookup performance
Desktop applications:
Win32 API can be used
Mar 9, 2012 Programming Skills for Test Automation 13
14. GUI Automation
Direct access to the GUI specific remarks:
.NET:
• invoke delegates to manage control
• STA threads for GUI operations
Android:
• Perform operations on main thread
Others have their rules too
Mar 9, 2012 Programming Skills for Test Automations 14
15. Database
DB skills used from test tool or in custom
program :
Database connection
SQL CRUD operations
Data structures to compare GUI / DB values and
expected result
Mar 9, 2012 Programming Skills for Test Automation 15
16. Files – Logs verification
File handling:
• Open
• Read/ write (if needed)
• Close
• Watch for changes
(Large) Strings handling methods:
• search for strings
• extract substrings
XML parsing
Mar 9, 2012 Programming Skills for Test Automation 16
17. Performance Testing
Existing tools:
JMeter, Test complete, etc for the AUT load/
stress testing
Build custom tools for better coverage of
the business use cases
Mar 9, 2012 Programming Skills for Test Automation 17
18. Custom Performance Tests
Measuring responsiveness:
Multimedia timers
Operations on date/ time objects
Simulate users with threads
Operations with threads
Thread synchronization and data structure
access
Concurrency design patterns: active object,
thread pool pattern
Mar 9, 2012 18
Programming Skills for Test Automation
19. Performance Tests Extras
Nice to have:
Working with Performance counters
Chart controls for displaying results
Mar 9, 2012 <Presentation Name> 19
20. Continuous Execution
Configuration management:
Automated tests can be integrated in build systems or in
dedicated systems for continuous execution
Skills:
Usage of batch/ bash files
Working with schedules tasks
Integration in continuous build systems (Cruise Control,
Hudson, etc)
Mar 9, 2012 Programming Skills for Test Automation 20
21. Don’t Forget
Coding guidelines
Naming conventions
In case the scripting language does not
support OOP try to avoid as much as
possible having duplicate code
Mar 9, 2012 Programming Skills for Test Automation 21
22. Manual Interaction
Test failures from an automated test run
still must be analyzed manually
Any part of:
Provisioning and setting up the machine to run
the tests
Kicking off the test run
Mar 9, 2012 Programming Skills for Test Automation 22
23. Conclusion
Successful tool automation depends on:
The tools
(Standard) testing process
The right test team roles, duties
Skills - blend of:
Testing
Programming
Tools knowledge
Mar 9, 2012 Programming Skills for Test Automation 23
24. Questions
?
Mar 9, 2012 Programming Skills for Test Automation 24
Editor's Notes
No third party tools can guarantee success of test automation and return of investment: long term scope: design and implement a customized testing framework which can use existing tools - open source/ commercial / own custom tools - to create maintainable libraries of tests for the business use cases of our AUT Select automation use cases from requirements Provide the main models/principles used in architecting the testing system
If the test tool has some limitations in automating the test case, you can create anytime a custom tool which solves this issue
Usually done by developers, Requirements and user documentation knowhow is a must Skills: Understanding the business cases of the software under test s