Skip to main content

Agile and DevOps

 

As the year 2021 marks the continuation of tremendous changes in technology and the digital world, it is a must the organizations to continuously innovate and revamp themselves in order to long-term survival. With this never ending rapid process, specially the IT organizations all over the world need to make sure the quality of their products according to the speed of these changes.

According to the statistics, roughly 30% of the total project effort, software testing is an important focus for changes and improvements. Hence software testing practices and tools need to evolve to cope up with the rapidly changing technology in order to achieve the “Quality at Speed” concept. Based on the top trends of the software testing and which have already emerged over the past few years, AGILE AND DEVOPS is one of the most noticeable trend among others where software development industry has embraced for their betterment and the long term survival.

Agile and DevOps

Dev Ops is not just about tools but it also includes a set of best practices that enables to bridge the gap between the development and operations teams in the areas of continuous integration and deployment by using an integrated set of tools to automate the software delivery.”

In simple terms, DevOps includes practices, rules, processes and tools which help to integrate development and operations activities to reduce the time from development to operations. Because of this advantage, DevOps has become a widely accepted solutions for organizations which are searching for ways to shorten the software life cycle from development to testing to delivery and operations.

As mentioned above DevOps is not just about tools and it includes another two aspects along with the tools. They are

People: Obviously it is very important to train and build a highly motivate team of people to be able to effectively communicate and collaborate this cultural change which is taking place in an organization.

Process: Since this is considered as a cultural change, the DevOps implementation is necessary to have the best set of practices and strategies which provide value to the customer as well as the organization.

Tools: This is about the using the accelerators by automating the process using DevOps tools that are available today. The tools could be Open-Source tools such as Git, Genkins. Commercial tools such as IBM, Microsoft TFS, Rational, Jira or a mix of both.

Components of DevOps

There are four components of DevOps

  •          Continuous Integration
  •          Continues Delivery
  •          Continuous Testing
  •          Continuous Monitoring

Continuous Integration

Continuous Integration is the phase in the software development cycle where source code form different team members or different features are integrated together. This usually involves merging code (integration), building the application carrying out basic tests within the dev environment.

Also this practice helps to detect issues early as possible and ensure that all the modules which are integrated, work as requested.

Below is the visual representation of typical Continuous Integration process


Continuous Delivery

This is an extension of continuous integration since it automatically deploys all the code changes to a testing or production environment after build stage. In this process teams have an automated release process on top of the automation testing where you can deploy the application any time by clicking a button.

Below is a sample Continuous Delivery workflow


Continuous Testing

Continuous Testing involves running various types of automated tests on the software at every stage of the software development life cycle in support of better speed and efficiency when managing deployments.

CT is a critical driver behind the effectiveness of Continuous Integration/ Continuous Delivery processes and plays a crucial role in accelerating SDLC time lines by improving code quality, avoiding costly bottlenecks and expediting DevOps process.

Once the integration and tests work without any issues, then the application or the changes are deployed to the QA environment. In the QA environment, the functional tests are run and after approvals it would be deployed in Staging environment where it has the same environment like production and acceptance tests run. Once this activity is completed, the application or changes finally deployed in the production environment.  

Below is a sample testing workflow in the Continuous Testing Process



Continuous Monitoring

After the application or changes are deployed to the production environment, the operation team will have a closer look to monitor the application and its environment based on up-time, stability, availability etc. This activity called as the Continuous Monitoring.

Infrastructure, environment, and application issues are all that monitored in the process of continuous monitoring.

 

Comments

Popular posts from this blog

Defect Management Process

Importance of the defect management process in software development teams Provide developers and other parties with feedback about the problem to enable identification, isolation and correction as necessary; Provide test leaders means of tracking the quality of the system under test and the progress of the testing; Provide ideas for test process improvement Fields in a bug report Bug ID: A bug number or an identification number makes bug reporting and referring to a bug much easier Bug Title: A bug title is read more often than any other part of the bug report. It should say all about what comes in the bug. Also, the bug title should be suggestive enough that the reader can understand it. Priority: Based on the severity of the bug, a priority can be set for it. A bug can be a Blocker, Critical, Major, Minor, Trivial, or a suggestion. A bug priority from P1 to P5 can be given so that the important ones are viewed first. Platform/ Environment: The OS and browser configuration is nece...

End to End Test vs Component Test

E2E Test E2E - End to End Tests help verify high value paths in an application. In other words, they help verify user stories as they often represent in the application. The main purpose of E2E testing is to test from the end user’s experience by simulating the real user scenario and validating the system under test. Basically these tests check the complete end-to-end process flow - The one happy scenario   Below are the E2E test cases we can write for the Graph feature Scenario 1 : User can add a Graph Scenario 2 : User can rename the Graph Scenario 3: User can add data to the Graph Scenario 4: User can remove the data from the Graph Scenario 5: User can manage the time zone Scenario 6: User can delete the Graph As an example, let’s say we need to write E2E test for Rename Graph scenario. Below is the flow we should cover. Log in as an Admin → Navigate to the Data Studio → Click on a Dashboard → Click on the graph ellipsis menu → Click on “Rename Graph” → Ent...

SDLC – Software Development Life Cycle

  Software Development Life Cycle is a process used by software development industry to develop high quality software. This consists of a detailed plan describing how to develop, maintain, replace and enhance specific software. The following figure is a graphical representation of the stages of a typical SDLC. Requirement Analysis Phase: This is the most important and the fundamental stage of the SDLC, performed by the most senior members (Project Manager, Business Analyst, Designer, Test Lead, Subject Matter expert) of the team with inputs from the customers, market surveys and domain experts in the industry. This information is then used to plan the basic project approach and to conduct product feasibility study in the economical, operational and technical areas. Requirement Analysis phase completes when the client signs of the SRS - Software Requirement Specification. Design Phase: Based on the requirements specified in SRS design approach for the product architectur...