The CICD Dilemma
Agiletestware works with a variety of engineering organization all over the world. It is always enlightening to see how different organization implement quality engineering discipline and try to achieve CICD (continuous integration and continuous delivery). Our experience shows that CICD is a long journey and requires a great amount of experimentation, discipline, and custom integrations with a variety of tools and frameworks. There is no silver bullet that will get you to the promised land 😢 CICD takes time, patience, and a good vision 😇
Many of our customers use a wide variety of testing frameworks, tools, CI systems, ALM solution, bug trackers, requirement management systems, etc. All of them want to achieve CICD but integrating all these technologies is a very challenging task when you need to do your day job and ship features to customers.
In these series of blog posts, we will go over how many of our customers have come one step closer to achieving CICD. The blog posts will explain how a variety of testing frameworks and tools and have been integrated with HP ALM (our customer’s ALM software for tracking projects) using Agiletestware’s Bumblebee product.
The typical technology landscape at most large companies
Before we explain the solution, let us explain the typical setup found in many of our customers. Hopefully, many of you will relate to this situation.
CI Applications – Jenkins, Bamboo, and TeamCity
CI system are at the center of achieving CICD. The three biggest and most mature CI applications are Jenkins, Atlassian Bamboo, and Jetbrain’s TeamCity. CI systems are used to build software, run tests, and do a variety of other tasks. In mature engineering organizations, CI systems are used to deploy software to achieve CD. All the information about these various tasks (build, test results, etc) are contained within the CI application.
What is HP ALM?
HP ALM is the leading solution in the industry for tracking complex software project. HP ALM is used for bug tracking, requirements management, test case management, and much more. HP ALM is a commercial product and integrates with various other tools from HP tools for testing web, mobile, and various other software products.
Web Testing and Selenium WebDriver
Selenium Webdriver is an open source tool for automating browsers. Primarily, it is for automating web applications for testing purposes. Selenium has the support of some of the largest browser vendors who have taken (or are taking) steps to make Selenium a native part of their browser. It is also the core technology in countless other browser automation tools, APIs and frameworks. If you are not using Selenium for testing web applications, you should re-think your testing tool strategy and take a closer look at Selenium WebDriver 😀
Mobile Testing and Appium
Appium is an open source test automation framework used for testing native, hybrid and mobile web apps. Appium aims to automate ios, Android, and Windows mobile app from any modern programming language and any test framework. Appium is supported by SauceLabs (leading provider of web and mobile test cloud). Appium is most widely used mobile testing framework and is free.
JAVA Test Frameworks – testNG and JUnit
Testing tools like Selenium and Appium require some test framework. In the JAVA world, two of the most widely used test frameworks are JUnit and testNG.
JUnit: JUnit is a simple framework to write repeatable tests. It is an instance of the xUnit architecture for unit testing frameworks.
testNG: TestNG is a testing framework inspired from JUnit and NUnit but introducing some new functionalities that make it more powerful and easier to use.
All sounds simple. So what is the problem?
If you are a HP ALM shop and using HP tools (UFT, LeanFT, QTP, etc) for testing all your applications, then there are no issues and life should be good. Every software development and testing activity should nicely be reflected in HP ALM.
However, the reality is that most organizations are rarely a homogeneous HP shop. Some teams may be using HP Tools (UFT, LeanFT, QTP), mobile testing team may be using Appium or other similar open source tools, browser application testing teams may be using Selenium WebDriver and cloud browser solutions like SauceLabs and BrowserStack, API testing team may be using using ReadyAPI, and unit test is hopefully done via some x-unit framework like Junit or testNG and most of these activities are controlled via Jenkins/Bamboo/TeamCity.
The end result is that you end up with islands of information within your organization. Some information is in HP ALM and some is in Jenkins/Bamboo/Teamcity and it is impossible to get a unified view of the project. As a consequence, engineering management often makes an uninformed decision because they don’t know how to collect all the data. There are just too much human element, too many reports to prepare, and it is just a pain and no one wants to do this.
How can Agiletestware help?
Agiletestware has been helping engineering organizations achieve CICD through many of our tools. We can’t solve all your problems but we may be able to solve many of them to get you closer to CICD. HP ALM is a significant investment and you should get the most out of your investment. We believe HP ALM is still the best ALM solution in the market and has the most mature bug tracking, agile project management, requirements management, and test case management modules in a single solution.
Agiletestware’s Bumblebee product can help integrate CI applications like Jenkins/Bamboo/Teamcity, JAVA tests frameworks like testNG/JUnit, and web and mobile testing tools like Selenium WebDriver / Appium with HP ALM with little to no coding. Bumblebee simply intercepts activities within your existing testing tools and CI frameworks and exports it to HP ALM in real-time.