A Sophisticated Study on Best Practices of Agile Software Testing

Similar documents
Testing in the Agile World

Testing in Agile Software Development

CONFERENCE PROCEEDINGS QUALITY CONFERENCE. Conference Paper Excerpt from the 28TH ANNUAL SOFTWARE. October 18th 19th, 2010

Topic 01. Software Engineering, Web Engineering, agile methodologies.

Testing in an Agile Environment Understanding Testing role and techniques in an Agile development environment. Just enough, just in time!

SOFTWARE LIFE-CYCLE MODELS 2.1

Adopting Agile Practices

Dilbert Scott Adams. CSc 233 Spring 2012

SE420 - Software Quality Assurance

CertifiedAT - Version: 1. ISTQB Certified Agile Tester Foundation Level Extension

Incremental Programming

A Proposal to Develop a Testing Framework for Agile Software Process

Been testing software for over 10 years Started out as a Manual Tester Moved to Automation testing Now leading teams, defining quality in

Software Development Methodologies

Test Automation. Fundamentals. Mikó Szilárd

SOFTWARE LIFE-CYCLE PROCESSES From Waterfall to Extreme Programming

Designed in collaboration with Infosys Limited

Software Development Process Models

Change Detection System for the Maintenance of Automated Testing

Adapt your tes-ng approach for Agile

GUI Development in TDD Model Case Study

Building a Customized Test Automation Framework Using Open Source Tools

18-642: Software Development Processes

Agile Accessibility. Presenters: Ensuring accessibility throughout the Agile development process

Agile Tester Foundation E-learning Course Outline

Data Governance Quick Start

Seven Key Factors for Agile Testing Success

Best Practices for Collecting User Requirements

Scrums effects on software maintainability and usability

Understanding the Open Source Development Model. » The Linux Foundation. November 2011

Comparison Study of Software Testing Methods and Levels- A Review

Test Automation: Agile Enablement for Business Intelligence Teams

Seven Key Factors for Agile Testing Success

Shift Left Testing: are you ready? Live Webinar, Sept 19

Life between Iterations

The Secret to Successful Test Automation

A CONFUSED TESTER IN AGILE WORLD

Successful Test Automation without Coding. Marc J. Balcer Chief Architect Model Compilers

Basic Training in Software Testing (2 Days)

Introduction To Software Development CSC Spring 2019 Howard Rosenthal

Contents. Management issues. Technical issues. Mark Fewster.

DESIGN. (Chapter 04)

CS SOFTWARE ENGINEERING QUESTION BANK SIXTEEN MARKS

Chapter 9 Quality and Change Management

Open2Test Test Automation Framework for Selenium Web Driver - Introduction

Final Paper/Best Practice/Tutorial Advantages OF BDD Testing

Pearson Education 2007 Chapter 9 (RASD 3/e)

Sample Exam. Advanced Test Automation - Engineer

Analysis of the Test Driven Development by Example

ebook library PAGE 1 HOW TO OPTIMIZE TRANSLATIONS AND ACCELERATE TIME TO MARKET

INSTITUTE OF AERONAUTICAL ENGINEERING (Autonomous) Dundigal, Hyderabad

Incorporating User Centered Requirement Engineering into Agile Software Development

How Automated Testing Tools Are Showing Its Impact In The Field Of Software Testing

Diploma in Software Testing (DST)

Software Life Cycle. Main issues: Discussion of different life cycle models Maintenance or evolution

Certified Tester Foundation Level(CTFL)

UFT120 Unified Functional Testing 12.0 Essentials Instructor-Led Training For version 12.0

Test Architect A Key Role defined by Siemens

Specifying and Prototyping

Three General Principles of QA. COMP 4004 Fall Notes Adapted from Dr. A. Williams

9 th CA 2E/CA Plex Worldwide Developer Conference 1

Wipro s Endur Test Automation Framework (W-ETAF) Reduces time and effort for the implementation and maintenance of an automated test solution.

Optimize tomorrow today.

Helix Test Case Management Best Practices

BCS Level 3 Certificate in Software Development Context and Methodologies Syllabus QAN 603/1191/5

