Proceedings of the SMART-2016, IEEE Conference ID: 39669 5th International Conference on System Modeling & Advancement in Research Trends , 25th _27'h November, 2016
College of Computing Sciences & Information Technology, Teerthanker Mahaveer University, Moradabad , India
Agile Approach for Software Testing Process Rijwan Khan I, Akhilesh Kumar Srivastava2 and Dilkeshwar Pandey 3 1Department
of Computer Engineering, ABES Institute of Technology, NH-24, Vjjay Nagar, Ghaziabad, India 2 Department of Computer Engineering, ABES Engineering College, NH-24, Vjjay Nagar, Ghaziabad, India 3Department of Computer Engineering, ABES Institute of Technology, NH-24, Vjjay Nagar, Ghaziabad, India E-mail: lrjjwankhan786@gmail.
[email protected]@abesit.in
Abstract-As per the finding of Agile development, Testing is recognized not to be a separate phase, but an integral part of Software Development with the Coding. "Whole-team" approach is being used by Agile team to "baking quality in" to the Software Product. Agile team containing the Testers, who lend their expertise in eliciting examples of desired behavior from customers. They collaborate with the development team that guide Coding, to turn those into executable specifications. Testing and Coding is being performed incrementally and iteratively, until it provides enough value to release to production each feature building up is made. It covers different types of testing. It quadrants provide a helpful taxonomy which help teams in identifying and planning the testing need [3,4). Keywords: Agile Testing, Software Engineering, Software Testing, Software Development
•
•
I. INTRODUCTION
The methodologies of software development life cycle follow sequential models or are iterative in nature just like waterfall model. With the simple testing, software development is most complex task, sequential models cannot efficiently adapt the changes those occurs during development. This disadvantage has been removed with the agile testing process which is based on the iterative methodologies and overcome the disadvantages of sequential models.
•
•
•
In most of the Software industries, development team refers incremental approach rather than sequential one. Incremental and rapid cycle' s methods are used in agile development. It leads slowly towards the incremental method but also release generating on previous functionality. The thorough testing in this process ensures all issues are addressed in next iterations. More stress is laid on people and interactions instead of processes and tools. Testers, developers and customers consistently coordinate with each other. This coordination describes awareness of requirements to the tester for the features being developed during a specific iterations and can isolate the discrepancy between system and its requirements. A live Software is preferable inspire of the detailed documentations. Agile methodology works on the fact of point to point i.e. face to face communication and collaborations with teams working in pairs. Relying on the fact of extensive communication, with customers along with team members, the project does not require comprehensive requirement document. Customer collaboration is in more consideration in comparison to contract negotiation. Customer involvement is an important part in Agile process. The developers immediately seek suggestion on requirements from the customer for better clarification. Responding to change is of more consideration in comparison to extensive planning. Extreme programming lays emphasis on changing the plan to accommodate any changes in assumptions instead offorcefully following the original plan. 11. B AC KGRO UND
Fig. I: Agile Process
The main difference between these two methods, Agile software testing and traditional testing methodologies are as follows: Copyright © SMART-2016 ISBN: 978-1-5090-3543-4
Software testing forms an important part of process which helps improving quality of the product. Companies are contributing much of their investment in testing the software. All Software companies are spending a huge amount of money and their time on testing activities. Report for the testing process shows that more than 50% 3
5th International Conference on System Modeling & Advancement in Research Trends, 25th _27'h November, 2016 College of Computing Sciences & Information Technology, Teerthanker Mahaveer University, Moradabad , India
of the total cost of project/ application is devoted to software testing. Agile method which is one of the highly practiced methodologies, consider in all the industries nowadays. Scott W. Amber, conducted a survey and according to their survey more than 69% industries are using agile projects and he fmd that the success rate of Agile is 82% for co-located teams and 72% for non-co-Iocated teams [1 , 2, 5]. Agile is an approach to develop the high quality Software and fulfill all the customer requirements with a self-organized team for delivering cost effective Software with a time frame also meets users all requirements. The software developed with Agile techniques delivered very quickly to the customer and as it is an iterative process checks all the errors and defects with the challenges in the requirements. With the customer development team makes some changes and float the Software to the customer, he suggested the improvement and incorporated in the Software/program. A number of books, studies and papers pertaining to this area have been published and we intend to refer to these in order to guide us with the research work. Ill. SOFTWARE TESTING PROCESS
Software Testing is a process for verification and validation of the software, it is a process to guaranty execution of error free and bugs free Software/applications. An Agile model designed to meet all business and technical requirement. This model can be implemented with same characteristics, when implemented will work as expected. Software Testing identifies defects, errors and flaws in the program/Software. These defects, errors and flaws must be fixed during the software testing process. When some changes are applied in the program then again these Software should be tested again and again until all the defects are found and fixed in the Program/Software. Test activities are controlled and reported on testing process and the status of the software under test. During test planning important defects are carried out by reviewing the requirements and design documents. The testing team removes these defects but cannot improve the quality of the software. All the improvements should be documented during the coding phase in the Software development such that before testing all the improvements are incorporated in the system. Software Architecture and designers design a good model if they receive all the improvements in a defmed time frame. Testing before coding can improve the design of the Software/ Application. 4
Fig. 2: Software Testing Life Cycl e
IV. AGILE METHODOLOGY Agile Testing is one kind of the Software testing practice used more than waterfall model. Agile testing follows the statutes of the Agile manifesto, also treating Software developer as a new comer to solve the problems properly. Agile testing is that which involves testing from the customer' s side as early stage. Early stage testing is also called unit testing. Agile works on incremental method. So in incremental method the developing Software have to be tested at each stage means after some development it has been tested with the customers and this type of testing is also done using automated acceptance testing. Automated acceptance testing minimizes the manual work. In agile process the manual testing for whole Software will not work. Doing the manual testing leads towards the buggy software in agile testing, so it is not possible to test the entire built Software manually.
I.
Clitnllfilibllitr
Agile lifecycle
"-Ill
R!lease
lO Marke1
Fig. 3: A gile Life Cycle
Agile Modeling (AM) is a very effective modeling and documentation for practice-based methodology for software based system. Agile Modeling (AM) can be Copyright © SMART-2016 ISBN: 978-1-5090-3543-4
Agile Approach for Software Testing Process
applied on software projects in an effective and at a very high level. It consists of principles, values and practices for modeling Software. Agile methodology, a conceptual framework for Software development, face to face interaction with the customer promotes iterative development method throughout the project life cycle. There is no need of written documents in Agile method as it focuses on one-to-one communication over written documentations. Agile team can make very little written documents as compare to waterfall or V model. Agile methods emphasizes on working Software as the primary measure of progress. Often agile teams work in a single open office with developer team and customers. The Agile team includes testers, Software architectures, software developers, testers and managers (Iow and high level). The result is in criticism of Agile methods for being undisciplined. V.
•
VI.
Copyright © SMART-2016 ISBN: 978-1-5090-3543-4
FEATURES AND COMPARISON OF AGILE METHODOLOGIES TABLE I: FEATURES AND COM PARIS ION OF AGILE
Method Key Points Name ASD Adaptive in nature, iterative development, collaboration.
DSDM
AGILE UNIFIED PROCESS
Scott Amber developed a simplified version of IBM Rational Unified Process (RUP) called Agile Unified Process (AUP). Agile approach gives a simple, very easy and good understanding method for developing the Software/applications which are true with RUP. Agile Unified Process (AUP) include test driven development (TDD), Agile Change Management (ACM), Agile Modeling and database refactoring for enhancing productivity. Unlike the RUP, the AUP has only seven disciplines. Model. To understand the process of any organization and development team addresses the problem domain found during study of business process. Development team also proposes a solution for solving the problem. So the proposed solution takes a form of model for the problem. • Implementation. This model transforms into executable code by the development team and perform a very basic testing called unit testing. • Test. A Check that system works as per the design is called validation and verified that all the requirements are met and perform an objective evaluation to ensure quality of the Software/ program. • Deployment. To check that it is ready to deliver and make it available to the end users. • Configuration Management. Project artifacts are managed and accessed. Artifact versions are tracked over time and also controlled and managed by the team. • Prqject Management. Directs all the activities of the projects and also managing risks, directing people, also coordinating with the people outside the project to ensure that the project will be developed in time and within the budget.
Environment. For developing project/program all the guidelines should available with all the required tools, Hardware and Software.
XP
Special Features
From web of interconnected individuals an emergent order is created. Organiztions are adaptive in nature. All web It is first kind ofturly appl ications are agile software controls by RAD development method, and very much for developing it use usefull for prototyping model, DSDM. user has different roles like advisor, ambassador and visionary. Team is very Redesign and small in size, can refactoring the whole build daily, system to improve its Customer driven perfomance and its development reponsiveness.
Identified Weakness Rather than the software practice, ASD is conceptual.
When DSDM is available only some specified member of the the development team have allow to access white papers and deal ing with acutual method .
While individual practices are suitable for various situations, complete view & management practices are given secondary attention SCRUM Self-organizing Enforce a paradigm Scrum details is development, shift from "defined and specific how to small and repeatable" to the " new manage the 30-days Independent team product development release cycle, the acceptance and with 30-days view of Scrum" release cycle. Integration tests are not detailed FDD Ooject oriented Model is design with Focus on design and components, it is simplicity and system implementation totalS step implemented by only. supporting process. features, object approaches are modelling. required as well. GSD Graphical system A HLL, real-time The design works as design relies on processor, FPGA logic, a super-set of open modular I/O and any electronic systemconnectivity . intellectual property level (ESL) design required . AUP Using agile Applies agi le AUP is not usefull techniques, it is techniques along with for all your needs to very easy to test-driven be tailoring. understand and development (TDD), developing the Agi le Modeling, agile business model. change management, and database refactoring that improves productivity. Kanban It is a visual Use models and Every member of process scientific methods for the organization, be management improving it individual system that collaboratively. evolve employee or iterates what is to experimentally. manager shou Id be be prod uced, motivated for the when to be Leadership. produced, and how much to be produced.
5
5th International Conference on System Modeling & Advancement in Research Trends, 25th _27'h November, 2016 College of Computing Sciences & Information Technology, Teerthanker Mahaveer University, Moradabad , India VII.
AGILE TESTING METHODOLOGY IN INDUSTRIES
In Industries, Agile testing is getting used frequently nowadays as it involves customer collaborations and short week cycles. It makes the project speed fast due to all these features. It is best methodology as it removes the disadvantages of Waterfall Model and V-Model. It is best model for project where requirements are changing and project scope is not clear. Due to the frequent involvement of customer at every step also increases confidence and satisfaction of customer in end product and decreases chances of defect in future. As client interaction is involved in each and every cycle so end product getting delivered after every cycle is according to the requirements. Agile testing also decreases cost of project as working product is getting delivered after each cycle in increments so chances of getting defect will become very less in future. Also, this methodology increases QA and Build team confidence and communication. So, Agile currently is new and one ofthe most getting used to methodology due to its advantages, less delivery cost and other features in Industry nowadays. VIII.
CONCLUSION
Waterfall, V-Model & Agile model are chosen for development of the software. Each has its own advantages
6
and disadvantages, it depends upon the organization which model to choose. If customer changes its requirements frequently and is asked to deliver the Software on short period of time with skilled resources then it is beneficial to choose Agile based testing model while in other hand Waterfall model can used when requirement is clear, projects are large and developers have sufficient time. If projects are very large, requirements change and proper validation is required in each phase then in that case tester uses "V-Model" . But, we can say due to tight timelines and customer high expectations, now a day' s Agile Testing Methodology is best methodology which industry should adopt for delivering the projects. REFERENC ES [ I]
[2] [3] [4] [5]
K. Beck, Embracing change with Extreme Programming. IEEE Computer, Vol. 32, Issue 10 October 1999. J. Stapl eton, Dynamic systems development method - The method in practice. Addi son Wesley 1997 K. Beck, Extreme Programming explained: Embrace change. Reading, Mass., Addi son-Wesley, Novl6, 2004 L. Ri sing and N. S. Janoff, The Scrum software development process for small teams, IEEE Software, Issue 17,pp. 26-32, 2000 K. Schwaber and M. Beedl e, Agil e Software Development with Scrum, Upper Saddle River, NJ, Prentice - Hall, 1st Editi on, Oct 2001
Copyright © SMART-2016 ISBN: 978-1-5090-3543-4