Java IoT Authors: Elizabeth White, Zakia Bouachraoui, Liz McMillan, Pat Romanski, Yeshim Deniz

Related Topics: Java IoT

Java IoT: Article

Automation Puts the 'A' in Agile Testing

Test automation delivers agile's promises

In the agile community there are many different opinions about the value of automated testing. While many argue about automation's place in agile, the business realities of geographic separation, multiple teams, and limited resources dictate a more pragmatic approach. The process of software delivery has always centered on the idea that teams must manage quality if they are to avoid operational risk. Since nothing about agile is pre-determined or dictated, it comes as no surprise that businesses are hesitant to implement it as a trusted business process. Using tools to automate a newly adopted agile process becomes yet another variable that can complicate business decisions around software delivery.

These fears need to be overcome - automated testing, when integrated into the development process in a practical manner, plays a critical role in helping companies support both new and existing processes. When investigating agile testing methods, guidelines and first-hand experience can help to ease concerns around automated testing methods in environments of all sizes. Test automation allows for increased flexibility and repeatability, delivering on agile's promise of increasing the efficiency and quality of software delivery - through it all, automation puts the ‘A' in Agile testing.

Automation & Agile Software Delivery
In the world of agile software delivery, requirements are raised, changed, and reprioritized in much shorter timescales, meaning the functionality must be delivered in less time, but must still be fully tested to ensure that it continues to meet the needs of end users and the business. In an agile process, testing is continuous and imperative, since features aren't "done" until all associated test cases pass. As software volume and complexity increases, it's clear that manual processes will fail to deliver the fast and repeatable results necessary to keep the promises of an agile proposition. Without the ability to automate and quickly repeat tests, quality will inevitably suffer as testing is marginalized to achieve on-time delivery.

Regardless of whether your development team is considering going agile, making the transition, or already operating in an agile mode, it's essential to consider how technology can support this new way of working - particularly in the area of testing. There's room for improvement in all major test processes including: test automation, test management, and requirements management.

In terms of challenges, those interested in implementing agile testing automation are facing a number, such as operating agile and traditional testing methods side-by-side, identifying tools that are usable and flexible enough for an agile approach, allowing specific non-technical and non-testing members to actively contribute to the testing process, enabling open source integration, and enabling test-driven (or model-driven) development. Overwhelming? Yes. Insurmountable? Definitely not!

Why Automated Testing for Agile Development?
Let's dive a little deeper into the reasons why testing needs to be automated in an agile delivery environment. The people involved in testing are part of the delivery team - not an isolated group that developers give the code to as a final step to release. Ideally, testers sit side-by-side with the developers, who, as they create code, pass it to testers early and continually throughout the process for evaluation against acceptance criteria. Since capability is built iteratively and the team needs to maintain velocity, the code assets have to be verified quickly. For agile to truly succeed, functional testing has to be quick, iterative, and responsive.

  • The Need for Speed: Accelerating the Code-and-Test Process - Automation enables testers to create simple, reusable scripts that they can deploy to save time and increase the consistency of testing across similar user stories, story points, or requirements in and across projects. Tests can be developed from the user story to drive the functional capabilities and then run rapidly and iteratively. The speed of automation significantly lightens the workload of testers and eliminates the need for late night and weekend testing marathons that can burn teams out.
  • The Need for Repeatability: Doing the Same Tests and Scripting Tests against the Right Acceptance Criteria - With agile development, regression testing should be done at the close of every new iteration - in some cases this means daily. Regression testing requires that 1) you do the same tests every time you test a particular piece of code and 2) that the test is scripted against the acceptance criteria of each respective user story. Whenever code changes (or is extended to include new capability), you need to rerun all functional tests for all user stories up to the latest change to ensure other user stories weren't impacted inadvertently.

Repeatability is nearly impossible to achieve with manual testing due to human error, variability, and inconsistency. People simply can't remember exactly which tests they ran for each piece of code for the last iterative cycle - and even one oversight can cause problems in the final code. Not to mention the fact that with large code bases the time needed to manually test usually exceeds the time allotted for the iteration. But with automated, repeatable functional and regression testing, one can execute tests consistently whenever necessary.

The automation element adds key benefits that can't be achieved with manual testing. For example, it can greatly accelerate the code-and-test process by supporting fast automated test scripts. Automation also ensures the repeatability of tests to maintain regression testing from sprint-to-sprint, iteration-to-iteration. It can also enhance test efficiency with robust yet flexible test management processes, helping customers avoid the inherent inaccuracies that manual processes inject in to the process.

Choosing the Right Test Automation Tools
Agile software delivery relies on the right mix of people, processes, and tools. The choice of testing tools becomes critical for reaping the efficiency and quality benefits of agile. One side of the coin shows that the manual testing processes popular with most businesses today can make it difficult - if not impossible - to implement and scale agile delivery methods. On the other side of the coin are those automated testing tools designed solely for use in traditional environments that force testers to work within a certain development practice to ensure test accuracy. With such choices, it's no wonder many companies fear adopting automated testing tools!

Time to trade in that outdated "coin" for real change: an agile delivery process requires a shift to truly agile testing tools. When researching tools for implementing automated testing, watch out for those that can only be initiated at defined points in the development process, require specific QA knowledge, or require that specific development practices be used to guarantee precision. Automated testing puts the ‘A' in agile, but only if the tools can deliver both flexibility and accuracy.