Agile Manifesto & XP. Topics. Rapid software development. Agile methods. Chapter ) What is Agile trying to do?

Agile Project Management QuickStart & Mastery Guides: The Complete Introduction To Agile Project Management By ClydeBank Business READ ONLINE

Modern Software Engineering Methodologies Meet Data Warehouse Design: 4WD

Springforward, Inc. Capability Statement Section 508 Compliance

CAPABILITY. Managed testing services. Strong test managers experienced in working with business and technology stakeholders

Keith Stobie

Testing Tools to Support Agile Software Delivery. The Critical Role of Automated Functional Testing in Enterprise Environments

Agile Test Automation Framework - Overhauling the Challenges

Software Quality Assurance

Introduction to Software Engineering

Bob Galen. Bob began as a developer, then moved to Project Management and Leadership, then Testing.

INTERNATIONAL JOURNAL OF PURE AND APPLIED RESEARCH IN ENGINEERING AND TECHNOLOGY


Agile, Testing, and Quality: Looking Back, Moving Forward

Creating an Intranet using Lotus Web Content Management. Part 2 Project Planning

Process of Interaction Design and Design Languages

E xtr B e y CS R m oy 6704, e T a P n a Spring r n o d J g ia n 2002 r g a S m hu m ing

ISSN: [Kaur* et al., 6(10): October, 2017] Impact Factor: 4.116

SOFTWARE ENGINEERING

The Scaled Agile Framework

Shift Left, Automation, and Other Smart Strategies for Getting Ahead in QA

Automated Continuous Verification & Validation for Automobile Software

Test Automation Strategies in Continuous Delivery. Nandan Shinde Test Automation Architect (Tech CoE) Cognizant Technology Solutions

Certified Business Analysis Professional (CBAP )

Systems Analysis and Design in a Changing World, Fourth Edition

SOFTWARE ENGINEERING

Agile 2005 Experience Report

Systems Analysis & Design

SAFe AGILE TRAINING COURSES

Adaptive Scenario-Based Testing Using UML

A NEW GENERATION SOFTWARE TEST AUTOMATION FRAMEWORK CIVIM

The Design Space of Software Development Methodologies

1 Visible deviation from the specification or expected behavior for end-user is called: a) an error b) a fault c) a failure d) a defect e) a mistake

Flight Software Development and Validation Workflow Management System

Standards for Test Automation

Transcription:

A Sophisticated Study on Best Practices of Agile Software Testing Harish R Madhu B K Lokesha V GSSIT, Bangalore, GSSIT, Bangalore, Acharya Institute of Technology, Karnataka, India Karnataka, India Bangalore, India harish22011@gmail.com madhubkrishna@gmail.com lokiv@yahoo.com Abstract-From the time procedure is penned for an development process, its best practices and easy way to implement those practices are discussed and optimized. In recent years many Software development life cycles are introduced and their best practices are discussed and studied empirically. Agile software testing being most adopted in software product development process emerged as an solution for efficient solution to test in Agile frame work. It derived and explained that automation testing is best suited for Agile Software testing technique. In this paper a complete study is made on the procedure of Agile Software Testing explaining its various stages. Also the procedure for Agile Software Automation Testing and its best practices to be followed to deliver optimal working product to the customer is discussed. Paper includes best practices to consider before implementing automated software testing. These best practices are strategic and are applicable regardless of the automation tool you use giving a clear path to test Software Product in Agile development process. Keywords- Agile Software Testing (AST), Agile Software Automated Testing I. INTRODUCTION Agile Software Testing is an independent and distinct part of Agile Software Testing Framework [1]. Figure 1 depicts the agile frame work procedure. The term 'Agile Software Testing' is a philosophy and is a conceptual framework for undertaking software engineering projects. Most Agile Software Testing methods attempt to minimize risk by developing software in short time boxes, called iterations [2]. Each iteration is like a miniature software project of its own, and includes all of the tasks necessary to release the mini increment of new functionality: planning, requirements analysis, design, coding, testing, and documentation. While an iteration may not add enough functionality to warrant releasing the product, an Agile Software Testing software project intends to be capable of releasing new software at the end of every iteration. Agile Software Testing methodologies address the needs Figure-1: Framing Agile Process of the real world because they are based on the already proven strategy of iterative development. Simply put, iterative development works by breaking the project into more manageable chunks (iterations) and focusing the team on creating functional software at the end of an iteration (iterations are 2-8 weeks in duration depending on project size and the Agile Software Testing methodology selected). Software engineering can often be complex. To succeed, it demands the use of IT methodologies. However off-theshelf methodologies can often be unwieldy or inflexible. There has been a notable shift towards more iterative development methodologies in the past decade, as researchers and technology leaders sought increased adaptability and flexibility that was not deemed possible using traditional waterfall methods [3]. Agile Software Testing methodology gives birth to thinking in different directions leading to customer satisfaction and optimized software development. It provides optimal approach for forming small testing groups of highly motivated resources, working with a defined goal. This approach of testing not only complete testing life cycle in quick time but also Published by IJECCE (www.ijecce.org) 26

