Trying to build applications more quickly, at less expense, and with higher quality is hardly a new goal, but there is a growing trend in application development that shows some potential to help reach that elusive state. A few years ago, new application development platforms started appearing, calling themselves “low-code,” and they are now beginning to gain widespread acceptance – and every application built needs to be tested! So, let’s explore how these low-code platforms impact testing activities.
To start, let’s define low-code and why its adoption is growing. Low-code platforms provide a way to build applications by combining and configuring functions into screens and workflows instead of coding those functions by hand. Most of these platforms have a WYSIWYG-style editor, but feature highly configurable functions. Readers might be forgiven for saying, “hey, that’s nothing new!” thinking of FrontPage for 90’s websites, or even PowerPoint. In fact, these are very similar in intent, bringing what was a complex task into the reach of the semi-technical. But today’s low-code platforms are far more complex and powerful, able to create full working complex applications quickly, not just a web page, form, or presentation.
Low-code platforms provide value to two development team audiences:
- They let non-developers develop applications. The value here is hard to overstate. It certainly may help lessen the cost of the development team, but the REAL value is in fully enabling the process that started with Scrum and DevOps; it brings the business side of the application development team truly into the development process. It may even lead to the horrible term “BizDevQAOps” one day. Terms I’ve seen for this group are “Citizen Developers” or “Semiprofessional Developers,” and without a low-code solution, they can’t develop without learning a great many skills.
- They save professional developers time. Little is more important in the development world than time, and low-code platforms are just a continuation of trend that started long ago with object oriented programming, modular development, software libraries, APIs and web services, all the way through Agile/DevOps.
What has been overlooked to a large degree is the impact these low-code platforms have on QA or software testers in the application development team, especially those writing automation scripts.
- No more unit testing (or at least much less). Generally speaking, with most vendors, any items used directly from the low-code platform are already unit tested, and going through another unit testing phase is fairly pointless. Of course, custom code additions, etc. should be unit tested, but many of the more advanced platforms will automatically generate the unit tests for you. Even concepts like code coverage really break down when brought to bear on low-code platforms. Most defects will be caught in later stage testing phases.
- UI automated testing complexity can undermine the benefits of low-code platforms without a low-code UI automation tool. In most low-code tooling, the UI elements are very similar and have dynamic IDs, so they can be very hard to identify reliably. There are a lot of platforms, but many recommend either customizing class names while developing or using CSS selectors. Manual custom naming eats away at all the time saved for professional developers, and CSS selectors are hardly easy for non-developers. These may work, but if not adopted well, they reduce the time-saving benefits of a low-code platform, or they can actually result in more coding done for testing than developing! Low-code UI automation tools that support record and replay but have robust support for dynamic controls and support multiple ways of identifying UI elements are recommended to fully reap the benefits of a low-code platform.
- Automated API testing is essential. Since many modern applications depend on external APIs, many low-code platforms have simple ways to include those APIs in your application in the same way that they provide easy ways to add UI elements. However, while the platform has control over every piece of the UI, it does not control these external APIs. Often, external APIs can even be a bit of a moving target and they are therefore of paramount importance to test. Fortunately, API testing is straight forward to automate with the right solutions.
Low-code application development platforms are steadily gaining customers and will impact all members of the development team, most obviously, the Product team, developers and operations. But when considering becoming “low-code” (or dealing with a decision already made), make sure to consider how this impacts the QA team as well and ensure they have the correct tooling and approaches to maximize the benefits of low-code.