Research on Quality Assurance Methods for Software Products Based on Low Code Development ⋆ Wenyuan Zhang1,*,†, Jianxun Guo2,†, Yangyang Zhang3,*,†, Wenpeng Li*,† 1 (China Electronics Standardization Institute, Software Engineering and Evaluation Center, Beijing 100007) 2 University of Twente, Drienerlolaan 5, 7522 NB, Enschede, The Netherlands 3 University of Skövde, Högskolevägen 1, 541 28 Skövde, Sweden Abstract With the acceleration of digital transformation, low-code (LC) has become an important trend in the field of software development. Products such as LC development tools and platforms provide users with graphical and visual programming interfaces, enabling non-professional developers to quickly build applications and significantly improve development efficiency, function suitability and etc.. However, the impact of LC on software engineering quality is a complex issue that involves multiple aspects such as development processes, testing strategies, selection and integration of automation tools, and performance testing standards. This paper aims to explore the impact of LC on software product quality and study a software quality characteristic framework for LC development to ensure reliability, performance, understandability and etc. when using LC. Keywords Low-Code, software engineering, quality characteristics 1 1. Introduction and other emerging technologies provide a broader application scenario for LC. During this period, some LC is an emerging technological paradigm in the current enterprises and platforms specializing in LC technology field of software engineering. The practical approach of development began to emerge, such as OutSystems, this technology is to use pre made code modules for Mendix, etc. They greatly lowered the threshold for programming, reducing manual coding to accelerate the software development by providing drag and drop software development process, thereby enabling interface components and pre-set functional modules. nonprofessional developers to participate in the However, the LC market at this stage is still in its early software development process. Since the 1980s, the stages, and there are not many products that can be process of LC transitioning from conceptual technology widely applied. to thriving development has become one of the important drivers in today's wave of digital transformation. 1.1. Initial exploration (1980-2000s) The origin of LC can be traced back to the 1980s, when early graphical programming tools and fourth generation programming languages (4GL) appeared on the market. Engineers attempted to simplify software development processes and code writing through these tools, making development work more intuitive and understandable. However, limited by the computing power and network environment at that time, the actual effectiveness of these tools was relatively limited and could not be widely popularized. 1.2. Technical accumulation (2000-2014) Figure 1: The developement path of LC In the 21st century, with the rapid development of Internet technology, cloud computing, mobile Internet 6th International Workshop on Experience with SQuaRE Series and its 0009-0005-9868-5742(W. Zhang); 0009-0001-4065-2527(W. Li); 0009- Future Direction, December 03, 2024, Chong Qing, China 0006-4940-8527(Y. Zhang) ∗ Corresponding author. © 2024 Copyright for this paper by its authors. Use permitted under † These authors contributed equally. Creative Commons License Attribution 4.0 International (CC BY 4.0). Zhangwy@cesi.cn (W. Zhang); Liwp@cesi.cn(W. Li); Zhangyy@cesi.cn(Y. Zhang) CEUR ceur-ws.org Workshop ISSN 1613-0073 Proceedings 1.3. Rapid Rise (2014 present) organizations, improving the efficiency of the entire software development lifecycle. Around 2014, as the demand for digital transformation This article mainly focuses on the research of in enterprises became increasingly urgent, LC software product quality based on LC. LC here mainly development experienced explosive growth. In 2014, the refers to a software development technique and tool internationally renowned consulting firm FORRESTER pattern, which is mainly aimed at developers. By first proposed the term and concept of LC development, providing a visual programming interface and which is a software development method that allows configurable approach, it reduces the workload of enterprises to quickly build and deploy applications with traditional handwritten code and enables rapid minimal coding work. At this stage, major technology development and testing of software. Therefore, the giants such as AWS, Google, Microsoft, and Oracle have quality characteristic models/frameworks studied in this successively laid out the LC market and launched a article revolve around the impact and innovation of LC series of LC development tools and services. A typical on software engineering quality characteristic models. event among them is in 2018, when Siemens acquired Mendix, a leading enterprise in the LC field, for 600 million euros, marking the official entry of LC 2. Analysis of the Impact of LC technology into the mainstream. 2.1. Key features of LC Compared with traditional software products, software products developed based on LC have the main advantages of improving development efficiency, reducing technical barriers, promoting collaboration between business and IT, and utilizing modular code modules to achieve convenient development and management throughout the entire lifecycle. LC development has the following advantages in the software development process: 2.1.1. Agility LC development embodies multiple advantages when applied to agile software development processes, which align with the core principles of agile development, Figure 2: Main events after 2014 [5] including improving adaptability, enhancing collaboration, improving efficiency, strengthening In recent years, with the integration and application flexibility, and iteration. For businesses or organizations, of advanced technologies such as artificial intelligence they need the ability to quickly respond to market and big data in the field of software engineering, the changes and develop innovations based on consumer functions of LC development tools, platforms, and other demand. LC development compresses the consumption products have become increasingly powerful, covering a of design, prototyping, iteration, and other steps in the wider range of industries and fields. They are capable of agile development process, introduces automated developing everything from simple form based software testing methods, strengthens team collaboration and to complex enterprise level systems. transparency, and provides better agility for enterprises, thereby achieving the need for rapid delivery of 1.4. Current trend enterprise requirements. At present, LC is no longer limited to rapid prototyping 2.1.2. Scalability and small-scale application development of general software, but is increasingly being applied in enterprise In the current market, enterprises need to be able to level projects. Meanwhile, with the continuous quickly adapt to market changes and easily expand the advancement of technology, LC development related functionality and performance of applications to meet products are also developing towards more intelligent, evolving business needs. The related products of LC personalized, and open directions, providing enterprises development continuously strengthen the basic with more flexible and efficient development solutions. capabilities of LC development through their own rapid In addition, LC development promotes collaboration iteration, expansion of cross platform and cross domain between cross functional teams within enterprises or data integration, expansion of integration markets and APIs, configuration of cloud native architecture, etc., providing scalable underlying support for the adoption By combining the ISO/IEC 25010:2023 standard, a of LC development tools and platforms. mapping relationship can be established between LC and software quality characteristic frameworks, which 2.1.3. Team collaboration mainly have important impacts on features such as The convenience and development efficiency of LC functionality, performance efficiency, usability, allow users from various business teams to participate reliability, maintainability, and safety. in software development together, greatly enhancing team collaboration efficiency and driving overall project development progress. Products mainly based on LC platforms are mainly developed on cloud services, providing users with consistent development standards and standardized component libraries, establishing clear roles and division of labor within the team, improving software version control efficiency, and enabling cross departmental and cross project work. This helps development teams maintain and update code more easily, achieving a significant improvement in team Figure 3: The correlation between LC characteristics collaboration efficiency. and software quality characteristics 2.1.4. Quality Assurance [6] 3. Research on Quality Assurance As LC applications move beyond the prototype stage Methods for Software Products and become part of the IT environment, they begin to pose challenges in terms of design culture, enterprise Based on LC Development processes, security, and performance. The LC platform Based on the above research on LC characteristics, supports automated testing by providing preset combined with the software quality characteristic model components and logic, as well as a large number of described in the current international standard ISO/IEC testing and debugging tools, helping developers discover 25010, research is conducted around the quality and solve problems in a timely manner, significantly characteristics and requirements of LC. Based on 9 reducing errors, defects, and maintenance work caused quality characteristics, we will focus on exploring the by human coding, and improving software quality and beneficial impact of LC on software quality stability. characteristics for development tools, platforms, and software products formed from LC, and form a quality 2.1.5. Modular assembly characteristic framework for LC. [7] The biggest feature of software development based on LC is the use of fully tested code modules for intuitive 3.1. Functional Suitability assembly and integration through graphical or visual The functional suitability of software involves the ability means, which can significantly improve development to meet explicit and implicit requirements, including efficiency, reliability, and code readability, creating functional integrity, functional correctness, and conditions for subsequent maintenance and integration functional appropriateness. LC brings about of complex systems. improvements in development efficiency, reusability, maintainability, and other functions during software 2.2. Improvement of Software Quality development, which further supplements and updates Characteristics by LC the requirements of traditional software quality LC development significantly improves the efficiency characteristics. and quality consistency of software development by LC provides users with a series of components, providing users with standardized and modular code or templates, visual design tools, and graphical model components, as well as graphical and visual programming interfaces built through a LC platform. development interfaces. It simplifies the software These elements have undergone rigorous testing and development and testing process, enhances security and validation to meet the functional requirements of users reliability, improves software maintainability and user for rapid programming. Combining the new features experience, strengthens project management and risk brought by LC such as reusability and support for management, and thus enhances the quality automation, LC compliance has improved and perfected management level of a software project at multiple the various sub feature requirements of functionality. levels. To meet the quality requirements of LC, the ease of understanding, ease of learning, usability, user following new requirements should be proposed for error protection, user interface aesthetics, and functionality: through user interviews, survey accessibility. By using the LC in development process, questionnaires, user story mapping, and other methods, there are some advantages like reducing the learning a deep understanding of user pain points and needs curves of users, enhancing collaboration capabilities, should be achieved. Enhance methods for user research plug-in architecture, and scalability. Those advantages and requirement gathering to ensure that software will bring some new requirements to address the quality functionality truly meets users' actual needs. Verify the characteristics of traditional software. integrity of functionality through comprehensive To meet the quality requirements of LC, the testing, including unit testing, integration testing, and following new requirements should be proposed for system testing. Implement code review and refactoring, usability: development platforms such as LC platforms adopting design patterns and best programming should provide a simple and intuitive interface, allowing practices. Adopting microservice architecture or plugin users to quickly build data tables, design user interfaces, system, supporting dynamic expansion of functions. and configure workflows through click operations. Users' learning costs should be reduced by providing 3.2. Performance Efficiency rich pre-built templates and component libraries. Support multi-user collaborative development, provide The performance efficiency of software involves the version control and real-time collaboration functions to ability of software products to provide appropriate improve team efficiency. Adopting a microkernel and performance under specific conditions, including time plugin architecture design, allowing users to customize behavior, resource utilization, and capacity. The and extend system functions according to their needs to resource utilization improvement, integration process meet specific business requirements. We should provide simplification, automated testing deployment, quality users with flexible customized data models based on control and other functional and performance business needs, optimize data migration and processing improvements brought by LC have put forward new processes, in order to improve the efficiency of data requirements for quality feature frameworks. management. LC provides users with automated deployment capabilities, pre configured APIs, intelligent integration 3.4. Reliability tools, quality control, and version control tools through LC tools and platforms, which greatly assist developers The reliability of software involves the ability of a and maintainers in improving quality and stability in product to maintain its performance level under their work, and enhance performance efficiency specified conditions, including maturity, availability, requirements. fault tolerance, and recoverability. In response to the To meet the quality requirements of LC, the improvement of data security, system stability, code and following new requirements should be proposed for vulnerability review, compliance, and other aspects performance efficiency: clarify users' requirements and provided by LC, corresponding new requirements functional characteristics for LC tools and platforms, should be put forward to address the quality conduct performance and functional optimization self characteristics of traditional software. inspection checklists, and form product selection Data encryption and protection measures should be guidelines. Propose that LC products should maintain provided to ensure the security of data during stable performance requirements in high concurrency transmission and storage in various usage scenarios. A situations to avoid performance bottlenecks. LC high availability architecture should be provided to platforms should provide powerful integration ensure the stable operation of applications, reduce capabilities that seamlessly integrate with existing system failures and interruptions. Regular code audits enterprise systems and third-party services, including and vulnerability scans should be conducted to detect support for APIs, data synchronization, and business and fix potential security vulnerabilities. Should comply process integration. Automated testing should be with data protection regulations, support compliance supported to ensure the quality of applications during best practices, and help meet industry standard development, and continuous integration/continuous requirements. deployment (CI/CD) processes should be supported to achieve fast and reliable application deployment. 3.5. Maintainability The maintainability of software involves the ability of 3.3. Usability software products to be modified, including The usability of software involves the level of effort and analyzability, modifiability, testability, and reusability. satisfaction of users when using the product, including LC provides the ability to improve maintenance efficiency, simplify error fixes, enhance readability and 4. Conclusion consistency in the software lifecycle process, and puts forward new requirements for traditional processes. LC development has brought new vitality to the field of In terms of maintainability, LC should be based on software engineering, providing new solutions to the the characteristics of the technology itself, and quality cumbersome development process, but at the same time, requirements should be further improved: code it has had many impacts on quality management. On the generated by LC tools and platforms should have clear one hand, it significantly improves development comments and follow consistent naming conventions, efficiency, but on the other hand, it brings challenges to while providing detailed development and maintenance code quality and maintenance. By exploiting the documentation. It should support a highly modular software quality model in ISO/IEC 25010:2023, a set of architecture, allowing each functional module to be quality characteristics suitable for LC development, independently developed, tested, and deployed. Built in testing and delivery is proposed, which can effectively automated testing tools and seamless integration with ensure the quality and performance of LC applications. CI/CD processes ensure that every change is tested. This requires close collaboration between development Developers should be allowed to extend the teams, testers, and maintainers, as well as a deep functionality of their applications by writing custom understanding of LC platforms and tools. In the current code or using APIs provided by the platform. Strict data situation where LC has become a trend in software security measures should be implemented to ensure engineering development, it is necessary to compliance with industry regulations and standards. continuously clarify and refine specific requirements in conjunction with quality characteristic models, in order 3.6. Safety to make greater contributions to the improvement of software product quality. The safety of software is a quality characteristic added to the ISO/IEC 25010: 2023 standard, which involves the safety performance of products under specific References conditions, including operational constraints, risk [1] LC Development: A Game Changer for Software identification, fault safety, hazard warning, and safety Engineering. IEEE Software, 2023. integration. LC can help build safer and more reliable [2] The Impact of Low-Code Platforms on Software software applications by reducing human errors, Quality and Maintenance. ACM Transactions on improving system stability, simplifying fault diagnosis, Software Engineering and Methodology, 2023. and enhancing maintainability. [3] Best Practices for Testing Low-Code Applications. In order to meet the quality requirements of LC Software Quality Journal, 2023. products, some new safety requirements have been [4] Richardson, C., Rymer, J.: New Development proposed: it should be ensured that LC platforms Platforms Emerge for Customer-Facing provide powerful error handling mechanisms that can Applications. Forrester Research, Cambridge capture, record, and respond appropriately to abnormal (2014) situations to prevent system crashes and data corruption. [5] Davide R., Dimitris K.:Low-code development and A highly fault-tolerant system architecture should be model-driven engineering: Two sides of the same designed to ensure that the system can continue to coin? Software and Systems Modeling (2022) operate in the event of component failure, such as 21:437–446, https://doi.org/10.1007/s10270-021- through redundancy and mechanisms. Those 00970-2 mechanisms are also defined in ISO standards for [6] Noebauer, M., Dhungana, D., Groher, I. (2023). Functional Safety and affects quality measures. Regular Quality Assurance in Low-Code Applications. In: security audits should be conducted on LC platforms and Yilmaz, M., Clarke, P., Riel, A., Messnarz, R. (eds) built applications to identify potential risk points and Systems, Software and Services Process take corresponding mitigation measures. Improvement. EuroSPI 2023. Communications in Comprehensive testing tools should be provided, Computer and Information Science, vol 1890. including unit testing, integration testing, and stress Springer, Cham. https://doi.org/10.1007/978-3- testing, to ensure the stability and performance of the 031-42307-9_3 application. It should be ensured that the decision- [7] ISO/IEC 25010:2023 Systems and software making logic and data processing flow of LC platforms engineering — Systems and software Quality are transparent to developers and security experts, and Requirements and Evaluation (SQuaRE) — Product can be reviewed and verified. quality model