Automation Testing with Devops in Agile methodolgyArchana Sridhar
schedule 11 months agoSold Out!
What is DevOps?
DevOps – a portmanteau of Development & Operations – is a software development methodology which looks to integrate all the software development functions from development to operations within the same cycle.
This calls for higher level of coordination within the various stakeholders in the software development process (namely Development, QA & Operations).
Devops is not a tool, it’s not a methodology, but it’s a process of integrating software development and quality. Devops is not release management system, it integrates with release management system by standardizing the process.
Traditional Development teams and Operations departments normally have completely different motivations and deliverables. Development keeps changing things based on user or market demands for new features (and fixes of existing features). Operations try to keep everything as constant as possible in order to deliver maximum availability and stability of software services. These two contradicting goals create a bottleneck when it comes to delivery of business value.
Why DevOps: Automated Deployment
Most companies are adopting this Devops model in order to facilitate a practice of automated software deployment. DevOps provides the structure that enables teams to push software out as a service on a weekly, or daily, or even hourly basis. The traditional concept of a “software releases” transforms into a continuous cycle of service improvement.
DevOps is a logical evolution in removing all the obstacles to getting high-quality software in the hands of customers. It smoothens the process for agile development and continuous integration, automating the process makes it easier, is more transparent and leads to higher quality.
Beyond Functional Testing: Automation for Load Testing, Stress Testing, and Performance Testing
As processes are maturing and Devops is moving at high speed, you may want to integrate performance testing, stress tests and load tests along with it. It’s about creating a continuous process to both check and monitor the software services.
Once the processes are mature and stable enough to be moved to Devops, functional testing can be integrated with load, stress and performance, to continuously integrate with the process to aid more control and structured way of operation. Performance tests can be integrated to check the performance over a period of time on real time data rather than idealistic data. Similarly load and stress can be tested over a period of time.
Devops in Real world
DevOps practices promise bridge all communication gaps that usually exist between software engineers, IT, QA and other parts of the business. DevOps should create complete transparency within the business to facilitate agile planning and prompt decision-making. So, as the organization integrates DevOps, it makes services continuous.
DevOps projects must identify and align with business needs, it always ask why you're taking up a DevOps approach and what success will look like. DevOps specific goal will be to shorten the cycle to fix bugs or grapple with fewer bugs in each new release, improving customer retention.
Devops and Cloud computing
DevOps developers successfully use private or public cloud to create more complex environments that simulate production use for version testing. The scalable, self-service nature of cloud computing allows developers to provision and migrate new versions for testing with little -- if any -- reliance on IT administrators. This makes testing faster and simpler than traditional provisioning requests to IT.
Public cloud is usually preferable because it offers high scalability and self-service without any danger of exhausting local IT resources. When testing is complete, the public cloud resources can be released to save money until the next testing cycle starts.
Approach for Integrating Devops and Automated Testing in cloud
Step 1: Get proper Test automation in place
Since a key aspect of DevOps is to ensure that deployments are made continuously, as well as effectively, the need to for having tests in place is pretty obvious – untested and faulty code has the potential to mitigate the benefits of DevOps.
Step 2: Choosing the right CI Integration and integrating it
Integrating the automation suite with a build deployment tool to enable centralized execution and reporting.
Step 3: Making customizations as requirements for organization and cloud integration
The customizations made can be pertaining to code and testing framework, to check mode of reporting, environment availability. The integrations related to cloud must be made.
Step 4: Monitoring Results
We can also use a small subset of existing high priority test cases to be executed periodically on production to actively monitor the environment.
Challenges in implementing Devops
- The organization processes and practices must be matured enough for Devops.
- Exploratory or ad-hoc testing may at first appear to have no room in DevOps.
- DevOps is still a relatively young method, partly experimental, so support is solely dependent on internet.
References & Appendix
Archana Krushnan is currently working as Test Analyst at Nihilent Technologies Pvt Ltd. She has been in the field of Software Testing for 5.5 years and worked on several domains such as Telecom, Ecommerce and Healthcare. Her interests include exploring new things in testing and sharing on her blog. She has previous experiences of working with companies like Reliance Communications Ltd and Fab.com. She has good knowledge in Selenium, Jmeter and Soap UI. She is ISTQB Foundation Level Certified.