XenonStack

A Stack Innovator

Post Top Ad

Wednesday 4 December 2019


Continuous Testing, Test Automation and Automated Testing in DevOps


Software Testing in DevOps – Overview

“Software testing” defined as the variety of methods, tools, and practices used to justify that a software application works at many different levels or not. In the Automated Testing, all of us do some sort of software testing (either it is manual or ad hoc, e.g., refreshing a webpage after making a change to verify the code you just wrote works). In this blog post, I will try to discuss some concepts about testing in DevOps, and give a high-level overview of the different ways that software can be tested, and how continuous testing is different from automated testing.
Software Testing is one of the critical phases of the software development lifecycle. Software testing involves testing various real-life conditions and matching the actual result with the expected result. It ensures that the developed software/application serves the intended purpose. An application can be tested with the intention of finding bugs. It helps to check the stability of the product. You also learn more about Contract Testing for Microservices.

What is Automated Testing and its Types

Automation is a combination of two words that are: Auto and Matos. Auto means self and Matos means moving. Means “move by itself.” Automated systems also achieve significantly superior performance than the performance possible with manual systems, concerning power and speed. In a fundamental sense, automation means — the use of some technology to complete a task.
Types of Automation:

Three Types of Automation:

Fixed Automation

In this sequence of processing operations are set by the equipment configuration. So each operation is usually straightforward, generally using the combination of linear or rotational motion to achieve results.

Programmable Automation

In this, a sequence of operations can be changed to accommodate different product configurations. It should do by using a set of coded instructions, which is read and implemented by the system by using a different programmer.

Flexible Automation

A system can be quickly and easily re-tasked to change the design for both low and high manufacturing.

Automation Testing using Behavior Driven Testing

 behaviour-driven-testing-xenonstack
BDT full form is: “Behavior Driven Testing.” It is not common but a counterpart of BDD (Behaviour Driven Development). BDD is a set of behaviors that a user can expect from the system. BDD improve the quality of the software we develop and followed TVD you can call it is a successor of fertility or an improvement over TVB.
TDD is Test-driven development where we write our test cases first as a developer or as an automation team, and then we start writing our hold. Once the implementation or development is complete, the testing team runs the test against our code of the implementation. All the test should be passed so initially when we write the test we are writing against the requirements that our product owner our business analyst gave us, but in TDD while we write our tests, we make a lot of assumptions as a developer or even as an automation engineer.
There is no direct link between the test we write and the actual requirements. There just for all but BDD be direct links the requirements or the specifications with the tests we write the way it does. It is in another word typically the requirements expressed as stories assess the term we use and these stories usually sit in Jira or similar story repository or requirement tool like Jira each story comprises of some acceptance criteria along with the actual requirements and everything the detailed explanation for the story.
There is something called as acceptance criteria which are put in by the product owner. Once she or he discussed with the team and even the testing team so when we write the test will write those tests exactly where against these acceptance criteria so in our test cases will match this acceptance criterion to a particular test. Now we have a lot of plugin for BDD like JBehave for java; jasmine jas is for javascript behavior development testing and coding.
They are very easy to use. There are plugins which can pull this acceptance criterion from zero and then run the corresponding test case once we code. Out of those test cases if we miss a requirement while we are testing immediately we know these plugins will complain will right away show you that this particular requirement does not even have a test. If somebody accidentally changes something in the code and if the test fails we have use aggression suit at some point as we keep writing these tests against our implementation.
We are going to have a sharp regression suit at some point, so that’s all BDD does it links or gives us direct links between other requirements and the actual implementation and we do the test first even before we start implementation it is an excellent practice to do.
Test Automation is not Automation Testing
Testing is not finding the bugs; it is preventing the bugs. Testing is about understood the product, and the problem(s) tries to solve and to find areas where the product/process can be improved. In automation testing, testers will use the tool to execute the test cases. The will write the test scripts and verify whether the application is working as per requirement or not.
Test automation is the automated execution of predefined tests. It gives proof of the completion of testing. It supports for doing performance testing. It ensures the accuracy of the report.

Why Test Automation is Critical to Continuous Testing

continuous testing

No! Test automation is not the same as continuous testing. Can you implement continuous testing without automation? That’s also a no.
Test Automation needs Automated tests and automation testing, whereas Continuous Testing needs Test Automation to deliver on the speed, quality and efficiency principles.
It is essential to know the distinction. Let’s attempt to understand this:
As organizations move from a traditional testing approach towards DevOps practice, Continuous Integration and Continuous Delivery(CI and CD) are keys to achieve the desired speed. In the CD model, software development is an ongoing process, and the deployment-readiness of software, therefore, matters more than ever. Continuous testing allows consistent quality output at every stage of the development.
Testing occurs incrementally through the cycle. To achieve continuous testing, however, test organization, efficiency, and speed are all necessary. Organizing all these testing needs in this context is a challenge, and in that case, Test Automation comes.
Test automation enables testers to focus their energy and efforts on writing better test cases. It simplifies the process by automating the tracking and managing of all these testing requirements. It is designed to take the internal structure into account and have a quick feedback loop for developers to control the system design. It, in turn, helps the overall quality of the software.
It acknowledged that test automation has to start in the early stage of the development cycle.
The speed at which all development and the testing occurs matters quite a lot. That’s because if something in the pipeline breaks down, it holds up everything else and slows down the release of new developments. The need to deliver new releases faster/on a regular basis paved the way for this Continuous Delivery and testing model, that roadblock defeats the purpose of taking this approach.

No comments:

Post a Comment