Opentest is a test automation framework designed to address the need of testing embedded software more efficiently by sharing resources across multiple users. The tedious process of bringing up hardware together with all new images is made extremely simple by just executing an automation test with help of Opentest framework automation. Enabling the use of single testcase for over 20+ different platforms makes the framework more efficient. Opentest provides a complete test automation solution by using Testlink. Opentest along with Jenkins provides a good DevOPs solution.
Opentest is an open-source test framework suitable for embedded software testing. Opentest is based on STAF(Software Testing Automation Framework) framework which is open-source, multi-platform and multi-language framework. STAF works on the concept of re-usability and extensibility and achieves it by using STAF services. These STAF services provide different functionalities using which we can use exiting STAF service or define new STAF services depending on the requirement. Opentest adds new STAF services on top of existing services.
Below diagram shows the test execution flow within the Opentest framework.
Testlink is used as TMS which is an open-source test management system(TMS). Testlink supports creation of multiple test projects, creating multiple testplans, creating thousands of testcases, maintaining the testcase version, generating test reports in different formats(word,excel,etc). Testlink allows us to specify the Hardware we want to test and the machine were the Hardware is connected for test execution. We can add automation as well as manual tests under any testplan. We can link different bug tracking tools to testlink for traceability.
The main function of TMC is to keep track of capabilities of BEE, TEE and service providers and to redirect the request from TMS to appropriate BEE,TEE and service provider according to test request. The capabilities of BEE,TEE and service providers are maintained by resource manager module of TMC and the requests are directed by dispatcher module of TMC.TMC writer passes the test results from TEE back to TMS. Those registered to TMC can only be a part of the framework so the BEE,TEE and service providers have to register themselves to TMC once they are up.
To run a test we require the software(build) and hardware(device) on which test is performed. TMC by co-ordinating with BEE and TEE make sure the test gets the software required and the hardware on which test needs to be performed. BEE provides the software required for test. TEE does the actual test execution on the hardware connected to it. The functionality of TEE includes bring up the hardware with the software from BEE, configure the hardware, perform the test and sending back the test result to TMC.
Each component of Opentest framework communicates with STAF request/Response message. So each Opentest module should have STAF installed and running on it to make the communication.
This installer provides the installation of STAF, Testlink, TMC, VATF, TEE, BEE and command line tools. VATF is Video Audio automation framework written in ruby. It was developed to automate Digital Video Software development kit(DVSDK) system test cycle but it is generic enough to be used to automate test suites on other products as Linux,Android, etc. VATF provide services like reading test parameters from test suite database, initialize all equipment required to run the test and call the appropriate test script.
We have successfully built an Opentest framework for testing multicore SDK for more than 20+ devices and we were able to meet the hard release deadlines due to complete automation solution provided by Opentest. Also, by integrating Jenkins, DevOps solution is provided for the project.
eInfochips has been working on test automation frameworks for various projects in IoT, semiconductors, medical devices and more. Check this white paper on one of our frameworks called EzTest.