International Journal of Engineering Trends and Technology (IJETT) – Volume 15 Number 2 – Sep 2014 Future of Testing: Agile Testing Pooja Desai1 ,Parth Desai1 , Sharyu Mahale1 1. U.G. student at the department of electronic and telecommunication, DJSCE, Mumbai University India. Abstract Agile methodology is the trending software development lifecycle which promises early to market and enable competition between different products in market. In this document we will see what agile methodology, challenges faced during testing are and how we can overcome those challenges to leverage best of it. 1.3 Testing in Agile Methodology Agile methodology follow test driven approach, enhancements are made in each iteration and are tested, products are modified and updated to meet the requirements. 1. INTRODUCTION 1.1 What is SDLC? SDLC (Software Development Life Cycle) is the process or method which is used to create or update software projects. Each of these methodologies defines unique way to create a new software module or program. 1.2 What is Agile Methodology? Agile software development methodology is a group of software development methods which is based on iterative and incremental development, where requirements and solutions evolve through collaboration between self-organizing, crossfunctional teams. It uses adaptive planning, evolutionary development and delivery, a time-boxed iterative approach, and encourages rapid and flexible response to change. It is a conceptual framework that promotes foreseen interactions throughout the development cycle. Features/Enhancements are added in each iteration to create software products/modules. Each iteration has definite timeframe called as Sprint Cycle. Products and requirements are reviewed after each iteration to make and adapt changes which helps to create market compatible products. Fig.2 Testing in Agile Methodology for each sprints 1.4 Challenges with Agile Methodology – In Term of Testing Challenges which are generally faced during testing in agile methodology: 1. 2. 3. 4. Systems are still under developments. System requirements, system under test and test scenarios may change very frequently. Testing is done very rigoursly and repeatedly, and regression is the biggest component of it. Short duration is provided for testing, it should be quick and efficient. Testing and development phases are short and overlapping so synch between both is required. Fig.1 Agile methodology ISSN: 2231-5381 http://www.ijettjournal.org Page 68 International Journal of Engineering Trends and Technology (IJETT) – Volume 15 Number 2 – Sep 2014 2. TESTING APPROACH FOR AGILE METHODOLOGY System R eq uirements Update System System Under Test Invoke Mock/Drivers (U navailable Systems) T estNG (Integration Testing) Junit (Unit Testing) T est C ase Repository Track Changes (Requirement T raceability and change control) Selenium (W ebUI testing) Jmeter (Performance Testing) Test Data Repository Shared T est Repository Environment Properties R epository Execution C ontroller Test Automation F ramework Fig.3 Agile Test Approach 2.1Tools selected for the approach In the approach shown in Figure 3, we have used Junit, TestNG, selenium and Jmeter for implementing. Reason for selecting these tools 1. Open source (Free License) 2. Can be configured and used with stubs and mocks 3. Can be used to create automated regression suites and maintenance is very efficient 4. Support all major defect, test and change management tools 5. Support all major browsers and technologies (Java) 2.2 Test Approach and Solution to challenges: We can use below approaches to track major challenges faced with agile methodology. Unavailable/Underdevelopment System: Stubs/Mocks will be created to emulate behavior of unavailable or under development systems. WebUI: Selenium will be used to record events on webUI and those scripts will be exported to TestNG to make integration test cases and suites. ISSN: 2231-5381 Data dependencies: Data dependencies issues with test cases will be recovered by separating test data from the test cases, test data will be stored in separate sheets/XMLs so that it can be changed without impacting test cases. Environment dependencies: Environment/target URL may change after iterations and has major impact on test case execution, it can be separated from target test cases by storing and retirieving it from external files(properties files). Integration Testing: Integration testing will be done using TestNG, test cases and test suites will be created for each scenario and there will be an controller to execute those test cases, controller will be able to invoke test cases related to different framework. Regression Suite; Regression test cases and suites will be created after each iteration/sprint and will be executed in next iterations. Tracking changes in the system and requirements: We can create change tracking system to track changes in UI, application, requirements and its impact on the test cases. http://www.ijettjournal.org Page 69 International Journal of Engineering Trends and Technology (IJETT) – Volume 15 Number 2 – Sep 2014 3. BENEFITS 3.3 Value delivered & Risk Assessment 3.1Quick Comparison SDLC approach Waterfall Model 1. Waterfall is release driven, with a defined critical path and sequence for delivery 2. Estimates are based on the work required to meet the requirements 3. Requires clearly defined requirements upfront 4. Success is measured by the IT organization 5. It is persepective development. V Model 1. It follows verification and validation approach 2. Phase containment 3. The testing gets “squished” because coding takes longer than expected, and because teams get into a codeand-fix cycle at the end. 4. It is perspective development. Agile Methodology 1. Agile is based on short iterative delivery cycles usually 2-4 weeks in duration 2. Estimates are done based on the amount of work the team can accomplish in a set period of time 3. Requirements are expected to evolve and changes are embraced 4. Success is measured by business value delivered 5. Team can see and feel development 6. Time to market is low 7. It is adaptive development. 3.2 Success Rate *Based on CHAOS Manifesto 2011 ISSN: 2231-5381 4. CONCLUSION Agile methodology is one of the trending software development approaches. Testing in agile methodology faces several challenges and risks. Risks and challenges can be resolved using test automation approach. Success rate in agile method is very higher if compared with other software development approaches e.g. waterfall model. http://www.ijettjournal.org Page 70 International Journal of Engineering Trends and Technology (IJETT) – Volume 15 Number 2 – Sep 2014 Value generated from the software product or module is visible from early test iterations. Risks reduce drastically with the iterations. 5. ACKNOWLEDGEMENT We would like to thank the respected principal Dr. Hari Vasudevan of D. J. Sanghvi College of Engineering and Head of Department of Electronics and Telecommunication, Dr. Amit Deshmukh for giving us facilities and providing a propitious environment for working in the college. We would also like to thank S.V.K.M. for encouraging us in such co-curricular activities 6.REFERENCES Sabah Nouri Mohammed Hussian,2009.Agile Method Implementation-Gupea University of Technology,Department of Computer Science and Engineering. [2] Samireh Jalali,Gobal Software Engineering and Agile Practise Systematic Review Journal of Software Maintenance and Evolution Research 2010 5th International Conference. [1] international Software Testing Qualifications Board, www.istqb.org. [4] Agile Software Testing in Large Scale project, IEEE [3] publication, July/Aug 2006, David Talby and Arie Keren, Orit Hazzan and Yael Dubinsky [5] http://cs.anu.edu.au/courses/COMP3120/public_docs/uTe st_Whitepaper_Agile_Testing.pdf [6] [7] http://www.satisfice.com/articles/agileauto-paper.pdf “Testers Should Embrace Agile Programming“, Bret Pettichord , Quality Week, September 2002, San Francisco.QFS, www.qftest.com ISSN: 2231-5381 http://www.ijettjournal.org Page 71