DevOps works as continuous value delivery throughout the software development life cycle. It covers planning, builds, integration, release, and support/operation. Quality assurance is an important part of every step of this value chain. Hence we want to talk about the quality assurance prospects of DevOps: TestOps.
Anders adopts DevOps or we call it aggressive agile style into its project development. In the Anders Product Development Lifecycle (PDLC), the development team created a web or mobile, or product API application that worked while being tested in their local computer or dockers environment. Development progress has been stored in Git and merged to mainline release on a frequent basis.
Anders also set a QA environment for each project in synchronization with the development environment for customers to try the latest development (acceptance test) and giving continuous feedback.
Quality assurance activities start already at the beginning of the project by understanding customer requirements and defining acceptance criteria. TestOps go hand in hand with development and delivery practice by creating test cases for implemented features, verify user requirements, and testing business processes from the user point of view.
Automated test cases can run after every build is ready and give fast feedback on build quality. It improves communication between traditionally separate development and testing teams. TestOps helps the development team and project managers to reuse testing procedures and resources throughout PDLC via automation to improve the overall efficiency of the team to deliver the high-quality product on time.
Moreover, TestOps provide software quality screenings to cross-functional teams who are involved in PDLC such as entrepreneurs, product management, project management, IT, customers, production and deployment teams marketing, and more.
End to End automation in DevOps
Automation in DevOps language means: Continuous Integration, Continuous Testing, Continuous Deployment, and Continuous Delivery. DevOps enables every activity of development and operations, wherever possible, whichever is automatable, whichever is repeatable, wherever accuracy is demanded, whichever takes a long time is automated.
So there comes to select tools to be used for automation. A selection of the right framework and automation tool is the key requirement for automation.
When we look at tools available in the market, both open source and licensed tools, which supports the end to end automation of the entire delivery pipeline, including activities performed by the quality assurance team, provisioning machines, spinning automated servers, configuring networks, firewalls, and even monitor the performance of the software.
Also, certain organizations have developed their own framework so as to integrate the end to end process of DevOps which starts from code commit to code deployment including documentation which is a single integrated tool and the team doesn’t have to go outside the framework for anything related to the program, be it version control, test case writing, review, test case results dumping, analysis, etc.
Robot Framework has been around for quite many years. It is an open-source test automation framework for acceptance testing and acceptance test-driven development. It supports different test case styles − keyword-driven, behavior-driven, and data-driven for writing test cases. Robot Framework provides support for external libraries, tools that are open source and can be used for automation. The most recent library used is Browser Library which adopts Microsoft Playwright and used for web development & UI testing. in Anders, we are using the latest Browser library for our most recent two projects end-2-end testing project.
Robot Framework test cases are written using keyword style in a tabular format. Users can also define their own keywords. After each test suite execution, the system generates a comprehensive log report. The keywords can be defined in a descriptive way that serves as an effective communication tool to present information of test steps even for people who do not want to know much of the code-level details of the software. Open a sample test report, we can see the test case name, documentation explaining the test purpose, and each step of the test process. Green color means pass but it can also be defined separately.
The Robot Framework works on all popular Operating Systems available. The framework is built on Python and runs on Jython (JVM) and IronPython (.NET). Testers can use either of these two programming language’s IDE, for example, Pycharm for test case writing and executions.
THERE ARE MANY ADVANTAGES OF USING ROBOT FRAMEWORK AS A TESTOPS TOOL TO MAKE END-2-END TESTING:
- Easy to install and fast to work on in all our development environment.
- We can Focus on functional test coverage than learning varies concepts
- It runs on an individual keyword level so no big changes are needed when some new requirements are implemented. Less waste!
- Outstanding Reporting system: Robot Framework automatically generates a report after each run and we can present the report to customers during the demo.
- Test suites can be run in parallel to improve the efficient
Robot Framework provides lots of libraries to test different applications like Appium Library for Mobile Automation, Database Library for DB testing, Android Library, etc. While it supports a variety of libraries for UI, API, and networking areas automation and its community is actively adapt more libraries to its ecosystem (Browser in 2020)
When the Robot Framework test suite is added to our pipeline release, it can be scheduled as ran after every new build release. A typical time it will use to run each time is about 10-20 minutes depends on the number of test cases and the performance of the software products. It can be configurated to run overnight with our build schedule and collect results on the second day morning.
This is a great example of sustainable software development, where unnecessary work is minimized and manual tasks are automated.
Writer: Yang Xu, TestOps Engineer. Read about Yang´s career story!