ensures a proper quality testing will be implemented. Agile Software Testing software testing states an effective approach in providing effective results in best possible timescale. To practice and implement any process, principals and methodologies need to be defined and freezed [4]. Agile software development is great for many situations but isn't appropriate for every shop or even every team within a company. It's also not a guarantee for success. It requires an appropriate attitude, an eye for spotting deficiencies in the process, and a willingness to correct the process itself with every iteration. II. PROCEDURE OF AGILE SOFTWARE TESTING III. BEST PRACTICES FOR AGILE SOFTWARE TESTING Often what vary between agile teams are not the practices as much as their underlying philosophies and principles. Discussed are the few encounter issues while working in an Agile Software Testing project. 1. Expect to work in a team that emphasizes cutting to the chase. Test deliverables will be asked to deliver every week or two weeks. 2. The outset of an Agile Software Testing project is usually short. Typical outline of test framework is created and testing is started from day one based on the implementation speed. 3. Once the testing phase has begun, the team will have a tough time telling the early part of it from the later parts. All work takes place in iterations of fixed length-- most typically one or two weeks each. 4. Each test iteration begins in a planning meeting lasting a few hours. The "customer," who is represented by one or more individuals, who know the next most important features that the team should build and test drives this collaborative working session. 5. A very important aspect of Agile Software Testing method is that they all emphasize is delivering working and tested software at the completion of each iteration. 6. From day to day, team start solving the problem by sequence of efficient testing. A Status meeting of 5- minutes are done to proceed further. 7. From a technical standpoint, most of the Agile Software Testing methods say little about what a tester does from day to day. 8. Throughout iteration, the Agile Testing Team will not only just trying to complete individual technical tasks but also promised to deliver completed business functionality. 9. The business side of the fence defines acceptance tests. Some of development work for the iteration might include automating these tests so you can execute them on demand, or as part of the nightly build. It is impossible to optimize all testing, so it is important to determine what tests will produce the most benefit. Tests that require large amounts of data to be input and tests that are run frequently, such as regression tests, are good candidates for automation which is efficient tactic to practice in Agile Software Testing. It is a good method to adopt maximum automation test methodology at Agile Software Testing wherever possible. Any test that has predictable results and meets one of the following criteria is a candidate for Agile Software Automation Testing: 1. The test is repetitive 2. The test evaluates high risk conditions. 3. The test is impossible or costly to perform manually. 4. The test requires multiple data values to perform the same action 5. The test is a baseline test run on several different configurations. Automating the repetitive and boring tasks frees up testers to perform more interesting and in-depth tests. Keep an eye out for tests or areas of an application that are frequently modified. These are barriers to automation. If there is an area of your Web site that changes daily, it will be difficult to define exactly what constitutes a passing result. IV. PHASES OF BEST PRACTICES 1. Prepare your applications for Agile Software Automated Testing Automation tools use a series of properties to identify and locate controls. For example, when searching for a button, the script might use the button label to locate the object. If the label changes from OK to Submit, scripts will no longer be able to find the button when they run and will fail. Developers should immediately notify testers of Published by IJECCE (www.ijecce.org) 27

