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

Software Testing Life Cycle – STLC

  Software Testing Life Cycle defines the various phases in the testing of software. In this, each activity is carried out in a planned and a systematic way. Each phase has different goals and deliverables. Below are the phases of STLC Requirement Analysis Test Planning Test Case Development Test Environment set up Test Execution Test Reporting/ Test Cycle Closure Phases and activities in STLC Phase   Entry Criteria Activities Performed Deliverable Requirement Analysis Software Requirement  Design Document User Acceptance Criteria Brainstorming of requirements Understand the feasibility of the requirements Do automation of feasibility study Testing Feasibility Report Test Planning Updated requirement document Test Feasibility Report Define the scope of the project Identify the risks of the project Determine the test approach, techniques, covera...

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...

Use Cases and Test Cases

  What is a Use Case In Software Development Environment Use Case is identified as the list of actions or steps typically defining the interactions between actors and the system in order to perform a feature of the software. The actor can be a human or an external system.  What is a Test Case A Test Case is a document which consists of a set of conditions or actions which needs to perform on the software in order to verify expected functionality of the feature. When comparing these two terms we can see a few clear differences between these two as below Use Case   Test Case Components - Use Case name, Actors, Pre Conditions, Assumptions, Post Conditions, Business Rules, Normal Process flow, Alternative process flow Components - Test Case ID, Test Case Title, Pre-Conditions, Test Case Description, Expected Results, Actual Results, Priority, Complexity, Bug ID Describes the overview of the software functio...