11 Chapter II. Literature Review In this chapter, I will conduct a literature review that therefore provides the theoretical and conceptual frameworks for the study. The emphasis will be made on the examination of the software automation testing, its key factors as well as the evaluation of the strategy in the light of several analytical tools employed to provide the course of action for PT ACEINNO Technologies. To achieve this, each topic will be thoroughly examined in order to have a sound understanding of the current state of affairs and or strategies that can be employed. II.1 Theoretical Foundation II.1.1 Introduction to Software Testing Mobile and web applications are nowadays considered to be unavoidable tools for multiple industries changing the User Experience in Banking/Financial Services, Telecom, Retail, Education, Healthcare Providers and Entertainment. From conducting online purchases and attending online classes, to undergoing telemedicine sessions and streaming videos on demand, these applications increase the convenience factor drastically. However, the smooth running of these applications depends on the effectiveness of the tests conducted to identify and fix the problems before release. If such applications are not thoroughly tested, this results in low application quality that leads to unsatisfied users and significant business losses. Moreover, the increased competition puts pressure on providing short development and deployment cycles, which require the integration of DevOps, CI/CD, and test automation (Pando & Dávila, 2022). Testing can be defined as the formal process of trying to find evidence that a particular system is compliant with the requirements that were set at the beginning of the development cycle. It involves validation and verification to identify the conformity of the developed system to the user-defined requirements thereby fulfilling the gap between the actual and expected. Software Testing can be defined as a process of determining the presence of defects, features, or other issues in the developed software and deliver important information to the stakeholders. The 12 position of software testing as one of the key aspects of software quality assurance can be explained by the need to guarantee reliability and proper functioning of all sorts of digital applications, including those that may have life-critical importance, for example, flight control systems (Jamil et al., 2016). II.1.2 Introduction to SDLC SDLC is an outline of phases that are involved in the development of software from an idea to a finished product. It's designed to produce high-quality software efficiently and predictably by dividing the process into distinct phases: It involves planning, designing, building, testing, deployment, and maintenance. II.1.3 Types of SDLC Software Development Life Cycle (SDLC) frameworks such as Waterfall, Agile, and DevOps are used in the management of development projects since they incorporate different strategies for delivering software development depending on the form of development required (Amazon, 2023). Waterfall, which was developed in 1970s, has a linear and phase-driven approach where each phase starting from the requirement gathering to the design phase and implementation phase up to the testing phase and deployment is executed in a sequence without overlapping. This highly structured approach focuses on planning, measures and documentation at each phase and is productive for projects that are confined by rigid specifications and stable application environments. Waterfall on the other hand was designed in 1970 but faced some high limits that encouraged the development of new methodology, agile, in 2001. Agile theory does not set an end date for the development of a full system, as it implements an iterative and collaborative model where the team actively delivers working software in short sprints. It focuses on customer interaction, being able to deliver working software at intervals, and ensuring the delivery of worthwhile goods. Scrum and Kanban are examples of agile methodologies for managing work, they introduce a number of flexible structures focusing on feedback and collaboration and providing quick adaptability to change to help teams create the best quality products. 13 DevOps, which started getting more recognition around 2009, is an extension of the Agile processes and has the dimensions of development, operations and testing to facilitate the concept of continuities. DevOps is the practice of highlighting collaboration, unification and communication with teams other than the IT channel as a way of eliminating barriers in the SDLC. This enables the DevOps to act as an enabler to speed up iteration, development and implementation through enhanced quality assurance, which is crucial in contemporary software development endeavors. II.1.4 DevOps CI/CD DevOps CI/CD, or Continuous Integration and Continuous Delivery/Deployment, is another crucial shift in software development and maintenance which focuses on the efficiency of the processes and shortened time frames for delivery of new products and versions, as well as the means to guarantee that the products are reliable (Amaro et al., 2022). DevOps is an amalgamation of the words ‘Development’ and ‘Operations’ which depict a bulwark for software delivery from two different realms of developers and operational teams. This approach resolves problems associated with the traditional model, that is, the waterfall model which has long cycles of release, extensive procedures for deployment, and huge risks measuring from heavy modifications of codes. Continuous Integration (CI) is an essential component of DevOps CI/CD, this practice involves integrating changed code by developers more often. Every merge of codes provides a feedback in the form of builds and tests to prevent integrated conflicts and to ensure that there is a stable build that can be routinely deployed. In this way, through continuous integration, code changes are frequently incorporated to fully stabilize in the form of a build that is always ready for deployment from the development stage up to the final stage. CD and CD hence represent the subsequent phases of the CI/CD DevOps pipeline, that concern the actualization of the process of transferring new code changes to consumers. Continuous Delivery aims at automatically promoting through a staging or testing environment that any code changes that have passed through &Ci 14 processes, but they require further endorsement to be dispatched to production. Instead, Continuous Deployment goes one step beyond as it automatically promotes new code changes that meet the required tests to the production stage and helps reduce the input of human beings in releasing the code as the process is fast (IBM, 2024). II.1.5 Continous Testing in DevOps It is one of the pillars of the DevOps approach that acts as a glue, connecting different aspects, driving continuous improvement in the quality and speed of creating software products. As today’s development world is all set towards achieving engineering efficiencies with heavy emphasis on timely deliveries in quick testing cycles, continuous testing emerges as a significant factor in maintaining software quality in developing aggression. It is essential that testing permeates every aspect of the process and is not solely seen as a task carried out during the testing phase of a cycle, as most issues will have likely been discovered too late for Deployment teams to do anything about it other than delaying deployment and potentially resulting in significant costs to an organisation. A primary DevOps testing strategy that can be easily implemented is the continuous testing especially when it is done at the left side of the development-discovery line. DevOps practices, instead of putting testing as an activity done near the end of the cycle, as a separate phase before deploying, the culture ensures that testing is adopted and used by the developers and other members of the team as and when they are developing assets and applications. Automation is another important step that takes place in continous testing in DevOps. Many testing tools and frameworks are incorporated in CI/CD pipelines in such a way that these begins tests as soon as code is pit into the pipeline. Apart from enhancing the speed of testing, it also offers feedbacks to developers in the shortest time possible enabling the developers perform further modifications with high confidence. Some of the test types that are usually automated in DevOps pipelines include unit testing, integration testing, performance testing, and security 15 testing among others in order to improve on test coverage for better software quality assurance. Real time feedback are also also important in continuous testing approaches, so that teams can periodically review test outcomes. Test outputs are brought to the development life cycle to inform on how changes are likely to affect the software qualities. This continuous feedback loop helps teams to be proactive in solving as many issues as possible hence increasing the reliability and performance of the subsequent software releases. Figure II. 1. Continous Feedback (Audvik Labs, 2022) II.1.6 Types of Software Testing Today software testing has a spectrum of methods which are aimed at the quality, reliability, and full work of software systems. These methodologies can be broadly categorized into two main types: Specification testing and structural testing or feature testing and quality testing (Mears, 2020).