any application changes so the necessary updates can be made to scripts. If possible, have developers create unique names for controls. Providing a unique name makes it easier for both the script and the tester to identify controls. This reduces the chance that the automation tool will have to rely on location coordinates to find the control. Automation tools can reveal duplicate control names and non-standard development practices. Allow testing to occur more frequently Improve test coverage Ensure consistency Improve the reliability of testing Define the testing process 6. Define measurements for success 2. Identify the correct search criteria If the controls do not have a unique identifier, consult with development to determine a set of control properties that you can combine to create solid search criteria. For example, combining the control type and location coordinates can help distinguish between two combo boxes with similar properties. Keep in mind that some applications have dynamic properties. For example, a Web page can have dynamic hyperlinks that include a session ID. Since that ID changes each time the site is accessed, the hyperlink reference does not make effective search criteria and will eventually cause the script to fail. 3. Define a standard display resolution In some cases, the test tool will need to use relative coordinates to locate controls. All mouse actions also rely on coordinates, so changing the display setting will affect script execution. Use a standard display setting. If testing requires more than one display setting, create displayspecific subroutines that can be conditionally called to perform mouse actions. 4. Prepare Your Automation Team, Processes and Divide your efforts Identify the skills of your team members. Some team members are better at writing test cases than writing scripts. Have a tester with a programming background create any subroutines and functions needed to perform specific actions. Then document the functions and how to use them so other testers can easily include them in scripts. 5. Create an automation plan To decide which tests to automate, it is helpful to write an automation plan. Begin with your goal for Agile Software Automated Testing. Following are examples of possible goals: Speed up testing to allow for accelerated releases Agile Software Testing Software Testing goal should not be automation for automation s sake. In the automation plan, define how you will tell if your test automation is effective. Following are potential measures for successful automation: Same number of features are tested in less time More features are tested in the same time Current testing costs are less than previous testing costs 7. Develop test cases Creating and debugging automated scripts is time consuming. Therefore, you should avoid ad-hoc tests and tests that are only performed a few times. Automated tests should be repeatable and should have clear results. After you determine the types of tests to automate, write test cases that clearly document the goal of the test, the prerequisites, the expected outcomes, and what determines a failure. Ensure that each test has a specific purpose and identifiable results. It is helpful to begin by automating previously documented, manual test cases. When developing tests identify checkpoints you can use to verify test results. Ask yourself what changes in the application to indicate a successful test. The system might update a database or present a verification number. Use a spreadsheet or databases to verify the expected changes. V. IMPLEMENTING AGILE SOFTWARE AUTOMATED TESTING In addition to writing an automation plan, create an automation testing standards document. Decide on how to organize the scripts after they are recorded and define a structure for the scripts. Before recording any scripts, establish naming conventions for scripts and variables. Also, create a separate document that lists all automated tests and the purpose for each test. Use comments throughout scripts to explain the logic of the test. Published by IJECCE (www.ijecce.org) 28

