1.57k likes | 3.87k Views
Test Automation Framework. Overview and Strategy Manjula Perera, 24.05.2012. Contents. Software Framework The Easy Way The Better Way Introduction PageObject Pattern Automation Framework Approaches Data/Table Driven Framework Keyword Driven Framework Hybrid Framework
E N D
Test Automation Framework • Overview and Strategy • Manjula Perera, 24.05.2012
Contents • Software Framework • The Easy Way • The Better Way Introduction PageObject Pattern • Automation Framework Approaches Data/Table Driven Framework Keyword Driven Framework Hybrid Framework Generic Architecture • Guidelines and Lessons Learnt Test Organization Test Writing Style Browser Updates Test Automation Framework l 24/05/2012
1 Software Framework What is a software framework? Test Automation Framework l 24/05/2012
Software FrameworkThe definition and key components • A software framework is a universal, reusable software platform used to develop applications, products and solutions (Wikipedia, 2012). • Software Frameworks include, • Support Programs • Compilers • Code Libraries • APIs • A tool set to integrate different components Test Automation Framework l 24/05/2012
Software FrameworkFramework properties • A Software framework contain key distinguishing features that separate them from normal libraries. • They are, • Inversion of Control (IOC) the overall program's flow of control is not dictated by the caller, but by the framework. • Default behaviour must actually be some useful behavior and not a series of instructions. • Extensibility can be extended by the user usually by selective overriding or specialized by user code providing specific functionality. • Non modifiable framework code is not allowed to be modified. Test Automation Framework l 24/05/2012
2 The Easy WayWhat is the easy way to automate? Test Automation Framework l 24/05/2012
The easy wayRecords all user activities and play back • Typically a software testing suite will allow the tester to use the SUT as a user would, through the browser. • In the background the testing suite records all of the clicks and key presses and discards any context. • Later, the recorded events are played back and various assertions are made to ensure the output matches that which is expected. Test Automation Framework l 24/05/2012
The easy wayPros and Cons • Pros • Easy and does not required highly skilled software developers • Large portions of the application can be covered quickly • Cons • Small changes to the SUT cause massive disruption in the tests • Entire suites of tests can be rendered useless resulting in reduce testing coverage for extended periods of time • Test maintenance becomes hard • Tests begin to stagnate • Team confidence, in the tests, is reduced. Test Automation Framework l 24/05/2012
3 The Better WayWhat could be a better way of automating? Test Automation Framework l 24/05/2012
The better wayIntroduction • Treat automated testing as software development. • Tests should be created with the same concern for software design principles such as, • Reduced coupling • High cohesion • Proper separation of concerns • Maintainability • Reusability Test Automation Framework l 24/05/2012
The better wayPageObject pattern The Page PageObjects Extracted page objects • Client view of the page Test Automation Framework l 24/05/2012
The better wayPageObject class Test Automation Framework l 24/05/2012
The better wayDos and Don’ts • In PageObjects, • The public methods represent the services that the page offers • Try not to expose the internals of the page • Generally don't make assertions • Methods return other PageObjects • Need not represent an entire page • Different results for the same action are modeled as different methods Test Automation Framework l 24/05/2012
The better wayPros and Cons • Pros • Selenium WebDriver supports • Increased maintainability • Increase test stability • Readable tests • Tests are easy to author • Cons • Larger up-front cost for creating PageObjects • More skill is required to create PageObjects Test Automation Framework l 24/05/2012
4 Automation Framework ApproachesWhat are the available automation frameworks? Test Automation Framework l 24/05/2012
Automation Framework ApproachesData/Table Driven Framework • Data driven is the design of possible inputs what may given by the end user. This would cover maximum probabilities of an input data. It can be a spread sheet or a DB. We have to connect and pass the values to the respective field or element. • Take advantage of tester’s familiarity with test case creation using tables and matrices • Accommodate localization projects • Recognize the importance of patterns in test cases • Enable testers to catalog test cases with Excel spreadsheets • Enable testers to specify expected results in spreadsheets Test Automation Framework l 24/05/2012
Automation Framework ApproachesData/Table Driven Framework Test Automation Framework l 24/05/2012
Automation Framework ApproachesKeyword Driven Framework • Keyword driven framework is an action based test method used in planning and implementation of automation. Test Automation Framework l 24/05/2012
Automation Framework ApproachesHybrid Framework • A mix of Data driven and Keyword driven frameworks. Test Automation Framework l 24/05/2012
Test Automation Framework (MSTest) Test Execution Engine Functional Tests Utils Domain Engine Selenium Web Driver API Automation Framework ApproachesGeneric Architecture • A Test Automation Framework should have a multi-tiered architecture. It should consists of the following tiers. • EngineComponents in this tier are completely responsible for interacting with the WebDriver interfaces. • DomainThis tier is meant to contain only page objects that work against the engine. • Utils This tier is meant to contain very generic, reusable functionality across all the other tiers. • Functional TestsThis tier will contain tests that are built on top of MSTest to create actual test scenarios by using page objects in the Domain. Test Automation Framework l 24/05/2012
5 Guidelines and Lessons LearntSome important points to keep in mind Test Automation Framework l 24/05/2012
Automation Framework ApproachesGuidelines for Automation framework design • Selection of a framework • Don’t reinvent the wheel - Make use of Selenium WebDriver functionalities • Reusability • Support of different application versions • Support of script versioning • Different environment for development and production • Externally Configurable • Minimal changes required for any object changes • Execution - Individual, batch, only failed etc • Status monitoring • Reporting • Minimum dependency on Automation tool for changes Test Automation Framework l 24/05/2012
Automation Framework ApproachesGuidelines for Automation framework design • Easy debugging • Logging - Errors, warnings, etc • Easy to Use • Flexible - Should not impact existing test if changes are required • Performance impacts • Coding Standards Test Automation Framework l 24/05/2012
Functional test organizationPhysical file organization • Test script files (.cs files) are organized into a folder structure much similar to the web application’s page structure. • Reasons to select this approach: • Easy access to tests • Testing a section of the application is easy Test Automation Framework l 24/05/2012
Functional test organizationTest class naming convention • Test class name should start with the containing folder name. • Reasons to select this approach: • Easy to group tests based on test class • Testing a section of the application is easy Test Automation Framework l 24/05/2012
Functional test writing styleBehavior Driven Development Style Tests • It is important to be able to break down a test scenario into the components of a behavior driven test to ensure clarity. Very concisely the test writer should be able to dictate a test scenario as: • Given <a precondition> • When <an action takes place> • Then <expected outcome should be present> Test Automation Framework l 24/05/2012
Functional test writing styleBehavior Driven Development Style Tests Test Automation Framework l 24/05/2012
Functional test writing styleBehavior Driven Development Style Tests • Reasons for selecting this approach: • This style of test writing allows for a test case to be easily verbalized and comparable to the system requirements being validated. • Since this effort is heavily focused on UI automation, it makes sense to capture test cases dictating every behavior of the system and the user. Test Automation Framework l 24/05/2012
Browser UpgradesWhat if the browser upgrades automatically? • Have a portable version of the browser • Package it with your framework • Starts when the test suite starts Test Automation Framework l 24/05/2012
A Possible ApproachCan we automate the automation tests? Test Automation Framework l 24/05/2012
Summary • Automation should be considered as a development project and not just record and playback of events. Starting automated testing with a good framework ensures low maintenance. Guidelines discussed in this paper can be used as input for developing requirements for a framework. Test Automation Framework l 24/05/2012
References • http://code.google.com/p/selenium/wiki/PageObjects • http://knowledgeinbox.com/articles/automation/frameworks/guidelines-for-automation-framework-design/ • http://qaselenium.blogspot.com/2010/11/selenium-automation-framework-design.html • http://en.wikipedia.org/wiki/Software_framework Test Automation Framework l 24/05/2012