TEST AUTOMATION FRAMEWORK
Twister Topics Quick introduction Use cases High Level Description Benefits Next steps
Twister How to get Twister is an open source test automation framework. The code, user guide and installation guidelines can be downloaded from: https://github.com/luxoft/twister
Twister Quick Introduction Twister is an automated testing framework that helps user in building functional, regression and load test suites. It was developed taking in account the specific needs of the enterprise telecommunication market to help in testing telecommunication devices like switches, routers or PBXs.
Twister Quick Introduction cd. Key features of Twister: Web based GUI intuitive & user friendly interface; easy to manage tests/suites Real time monitoring of execution Multitenant architecture; multiple users can fire the tests to different SUT s simultaneously Distributed execution; SUT s can be tested in parallel against same or different set of tests Flexible reporting mechanism; DB schema is not fixed and there is no need to change framework to fit with a new DB schema Support for different scripting languages and for record & play GUI tools OpenFlow 1.0 module available for conformance testing Support for Continuous Integration, Source Revision Control, Bug tracking Support for GUI plugins; specific functionality loaded dynamically as plugin
Twister Use Case Parallel Exec Twister, traffic generators and SUTs are in the same test lab; Twister execute in parallel the test suites for different SUTs; completion time can be controlled by multiplying the SUTs or protocol conformance tested simultaneously on multiple SUTs
Twister Use Case Distributed Exec Twister is a centralized management system for entire department/company GUI and central engine in remote office; different labs ( e.g. per project ) with SUTs, traffic generators and execution processes
Twister High Level System Architecture
Twister High Level Description GUI web based interface; no need to install and manage it on multiple machines, just configure the central server and it is available for multiple users user authentication; only authorized users can access the framework and configurations are isolated framework properties can be configured easily and are defined per user project files contain the testing suites and the details for execution; the user can define project files for different scenarios and he can select what type of test to execute by loading the project file includes support to edit the test cases in a visual editor and to do quick unit testing to make sure the changes are correct; user can save the changes for future usage support for different operations per test cases ( set as optional, set arguments, set as unit test, ) control the status of testing ( start/pause/resume/stop testing ) live monitoring offers a clear overview about how the testing is progressing; every test is marked with it s status and a live summary is displayed; live logging helps in understanding the root cause of failures reporting is based on a flexible mechanism that is not nailed to a fixed database schema; that allows db schema changes without changes in framework code plugins support allows user to load features on the fly into the framework
Twister High Level Description cd. Central Engine Twister s core developed in Python manages all the information from the configuration files picks the selected tests from repositories and deliver them to the correct execution engine as defined by user in GUI load modules with different functionality and deliver them to execution engines collects the output from the execution engines and aggregate it for GUI connects to DB and store the results when the testing is completed provides data from DB to GUI for reports and statistics send email with summary when the testing is completed; the email details are defined by user in GUI mechanism implemented for resource allocation; the GUI defines the devices present in a test bed and the central engine manages the request for resources received from execution engines; one resource can be allocated to a single execution engine at one time REST API allows user to get the framework s internals; useful to help user understanding framework s status and debugging issues support for source revision system ( GIT and SVN ) support bug tracking (Jira) support for continuous integration system ( Jenkins )
Twister High Level Description cd. Execution Engine point of contact for SUT executes the test cases and reports the status to central engine CLI logs from SUTs sent to central engine for aggregation Support for tests developed in different scripting languages ( Python/TCL/Perl ) support for record and play tools ( Sikuli/Selenium/TestComplete ) can be deployed remotely for distributed execution of testing so there is no need to install the framework in multiple places Twister GUI offers reports and statistics based on the information saved in DB; the reports can be customized based on project, vendor, device type or any other criteria based on the DB schema. Twister offers by default reports for summary, details and history. Other type of reports can be defined and implemented to be displayed in Twister GUI. Twister can interact with external devices ( e.g. traffic generators ) using specialized modules for them
Twister benefits Open source software Support and expertize available from Luxoft Shorter time to test no need to spend time to develop a customized framework Intuitive and user friendly GUI short time to get familiar with the tool Module for OpenFlow 1.0.1 conformance testing
Twister next features Execution scheduler Wireshark integration Module for traffic generator OpenFlow related features Plugins to help in tracing and debugging issues
Twister OpenFlow next steps Implement OpenFlow 1.3 conformance tests Implement OFConfig ( 1.0/1.1 ) conformance tests Offer plugin to display flows and statistics of an OF switch Offer plugin for OF controller interoperability Enhance capabilities for OF functional testing
Twister our services Develop modules for specific devices Provide test automation expertise Customize the statistics and reporting according to client s request Implement new functionality for Twister to cover customer s needs Development of test cases for different type of tests ( conformance, functionality )
Thank you!