{"id":40369,"date":"2016-09-09T17:06:00","date_gmt":"2016-09-09T11:36:00","guid":{"rendered":"http:\/\/www.tothenew.com\/blog\/?p=40369"},"modified":"2016-09-09T17:21:19","modified_gmt":"2016-09-09T11:51:19","slug":"automation-testing-a-must-for-agile","status":"publish","type":"post","link":"https:\/\/www.tothenew.com\/blog\/automation-testing-a-must-for-agile\/","title":{"rendered":"Automation Testing: A must for Agile"},"content":{"rendered":"<p><span style=\"font-weight: 400;\">As we all know, <a title=\"Agile Product Development\" href=\"http:\/\/www.tothenew.com\/product-engineering\">Agile Development<\/a> is far different from the traditional development methods majorly because of its flexibility to adapt frequently changing requirements. In Agile, the test subject is continuously refined over the various sprints\/iterations, and, therefore, continuous automation has become a necessity. Although continuous test automation is a mammoth task, it is nearly impossible to maintain a decent quality in agile without it.<\/span><\/p>\n<p><span style=\"font-weight: 400;\">In a typical agile model, work is divided into sprints\/iterations. We take up new tasks in each sprint and deliver a production-ready code by the end of the sprint. In every new sprint, we at least perform two types of testing:<\/span><\/p>\n<p>1.<b> Functional Testing-<\/b><span style=\"font-weight: 400;\"> It is performed to test the new functionalities that are added in the current build. It focuses on:<\/span><\/p>\n<ul>\n<li style=\"font-weight: 400;\"><span style=\"font-weight: 400;\">Mainline Functions: Testing main functionalities.<\/span><\/li>\n<li style=\"font-weight: 400;\"><span style=\"font-weight: 400;\">Basic Usability: Testing whether a user can use the basic features in a system.<\/span><\/li>\n<li style=\"font-weight: 400;\"><span style=\"font-weight: 400;\">Error Conditions: Testing whether, at different error conditions, error messages are displayed.<\/span><\/li>\n<\/ul>\n<p>Functional testing of the functionalities newly developed is followed by the regression testing of existing features.<\/p>\n<p>2.<b> Regression Testing-<\/b><span style=\"font-weight: 400;\"> It is performed to make sure whether the previously developed functionalities are working correctly and are not affected by the newly developed features. It is done once all the new functionalities are tested. We perform regression testing in two steps:<\/span><\/p>\n<ul>\n<li style=\"font-weight: 400;\"><span style=\"font-weight: 400;\">Re-run the tests for the previous build.<\/span><\/li>\n<li style=\"font-weight: 400;\"><span style=\"font-weight: 400;\">Compare the previous test results with the current ones.<\/span><\/li>\n<\/ul>\n<p><b>Then why do we need automated tests?<\/b><\/p>\n<p><span style=\"font-weight: 400;\">We have to test the new functionalities rigorously for each and every sprint. A sprint is stretched over a week or two which is not sufficient for testing all the minute details manually. Also, in such short span of time, there are chances of skipping few of the test cases leading to a spike in the number of bugs. Moreover, theses test are to be run on various devices and browsers.<\/span><\/p>\n<p><span style=\"font-weight: 400;\">It is always better to report the bugs as early as possible so that they are fixed before delivering the code of that sprint. Identification and fixing of defects at later stages increases the cost as well as complexity. To complete the sprint on time, for the ease of bug fixing process and to cover the compatibility test, it is very important to use automated tests.<\/span><\/p>\n<p><b>How do these scripts help in making bug- fixing less complex?<\/b><\/p>\n<p><span style=\"font-weight: 400;\">When a <a title=\"testing professionals\" href=\"http:\/\/www.tothenew.com\/testing\/automated-independent-manual-testing\">tester gets a new functionality to test<\/a>, he\/she should always perform regression testing. It is a must that we run an automated test script on a regular basis to keep a tab on our test results and where exactly is the change in the test. This makes it easier to look for the root-cause of the defects as the developer also knows what changes have been made for that particular sprint.<\/span><\/p>\n<p><span style=\"font-weight: 400;\">Although maintaining automation scriptsrequires some effort, it certainly saves the effort of performing manual testing again and again. Another benefit of using automated scripts include easy analysis of result and moreover these scripts provide auto-generated reports which clearly visualize the pass and fail statuses of the test cases.<\/span><\/p>\n<p><b>What should we automate?<\/b><\/p>\n<p><span style=\"font-weight: 400;\">Selection of the <a title=\"What, When &amp; How of Automation Testing\" href=\"http:\/\/www.tothenew.com\/blog\/the-when-how-of-test-automation\/\">functionalities that should be automated<\/a> is somewhat tricky; we cannot automate everything, and nor is it advisable. So, it is always essential to identify what is worth automating and what can be left out?<\/span><\/p>\n<p><span style=\"font-weight: 400;\">Following things should be kept in mind while shortlisting the test cases for automation:<\/span><\/p>\n<ol>\n<li style=\"font-weight: 400;\"><span style=\"font-weight: 400;\">Functionalities which are impossible to test manually.<\/span><\/li>\n<li style=\"font-weight: 400;\"><span style=\"font-weight: 400;\">Tests that are to be executed on a regular basis.<\/span><\/li>\n<li style=\"font-weight: 400;\"><span style=\"font-weight: 400;\">Test cases that encounter errors while executing manually.<\/span><\/li>\n<li style=\"font-weight: 400;\"><span style=\"font-weight: 400;\">Scenarios which require a lot of time for testing<\/span><\/li>\n<li style=\"font-weight: 400;\"><span style=\"font-weight: 400;\">Critical functionalities.<\/span><\/li>\n<li style=\"font-weight: 400;\"><span style=\"font-weight: 400;\">Functionalities that are to be tested on several machines with different configurations.<\/span><\/li>\n<li style=\"font-weight: 400;\"><span style=\"font-weight: 400;\">Test cases that need a proper report-analysis.<\/span><\/li>\n<\/ol>\n<p><b>What are the benefits of automation testing?<\/b><\/p>\n<p><span style=\"font-weight: 400;\">Following is the list of various <a title=\"automated testing services\" href=\"http:\/\/www.tothenew.com\/testing\/automated-independent-manual-testing\">benefits of automation testing<\/a> where manual testing becomes difficult to carry out:<\/span><\/p>\n<ol>\n<li style=\"font-weight: 400;\"><span style=\"font-weight: 400;\">Automation testing takes less time as compared to the manual testing which helps in meeting the goals of a sprint.<\/span><\/li>\n<li style=\"font-weight: 400;\"><span style=\"font-weight: 400;\">Automation makes regression testing easier which helps us to focus more on the newly added functionalities.<\/span><\/li>\n<li style=\"font-weight: 400;\"><span style=\"font-weight: 400;\">Automation testing helps in exhaustive testing &#8211; we can test it on different systems with different configurations with minimal effort.<\/span><\/li>\n<li style=\"font-weight: 400;\"><span style=\"font-weight: 400;\">Automated scripts are useful because it prepares a report which is easy to analyze.<\/span><\/li>\n<\/ol>\n<p><span style=\"font-weight: 400;\">We can, therefore, infer that for agile development, test automation is a must!<\/span><\/p>\n","protected":false},"excerpt":{"rendered":"<p>As we all know, Agile Development is far different from the traditional development methods majorly because of its flexibility to adapt frequently changing requirements. In Agile, the test subject is continuously refined over the various sprints\/iterations, and, therefore, continuous automation has become a necessity. Although continuous test automation is a mammoth task, it is nearly [&hellip;]<\/p>\n","protected":false},"author":980,"featured_media":0,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"iawp_total_views":2},"categories":[1818,1],"tags":[3548,1979,1561,3652],"aioseo_notices":[],"_links":{"self":[{"href":"https:\/\/www.tothenew.com\/blog\/wp-json\/wp\/v2\/posts\/40369"}],"collection":[{"href":"https:\/\/www.tothenew.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.tothenew.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.tothenew.com\/blog\/wp-json\/wp\/v2\/users\/980"}],"replies":[{"embeddable":true,"href":"https:\/\/www.tothenew.com\/blog\/wp-json\/wp\/v2\/comments?post=40369"}],"version-history":[{"count":0,"href":"https:\/\/www.tothenew.com\/blog\/wp-json\/wp\/v2\/posts\/40369\/revisions"}],"wp:attachment":[{"href":"https:\/\/www.tothenew.com\/blog\/wp-json\/wp\/v2\/media?parent=40369"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.tothenew.com\/blog\/wp-json\/wp\/v2\/categories?post=40369"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.tothenew.com\/blog\/wp-json\/wp\/v2\/tags?post=40369"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}