• Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
  • Could you send me the soft copy via email: hohongtram@gmail.com? The content is really nice. I would share to my testing team.

    Thanks in advance.

    Best Regards,
    Tram Ho
    Are you sure you want to
    Your message goes here
No Downloads

Views

Total Views
6,235
On Slideshare
0
From Embeds
0
Number of Embeds
2

Actions

Shares
Downloads
0
Comments
1
Likes
3

Embeds 0

No embeds

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
    No notes for slide
  • 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

Transcript

  • 1. Programming Skills for Test AutomationMar 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 interactionMar 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 DescriptionRoles 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 systemMar 9, 2012 Programming Skills for Test Automation 4
  • 5. Test Automation Test automation lifecycleMar 9, 2012 Programming Skills for Test Automation 5
  • 6. Test Automation Test automation and software development lifecycleMar 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 systemMar 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 TOOLMar 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, StrategyMar 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 helpsMar 9, 2012 Programming Skills for Test Automation 10
  • 11. Test Types Unit tests Regression tests GUI testing Database Files Performance testsMar 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 frameworksMar 9, 2012 Programming Skills for Test Automation 12
  • 13. GUI AutomationEase 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 usedMar 9, 2012 Programming Skills for Test Automation 13
  • 14. GUI AutomationDirect 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 resultMar 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 parsingMar 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 casesMar 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 patternMar 9, 2012 18 Programming Skills for Test Automation
  • 19. Performance Tests Extras Nice to have: Working with Performance counters Chart controls for displaying resultsMar 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 codeMar 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 runMar 9, 2012 Programming Skills for Test Automation 22
  • 23. ConclusionSuccessful tool automation depends on: The tools (Standard) testing process The right test team roles, duties Skills - blend of: Testing Programming Tools knowledgeMar 9, 2012 Programming Skills for Test Automation 23
  • 24. Questions ?Mar 9, 2012 Programming Skills for Test Automation 24