As an increasing number of enterprises embrace agile software delivery approaches they realize a new set of challenges. The realities of the enterprise - geographic separation of teams, cost reductions, diminishing timelines, and limited resources - require that organizations take a practical approach to agile software delivery. Modern automated testing solutions play a vital role in supporting this evolution by enabling agile teams to implement test strategies that are flexible, repeatable, and accurate. In the end, businesses can reduce the risk of releasing applications of unknown quality or reliability with agile test automation.

More Stories By Stephen Walters

Stephen Walters is product marketing manager at Borland, bringing Borland’s LQM solutions and products to market. He has been working within the IT industry for 16 years. Stephen started out as a programmer of Pseudo computer systems, followed by programming using Basic, Pascal and C for three tier client server systems. He then spent some time working in a testing arena before his first work in Configuration Management 13 years ago.

Comments (0)

Share your thoughts on this story.

Add your comment
You must be signed in to add a comment. Sign-in | Register

In accordance with our Comment Policy, we encourage comments that are on topic, relevant and to-the-point. We will remove comments that include profanity, personal attacks, racial slurs, threats of violence, or other inappropriate material that violates our Terms and Conditions, and will block users who make repeated violations. We ask all readers to expect diversity of opinion and to treat one another with dignity and respect.

IoT & Smart Cities Stories
Whenever a new technology hits the high points of hype, everyone starts talking about it like it will solve all their business problems. Blockchain is one of those technologies. According to Gartner's latest report on the hype cycle of emerging technologies, blockchain has just passed the peak of their hype cycle curve. If you read the news articles about it, one would think it has taken over the technology world. No disruptive technology is without its challenges and potential impediments t...
Nicolas Fierro is CEO of MIMIR Blockchain Solutions. He is a programmer, technologist, and operations dev who has worked with Ethereum and blockchain since 2014. His knowledge in blockchain dates to when he performed dev ops services to the Ethereum Foundation as one the privileged few developers to work with the original core team in Switzerland.
Andrew Keys is Co-Founder of ConsenSys Enterprise. He comes to ConsenSys Enterprise with capital markets, technology and entrepreneurial experience. Previously, he worked for UBS investment bank in equities analysis. Later, he was responsible for the creation and distribution of life settlement products to hedge funds and investment banks. After, he co-founded a revenue cycle management company where he learned about Bitcoin and eventually Ethereal. Andrew's role at ConsenSys Enterprise is a mul...
René Bostic is the Technical VP of the IBM Cloud Unit in North America. Enjoying her career with IBM during the modern millennial technological era, she is an expert in cloud computing, DevOps and emerging cloud technologies such as Blockchain. Her strengths and core competencies include a proven record of accomplishments in consensus building at all levels to assess, plan, and implement enterprise and cloud computing solutions. René is a member of the Society of Women Engineers (SWE) and a m...
If a machine can invent, does this mean the end of the patent system as we know it? The patent system, both in the US and Europe, allows companies to protect their inventions and helps foster innovation. However, Artificial Intelligence (AI) could be set to disrupt the patent system as we know it. This talk will examine how AI may change the patent landscape in the years to come. Furthermore, ways in which companies can best protect their AI related inventions will be examined from both a US and...
In his general session at 19th Cloud Expo, Manish Dixit, VP of Product and Engineering at Dice, discussed how Dice leverages data insights and tools to help both tech professionals and recruiters better understand how skills relate to each other and which skills are in high demand using interactive visualizations and salary indicator tools to maximize earning potential. Manish Dixit is VP of Product and Engineering at Dice. As the leader of the Product, Engineering and Data Sciences team at D...
Bill Schmarzo, Tech Chair of "Big Data | Analytics" of upcoming CloudEXPO | DXWorldEXPO New York (November 12-13, 2018, New York City) today announced the outline and schedule of the track. "The track has been designed in experience/degree order," said Schmarzo. "So, that folks who attend the entire track can leave the conference with some of the skills necessary to get their work done when they get back to their offices. It actually ties back to some work that I'm doing at the University of San...
When talking IoT we often focus on the devices, the sensors, the hardware itself. The new smart appliances, the new smart or self-driving cars (which are amalgamations of many ‘things'). When we are looking at the world of IoT, we should take a step back, look at the big picture. What value are these devices providing. IoT is not about the devices, its about the data consumed and generated. The devices are tools, mechanisms, conduits. This paper discusses the considerations when dealing with the...
Bill Schmarzo, author of "Big Data: Understanding How Data Powers Big Business" and "Big Data MBA: Driving Business Strategies with Data Science," is responsible for setting the strategy and defining the Big Data service offerings and capabilities for EMC Global Services Big Data Practice. As the CTO for the Big Data Practice, he is responsible for working with organizations to help them identify where and how to start their big data journeys. He's written several white papers, is an avid blogge...
Dynatrace is an application performance management software company with products for the information technology departments and digital business owners of medium and large businesses. Building the Future of Monitoring with Artificial Intelligence. Today we can collect lots and lots of performance data. We build beautiful dashboards and even have fancy query languages to access and transform the data. Still performance data is a secret language only a couple of people understand. The more busine...