Shift Left in Quality Assurance
Software engineering has become one of the most debated and important filed in the modern world. This is due to the service and capabilities that it has awarded economies and promises to continue bettering service delivery. The complexity of modern software and purpose has demanded call for attention in its quality. Therefore, improved methods have become popular and among them is shift left method. It is the believe of this paper that the approach will solve underlying quality issues due to its competitiveness. This is the approach that is discussed in this paper to highlight on its potential, capabilities and expectations.
Software engineering is a broad field that is responsible for delivering software to the end-user. This is accomplished by following set precedence of stages that ensure the highest quality of software. Among the most significant step that ensures quality is guaranteed is software testing or Quality Assurance (QA). According to Ameen (2007), QA is the method used to prevent faults and mistakes in a manufactured product to avoid bad occurrences when availing products to end-users. The process of QA is also defined by ISO 9000 as a component of quality management that aims at guaranteeing quality of the product. Due to the emergence and re-emergence of cutting-edge technologies and stiff requirements, QA has shifted to smarter solutions due to the increased complexity of applications such as IoT and driverless cars and associated speed requirements.
Lean Software Development (LSD) is an agile approach in software development that aims at optimizing development resources, eliminate waste, and deliver a high-quality end product. The method as explained by Justin (2015), is also referred to as the Minimum Viable Product (MVP) strategy, where the process advocates for the release of a bare-minimum version of the product in order to get users precise requirements and iterate on the process of development using those feedbacks.
Consequently, Eigner et al. (2014) define the system lifecycle as a system as a way of visualizing the proposed approach in phases that will be used to address requirements from the conception phase to phase-out and disposal. In this case, modern methods have been adopted that increase the efficiency of the traditional waterfall and other lifecycle processes. In this, the industry has opted to apply the shift-left testing approach in the Systems Engineering Life Cycle (SELC) process. Therefore, there is an increased need for guaranteeing quality through testing at lowered cost (LSD). Usage of agile and DevOps methodologies for development has come in hardy in solving these challenges. At the same time, there are various existing infrastructures and standards that work to enforce quality by ensuring customer satisfaction.
According to Jiménez et al. (2018), the word shift left in software development means to practice in the software development lifecycle, which forces the teams involved to focus on quality and endeavor to prevent problems as compared to detection. Therefore, the shift-left approach involves early testing to increase quality and optimize resource usage by eliminating chances of bad surprises at the final stages of the development cycle. The two critical DevOps practices that are required in this case is continuous testing and continuous deployment. In this case, testing becomes automated, and test cases are run early and more often using virtualized systems to act on behalf of unavailable services.
Sample diagram of Continuous Testing: Source(https://insights.sei.cmu.edu/)
Consequently, by embarking on continuous deployment, provisioning of new parts is automated to enable continuous testing. The whole purpose of these approaches, tools, and techniques is to improve developer’s productivity through guaranteed quality and avoiding cases of redoing complex work and sometimes repeating an entire system due to issues such as architectural and design problems. Therefore, Continuous Integration and Continuous Delivery (CI/CD) framework ensure the following metrics are addressed:
- Lead time is a measure of time between the definition of a new product and the time it is made the user as a measure of productivity.
- Meantime to repair (MTTR) is a measure of the speed at which fixes can be deployed to customer product which also measures productivity,
- Code coverage which means the amount of code measured in LOC that is covered by a unit test.
- Bug rates measure the quality of the product by calculating the average number of bugs on the new features.
These are some of the measures used among others like
- CPU/memory utilization
- Response times
- Garbage collection
- Thread counts
- Error count
- Disk space
The outcomes of the approach are reduced defects on the left at the rate of defect case ratio’s DTCR of <5% at the end of testing due to inclusivity and end-user participation along the process. At the end of the process, much money is saved as compared to budget overruns of up to 150% that were being witnessed at the initial stages that did not employ these advanced technologies. Therefore, companies can improve their Planning Fidelity Trend for business and technology sustenance. The resultant effects are a highly predictable QA organization with continuous improvements, commercial benefits, and innovations. This will enable the organization to align itself with emerging business trends, defined Service Levels, and cost optimization best practices.
Sample Development process: source (https://devops.com)
Telemetry and Patterns
Among them is the AEF that avails a Database, which ensures that customer requirements are satisfied for high-quality systems. Information provided in the databases as a guide to customers in buying software products due to its credibility. The automated tool ensures that errors and deviations from the required standard are detailed and offer a solution to the problem. This is an example of modern tools that make testing easier, which use Telemetry. In this case, data is collected in real-time from the process of their consequent automatic transmission for analysis and taking action. Usage of standards allows the building of a performance culture that is guided by measured view performance indicators using a balanced scorecard of metrics to determine the productivity and quality of the end product. At the same time, these standards make it possible to increase the value chain through continuous improvement of the process and platform. Regarding this, it is an enabling factor in the delivery of high-quality software solutions through the standardization of testing methods, processes, procedures, and tools using the metrics-based approach.
Therefore, with increased productivity, it is possible to leverage our strategic assets by having to customize our quality approaches to align them to new platforms. Consequently, because each phase has guaranteed quality, it is easier to follow the best developer onboarding process as every developer is required to produce specific outputs that will not require re-testing as it is conducted at the same time with the development team.
Modern techniques require understanding and compliance. This has been reinforced with the need to go for retraining to develop the best skill. As such, only the best team members who have advanced skills are capable of working with these new environments. Consequently, the field requires individuals who are certified as professionals and recognized through badges and after attaining the specialized training. Therefore, the technique requires these experts to work as agile teams in an attempt to apply the shift left to ensure quality in the end product. As depicted by GÜN 2020), the approach uses metrics that enable the project manager to be able to measure the productivity of every team member in terms of output, which includes lead time, among others.
Due to the level of skills required and the maturity stage of the approach, it requires working with customers and partners in order to be able to deliver on requirements and also to tap on offshore skills through the interaction period. This may be due to the fact that cultures are different, and knowledge of cultures brings a common understanding. Subsequently, resources are shared, which lowers the cost of operation and increases revenue generation capacity.
QA orchestration in Agile
Therefore, the shift-left has transformed the way software has been developed and ensure that the development process goes together with testing to embed quality in each phase. As such, it is required that the environment engineer’s quality guidelines (QE) guide on requirements and milestones for the agile team working together. These guidelines will be the reference point in every project and phase to ensure consistency and reliability of the product as per the user and implementation constraints. This, therefore, will uplift the rate of system acceptance and overall adaptability of the engineering capabilities and lead to reduced cost of engineering works by having efficient methods that can be readily used for estimations. This leads to an optimized operating model to better deliver Quality Engineering services. Similarly, the approach of incorporating testing tools alongside development elevates quality processes by having custom QA dashboards that are employed in the platform to enable informed decisions. This is due to the availability of a detailed explanation of weak points and ways of fixing them.
Automation as a Platform
Due to the availability of standards and reusable procedures of engineering and testing, the entire process of QC can be put in an automated platform for ease of implementation. Consequently, the entire lifecycle is implemented in an automated fashion with the ability to determine when a phase is complete as per the customized requirements that are created from experience. According to Durre, Menne & Vose (2008), excellent automation is critical in the creation of coherent QA and test strategy across teams and delivers quality quickly while optimizing the usage of test assets.
This can be implemented using web-based platforms that are accessible anywhere to ensure the agile team uses similar processes to obtain the required product.
In these scenarios, due to the nature of the process, the platform has capabilities to determine when a phase is complete and without human interferences, guide the agile team to proceed to the next step to save time, and lower cost, ensuring quality is observed. Consequently, due to varying needs and capacities at every phase, the platform has capabilities to load the required framework and tools for every stage, and this lowers the turn around the time significantly and enables the agile team to concentrate on core activities. Therefore, there needs to be an automatic way of detecting code lines to determine where each code functionality end and the beginning of the other functionality.
Smart testing powered by AI/ML
Smart testing is a way of speeding the test phase through adjustments of the execution plan to receive feedback faster. According to Bulwahn (2012), automation is the platform that allows smart testing to be conducted using AI/ML. In the development environment, specific approaches can be used to enable and facilitate the process. Usage of Prescriptive & Predictive Analytics in the development phase allows automation of the automation. This is enabled by the fact that the platform is able to determine the problem and avail solutions that the platform can implement. This is accomplished using AI to facilitate decision making in the automated environment to increase the speed and efficiency of the end product. The solution, therefore, is created on the foundation of machine learning, which allows the accumulation of knowledge from previous development experiences to offer solutions by choosing the most suitable answer. Then, AI is employed to give the best testing experiences to create a domain QE advisor. The outcome is a Bot that always runs to monitor levels and updates triggers to act. The output of the process is guaranteed through the health reports that are generated by the platform informing of any shortcoming, and there is none, then, there is a clean bill of health, meaning the product conforms to the set standards and meets requirements.
In this case, this is enabled through customization and ensuring proper system setup and inclusion of all Key Metrics. Consequently, the entire process is facilitated through continuous data collection for monitoring purposes of allowing triggering of the nest process and stage. Subsequently, the platform requires Performance Testing, which is achieved through the self-generated health reports that inform of the level of conformance and efficiency of the platform in which the measure of the project performance is gauged. Usage of direct valuation Software (DVS) is key to enabling Continuous validation and embed new quality. As such, these platforms operate as DVS in that they have capabilities to validate the process and, therefore, the product.
Knowledge Networks/Communities of Practice
Due to the availability of databases and web-based application interaction, it therefore possible to create and share experiences to improve performance. It also enables a comparison of practices to allow improvements to and adoption of superior telemetric capabilities that are realized through cooperation and liaison. Therefore, the automation of the platform and usage of AI and ML in Telemetry is capable of delivering high-level information in real-time is valuable in determining the release of products into the market based on need. This is a good point of improved quality outcomes by leveraging in-depth business knowledge and technology landscape.
The result of the new approach requires a change of mindset of developers and testers. The new environment enables testing to proceed immediately with development efforts. Therefore, the context requires configurations to allow both processes to continue and also forces a change of approach and attitude by the agile team through the help of a Certified Quality Auditor (CQA). This enables a broader adoption through a change of plan from capability due to the availability of many tools to a platform with a comprehensive and connected smart workspace.
According to Müller & Gallego (2019), the approach accelerates the modernization of development tools. It puts in place aggressive targets delivered, which are ensured with the highest level of transparency due to automation and user involvement at all stages while using the agile approach. The later is guaranteed through early and continuous validation to assure quality at every phase. Therefore, requirements are improved through system Testing effectiveness to increases Quality Index and ensure that higher levels of the cycle conform to most senior levels of standards. As such, it is possible to measure progress and improve on challenges through the use of automated test preparation that employs AI to optimize test cases that ensures low cycle times. It is arguing that the setup can allow the automation of the lifecycle form to start to end with minimal user interference, and this increases the chances of defect detection if any has been introduced.
Ameen, K. (2007, August). Issues of quality assurance (QA) in LIS higher education in Pakistan. In World Library and Information Congress (pp. 19-23).
Bulwahn, L. (2012, March). Smart testing of functional programs in Isabelle. In International Conference on Logic for Programming Artificial Intelligence and Reasoning (pp. 153-167). Springer, Berlin, Heidelberg.
Durre, I., Menne, M. J., & Vose, R. S. (2008). Strategies for Evaluating Quality Assurance Procedures. Journal of Applied Meteorology & Climatology, 47(6), 1785–1791. https://doi-org.ezproxy.ivc.edu/10.1175/2007JAMC1706.1
Eigner, M., Dickopf, T., Apostolov, H., Schaefer, P., Faißt, K. G., & Keßler, A. (2014, July). System lifecycle management: Initial approach for a sustainable product development process based on methods of model-based systems engineering. In IFIP International Conference on Product Lifecycle Management (pp. 287-300). Springer, Berlin, Heidelberg.
GÜN, Ö., KUMRU, P. Y., & ALADAĞ, Z. (2020). Developing a Model for Measuring Project Performance with Software Life Cycle Process Metrics and Calculating Project Success Score. Sakarya University Journal of Science, 24(3), 536–554. https://doi-org.ezproxy.ivc.edu/10.16984/saufenbilder.649588.
Jiménez, M., Rivera, L. F., Villegas, N. M., Tamura, G., Müller, H. A., & Gallego, P. (2018, March). DevOps’ Shift-Left in Practice: An Industrial Case of Application. In International Workshop on Software Engineering Aspects of Continuous Development and New Paradigms of Software Production and Deployment (pp. 205-220). Springer, Cham.
Justin, L. (2015). How to Become the CEO of You. Review of Optometry, 28.
Müller, H. A., & Gallego, P. (2019, January). DevOps’ Shift-Left in Practice: An Industrial Case of Application. In Software Engineering Aspects of Continuous Development and New Paradigms of Software Production and Deployment: First International Workshop, DEVOPS 2018, Chateau de Villebrumier, France, March 5-6, 2018, Revised Selected Papers (Vol. 11350, p. 205). Springer.