Create reusable and maintainable automated tests-it is best to create small scripts then combine them to create more complex tests. Long, complex scripts are difficult to debug and update. When creating scripts, strive to keep them reusable, understandable, maintainable, and modular. You can use the acronym RUMM to remember the characteristics of an effective script. The following describes how to achieve each of the characteristics. Reusable Keep scripts small and focused on a single task. For example, if you are testing the functionality for setting user options, you can create one script that opens the user options and one that closes it. This allows you to use these steps repeatedly without including them in every script that accesses the user options window. You can also use variables and external data to make scripts reusable. When values for input fields are not hard coded in the script, you can use the same script to test for a variety of different conditions. Understandable Maintaining a document that contains detailed descriptions your scripts functionality and purpose makes it easy to understand what types of scripts are available and how to combine them into larger tests. In addition to a list of scripts, comments in the individual scripts can go a long way to making them easy to use. As a general rule, add comments to variables, functions, subroutines, and branching structures so it is clear how the individual components work. Maintainable Using external data not only makes scripts reusable, it also makes them easy to maintain. To add different test scenarios, you can simply add more data to a spreadsheet or database without needing to edit the script. Also, using an automation tool that includes a textbased scripting interface or allows you to edit a script in a text editor can reduce maintenance time. Modular Creating scripts to perform specific tasks gives you the flexibility to build complex tests from small scripts that are easy to troubleshoot. If your code base changes, it is easier to add small, modular scripts that address the new functionality. You can organize scripts by the application interface, major/minor division in application, or common functions VI. CONCLUSION form the basis for effective Agile Software Test automation. Implementing them can help you avoid common mistakes and improve your testing process regardless of the automation tool you use. REFERENCES [1]. Madhu B K, Megha J and Lokesha V: A Study on Agile Software Testing Emergence and Techniqes African Journal of Mathematics and Computer Science Research Vol. 3(9), November 2010 [2]. Martin, R. C. (2003). Agile Software Development: Principles, Patterns, and Practices Ioannis G. Stamelos, Pagagiotis Sfetsos: Agile Software Development Quality Assurance Information Science Reference [3]. Lisa C, Bob G (2009). Agile Conference The Testing Stage Sessions proposal, http://agile2009.agilealliance.org/testing [4]. Dyba T, Dingsøyr T (2008). Empirical Studies of Agile Software Deve: A Systematic Review, Information and Software Technology, doi: 10.1016/j.infsof.2008.01.006 [5]. Elisabeth Hendrickson.: 2005: Agile Testing [6]. Madhu B K and Lokesha V: Mathematical Modeling and Analysis of Agile Software Testing National Conference on Applied and Engineering Mathematics (NCAEM 2011), RNSIT, Bangalore, Karnataka, India [7]. C. Larman, Agile & Iterative Development: A Manager s Guide. Addison-Wesley, 2004. [8]. J. Stapleton, Dynamic systems development method The method in practice. Addison Wesley 1997. [9]. W. Cunningham: Agile Manifesto http://www.agilemanifesto.org/ [10]. S. W. Ambler: Software Development [11]. P. Wendorff: An Essential Distinction of Agile Software Development Processes Based on Systems Thinking in Software Engineering Management. Addison Wesley; page 218. [12]. J. Highsmith and A. Cockburn: Agile Software Development: The Business of Innovation IEEE Computer Agile Software Testing is more effective when it is used with the tactic of Automation testing. Automation testing is optimum technique to gel with Agile framework, as it saves time and testing will be effective. The best practices discussed in this paper can be directly adoptable to software development process. Also, these best practices Published by IJECCE (www.ijecce.org) 29

[13]. B. Pettichord, Agile Testing Challenges, Proc. Pacific Northwest Software Quality Conf-2004; www.io.com/~wazmo/papers/agile_testing_challenges.pdf. [14]. C. Kaner, J. Bach, and B. Pettichord, Lessons Learned in Software Testing: A Context-Driven Approach, John Wiley & Sons, 2002. [15]. Agile Testing: The Tester Role on an Agile Project Lisa Crispin, Janet Gregory [16]. C. Larman, Agile & Iterative Development: A Manager s Guide. Addison-Wesley, 2004. [17]. B. Boehm, A Spiral Model of Software Development and Enhancement, IEEE Computer, May 1998 [18]. K.Mar and K.Schwaber, Experiences of using Scrum with XP, http://www.controlchaos.com/xpkane.htm, [19]. L. Rising and N. S. Janoff, The Scrum software development process for small teams, IEEE Software, Issue 17, pp. 26-32, 2000 [20]. First eworkshop on Agile Methods, Centre for Experimental Software Engineering Maryland, April 8 2002 [21]. P. Wendorff, An Essential Distinction of Agile Software Development Processes Based on Systems Thinking in Software Engineering Management. Addison Wesley; page 218. [22]. J. Highsmith and A. Cockburn, Agile Software Development: The Business of Innovation, IEEE Computer [23]. J. Highsmith and A. Cockburn, Agile Software Development: The People Factor, IEEE Computer [24]. J. Highsmith, Agile Software Development Ecosystem. Addison Wesley, 2002 [25]. M. Fowler, Is Design Dead?, Software Development, http://www.martinfowler.com/articles/designdead.html [26]. L. Williams and A. Cockburn, Agile Software Development: It s about Feedback and Change, IEEE Computer, June 2003, pp. 39-43 Published by IJECCE (www.ijecce.org) 30