Lade Inhalt...

Quality Assurance in Agile Methodology

Akademische Arbeit 2018 33 Seiten

Informatik - Software

Leseprobe

Table of Contents

Acknowledgment

Abstract

Table of Contents

List of Figures

List of Tables

List of Abbreviations

Chapter1. Introduction
1.1 Study Overview
1.2 Statement of the problem
1.3 Objectives of the study
1.4 Scope and Limitation
1.5 Significance of the study

Chapter2. Review of related Literature
2.1 Quality Assurance
2.1.1 Defect Management Approach
2.1.2 Quality attribute Approach
2.2 Importance of Quality Assurance
2.2.1 The Quality System of SQA
2.2.2 Technical Activities of SQA
2.2.3 Life Cycle Phase of SQA system Development
2.2.4 Methods of Software Life Cycle development
2.2.5 Standards of SQA
2.2.6 Software Quality factors
2.2.7 Principle of Quality Development Process
2.2.8 SQA Methodologies

Chapter 3. Material and Methods
3.1 SDLC and Agile
3.1.1Introduction to SDLC
3.1.2Definition of Quality and Agility
3.2 Agile Methodology
3.2.1Twelve principles behind the Agile Methodology
3.2.2 QA in Agile
3.3 Traditional Methodology
3.3.1 Traditional VS Agile
3.4 Agile Development and Quality Assurance
3.4.1 Agility
3.4.2 Types of Agile Methodologies
3.4.2.1 Extreme Programming (XP)
3.4.2.2 Scrum
3.4.2.3 Crystal Methodology
3.4.2.4Kanban Methodology
3.4.2.5Feature Driven Development (FDD) Methodology
3.4.2.6 DSDM Methodology
3.5 Methods
3.5.1 Qualitative Approach
3.5.2 Informal Interviews

Chapter4. Results and Findings
4.1 Trends in Agile Methodologies
4.2 New Development Approach in Organizations
4.3 Spreading Trend
4.4 The Bright Side of Agile Development
4.5 Challenges Adopting Agile Development
4.6 Improvement of QA in Different Agile

Chapter5. Conclusion and Future Work
5.1 Conclusion
5.2 Future Work

References

List of Figures

Figure 2.1 Defect Management Approach

Figure 2.2 Software Quality Attributes

List of Tables

Table 3.1 Definition of Quality and Agility

Table 3.2 QA in Agile

Table 4.1 Scrum

Table 4.2 Crystal

Table 4.3 Extreme Programming (XP)

Table 4.4 Kanban

Acknowledgment

In the Name of Allah, the Most Beneficent, the Most Merciful.

0n the very outset of this report, I would like to extend my sincere & heartfelt obligation towards all the personages who have helped me in this endeavour. Without their active guidance, help, cooperation & encouragement, I would not have made headway in the study.

I am ineffably indebted to my supervisor Dr. Syed Abbas for conscientious guidance and encouragement to accomplish this independent study. I am extremely thankful and pay my gratitude to my faculty guide of SZABIST university Dubai campus for their valuable guidance and support for completion of this study.

I extend my gratitude to department of computer science for giving me this opportunity.

I also acknowledge with a deep sense of reverence, my gratitude towards my parents and member of my family, who has always supported me morally as well as economically.

At last but not least gratitude goes to all of my friends who directly or indirectly helped me to complete this independent study report.

Thanking You

Syed Hassan Shah

Abstract

Quality Assurance activities, in software development, are the backbone of any software development. Quality Assurance activities are not only responsible of product quality, but also for process development quality. In conventional software development Quality Assurance is looked after by a separate team. As the trends of software development moved towards Agile development, Quality Assurance activities also got changed. In Agile development developers perform most of the activities such as close collaboration among developer team; onsite customer and Test Developers. Test Driven Development is the approaches in agile development to achieve better product quality. In this study I highlighted the importance of Quality Assurance in different Agile methodologies. Mindset of Agile development always revolves around product quality but there is much work to be done to impart quality of process in agile development to get it standardized and more organized product. Quality Assurance activities remain centric and focused to testing. In this study I have compared different Agile methodologies and also highlighted the factors of Quality Assurance in each Agile method which can be improve overall software development of any product using Agile method. I proposed to add an extra layer of Quality Assurance in Agile projects. Purpose of inserting an extra layer, is to use the knowledge of Quality Assurance experts to achieve quality product in development process which will results in higher level of product quality.

Keywords: Quality Assurance (QA), Agile Development, Software Process Improvement(SPI)

List of Abbreviations

illustration not visible in this excerpt

Chapter1 Introduction

1.1 Study Overview

When we think about the quality of software, our concern is around the assessment of the software based on certain qualities. The frame work for software development can be adaptable only if it leads to the quality product with high assurance and the concept of how secure quality framework it is [1]. The response of the Quality Assurance is sometimes called as quality framework or it is gradually known as a quality administration framework. It includes administration structure, liabilities, exercises, capabilities and effects of software that guarantee the software production by venture which fulfils the desired quality attributes requirements on which both the client and development organization get agree on it. This implies that a quality framework joins exercises such as examining, analysis, improvement, invalidation of effects, giving inputs, development benchmarks strategies and rules to be followed [2]. The characterized outside quality is based on how software performs in real time situation at operational mode and how valuable it is for its clients, while he inner quality on the other hand centers on the fundamental perspectives that are subordinate on the quality of the code composed. The client centers more on how the computer software works at the outside level, but the quality at outside level can be kept up as it were in case the coder has composed a significant great quality code as appeared in stream chart of inner quality and outside quality components [1]. It is not only reasonable for software developers but also for development teams leaders, project directors, item analysts, improvement supervisors, QA supervisors, QA engineers, specialized scholars and anyone that are a part of software development. This paper will center on how team work can be improve to make all well to arrange, construct, and provide computer software with high Quality Assurance (QA). I will discuss the quality factors of each agile methods that are depend in terms of quality in each agile, will also suggest some practices that can improve the overall life cycle of software development in agile to produce high quality assured product. Hopefully this study will make trends capable in terms of the feasibility of team association in software advancement using agile methodology and will reach to the objective of client fulfilment [3].

1.2 Statement of the problem

I will like to quote that “The Agile methodology significantly modifies the Quality Assurance picture by affecting liability of the software for the Client and development team. Needs more work to be done in terms of Quality Assurance in Agile Methodologies [14]. In study I am trying to enquire my work about the following questions:-

i. What is the impact of Agile in the software development life cycle?
ii. Identify the key independent and dependent quality factors of each Agile method that can leads software failure or success during the SDLC in terms of Quality, time and price?
iii. How the current organizations work with agile methods for software development?
iv. What are the basic challenges faces by organization during projects while adopting agile methods?

1.3 Objectives of the study

In spite of the fact that, there are several claims that Agile development is giving us higher quality software. But comparing the studious material with responses of practitioners on software development using agile methods in term of software Quality Assurance, the agile methods are depending on the software value and organizational structure. Some interviews with peers and practically involved people in different organizations experiencing agile methods for software development will assessed to get it, how organizations are practicing SQA in agile methods to improve the product quality in terms of delivery, quality and client requirements. Some of the suggestions will be put forward to organizations that could improve the agile methods and give maximum assurance of quality of any software product during the development stage. Hope my suggestion work will offer assistance to Agile exercises for the development team in current field. In case of how the under process work is done without any break in any step and such agile methods can be profitable in respect to quality and product output.

1.4 Scope and Limitation

The scope limitation must be set in terms of achieving the high quality product that assure the software requirements. Some of the scope limitations may be:

- Zero or small error after Installation: The main objective of Quality Assurance of any software is to find the errors that can prevent the output. To handle the ability of the software is different in terms of errors, as it leads to the crash of product. So software’s failure mostly comes from the avoidance of small bugs in continuously working application.
- Client fulfillment: In term of SQA the software development must insure the clients’ requirements and must exceed their expectations in term of high quality performance and consistent working of product without any defects. Even if system can minimized the errors, still client’s satisfaction and requirement fulfillment must be priority.
- Planned well: Quality Assurance of a software product will ensure that every application must be organized and built in specific manner that meets the requirement of process and desired output. The inter portability of application modules should be well structured to continue the process of development and each application should be transfer to other developer easily.
- Testing: The objective of testing should be finding the defective bugs created during development stage by programmer. Confidence should be given in terms of quality for development team. Must ensure the end results according to the requirements of client and in terms of product business. Must also insure the requirement specification for a business.

1.5 Significance of the study

Software Quality Assurance (SQA) is defined as a planned and systematic approach to the evaluation of the quality and faithfulness to software product standards, processes, and procedures. This systematic approach is actually quite different in Agile and non-Agile environments. Giving importance to Quality Assurance levels in an Agile methods will improve overall software development process which will leads in end to better software product in terms of meeting clients requirements in term of time, delivery and quality.

Chapter 2 Review of related Literature

My study is based on qualitative approach; keeping all this I concluded in writing all the aspects of Quality Assurance in Agile methodologies. Some interviews were carried out to find the agile methods following in current industry for software development to get maximum Quality assurance of any software product. Peers and practically involved personals such as developers and project managers were interviewed to find the challenges they face during the development process of software in any agile method. In same way literature review was also carried out to collect data of different researchers working in same area of my interest for getting more knowledge about the aspects of Quality Assurance in agile methods. To collect literature of my interest, I use different database sources and resources that can provide data available free on internet. The resources mostly used are as follow:

- IEEE research papers
- Google Search engine
- Google scholar search engine
- Articles of journals from websites.
- E-books

Some of the information is provided by peers and practically involved people in current industry. I downloaded free data material and collected data from sources of other personals that is particularly reflect the Quality Assurance and related activities involved in software development life cycle (SDLC) under agile projects. Finding literature related to my study I searched using different keywords by above mentioned search engines and databases available. Most of the areas of research papers and journals such as Abstract, Introduction, future work and conclusion were read for finding the different aspects of Quality Assurance in software development in agile projects. Required information was extracted from the data sources and presented in form of independent study report.

2.1 Quality Assurance

Quality Assurance activities in any software development are the strength of any software development. Quality Assurance activities are not only responsible of product quality, but also for process development of any product to achieve the goals set for customer satisfaction. Presently there are two important methods that are used to find out the quality of the software:

- Defect Management Approach
- Quality Attributes approach

2.1.1 Defect Management Approach

Sometimes it is specified that anything that is not with in line with the preconditions of the customer can be considered as an imperfection. Numerous times the development team failed to comes up completely to the necessity of the client, which certainly leads to plan mistake. Other than that, the mistake can be caused due to poor useful logics, off-base coding or dishonourable information dealing among the development team and stakeholders. In arrange to keep a track of irregularity; an imperfection management approach can be connected. In imperfection management; categories of submissions are categorized on seriousness. The number of outputs are checked and activities are taken as per they are categorized by their nature of seriousness. Some of the activities are described in given below figure (2.1)

illustration not visible in this excerpt

Figure 2.1 Defect Management Approach

2.1.2 Quality attribute Approach

Quality attributes are the main themes of the product for which customer are looking for to insure the product values in market as working. This Approach focuses on basic six features which are stated in figure (2.2) given under and each quality attribute is described below

illustration not visible in this excerpt

Figure 2.2 Software Quality Attributes

1. Functionality : It refers to comprehensive set of significant functions that are delivered by the software

illustration not visible in this excerpt

2. Reliability: It refers to the capability of computer software under describing time scale beneath specific conditions. It moreover indicates to the capacity of framework negative response.

illustration not visible in this excerpt

3. Usability: refers to the ease of utilize of a function.

illustration not visible in this excerpt

4. Efficiency : It refers to the functionality of different factors and their responses such as

illustration not visible in this excerpt

5. Maintainability: refers to the change acceptance and recover the previous active state.

illustration not visible in this excerpt

6. Portability: refers to the addition of new hardware and software change.

illustration not visible in this excerpt

2.2 Importance of Quality Assurance

The Computer Software Quality Assurance (SQA) had get certainly high importance in any software development life cycle due to any agile methodology to insure customer needs and all current rapid changes in software industry that can meet the product in market. QA has worth value in any Software Product Development Life Cycle (SDLC).QA will ensure the fulfilment of the client needs and will provide the product with less number of bugs. Around each movement in software developments either recognized with SDLC or other approaches the QA has importance and make a software product that meets the customer requirements in term of time, delivery and quality [2].

2.2.1 The Quality System of SQA

The system for assuring the quality of a product is more about the reasons that defines the quality components of a product in terms of portability, reusability and conveniences of the product to end user. The framework of quality attributes should be design and well planned that the software development frame work should leads to successful product. SQA examines survey of quality, improvements and highlights the accepting of modern measures, strategies and rules that should be followed during development process [2].

2.2.2 Technical Activities of SQA

In [2] some of the technical activities of SQA system are highlighted which includes Requirement Analysis, Requirement Specification, System design, Detailed design, Acceptance testing and Modular testing

2.2.3 Life Cycle Phase of SQA system Development

Software Development Life Cycle is a subset of the SQA system development life cycle. There are different models for SDLC

2.2.4 Methods of Software Life Cycle development

In the study they choose classic Waterfall model for the Software Development Life Cycle. This indicates the importance of quality assurance in each step of SDLC. Following are the steps discussed during waterfall model of Software Development Life Cycle [2].

- Requirements Definitions/Analysis
- Design
- Code Generation
- System testing
- Installation and Conversation
- Operation and maintenance

In the study they researcher also emphasis that it has a few phases prior to software Development life cycle phases such as

- Pre-Project Phase

In this phase the organization will initiate its policy and methodology related to quality assurance.

- Proposal/Contract Phase

During this phase, firstly proposal team develops a proposal draft from the customer requirements documents. Then the contract draft is prepared to customer. After reviewing the contract draft with the customer, a mutually agreed contract that defines sources, timetable and cost estimation for the project is achieved. [2]

2.2.5 Standardsof SQA

These are the established benchmarks to which software products are associated. It reputable recommended methods for developing software. The role of SQA is to ensure their survival and acceptability. Some of the standards in the study are define as documentation standards, design standards and code standards [2].

2.2.6 Software Quality factors

In [2] it reflects that factors such as correctness, reliability, efficiency, integrity, maintainability, flexibility, testability and usability are the software quality factors which can enhance the product image.

2.2.7 Principle of Quality Development Process

In [2] the researcher highlighted seven principles of quality development process. These principles will lead the maturity of the product in the market and will meet the standards of software development as well as it will meet the requirements of the customer. Each step has an important part in development process to make the software according to specified benchmarks. Following are the steps with its key concepts [2]

illustration not visible in this excerpt

2.2.8 SQA Methodologies

Software testing is as much an art as a science. In large complex application, such as operating systems, it’s practically impossible to iron out every single bug before releasing it both from the difficulty and time constraint point of view. Different software applications require different approaches when it comes to testing but some of the most common task in software QA includes are Peer Review, Validation Testing, Data Comparison, Stress testing, Conformance testing, Load testing, Usability testing and Robustness testing.

Chapter 3 Material and Methods

3.1 SDLC and Agile

Software Development Life Cycle (SDLC) is the complete structure that should be followed to develop the software product while Agile is the method of implementing the development stages in different scenario.

3.1.1Introduction to SDLC

This is sometimes also called Product Life Cycle. For every software product development a lot of processes and activities are involved, to make is all in stream line to make the outputs interrelated in such a way that the time delay should be minimized and should not make the other processes wait. The development processes of software are come into software process models. These models describe the orders of phases for the entire lifetime of a product. Therefore it is called Software Development Life Cycle (SDLC). It includes software specification, software design, implementation, validation, verification and the most important is its Quality Control. There are various process models for SDLC is in use such as Waterfall model, Spiral Model and Reuse Orientation Model.

3.1.2 Definition of Quality and Agility

Agility is common refers to the readiness to motion while Quality is generally refers to Characteristics of a product. In the study the researchers highlighted definitions of Quality and Agility by different authors. Some of the definitions by the authors are given in the table below

Table 3.1 Definition of Quality and Agility

illustration not visible in this excerpt

Most of the researchers are agree on the consensus that the quality is conformance to customer needs. Many researchers enhance this view to define quality as characteristics bear by the software product, which reflects the needs specified by the customer

3.2 Agile Methodology

Agility has presently gotten to be imperative with developing elements in commerce all over in arrange to reply quickly to the changes needs of their clients while creating great quality computer program at a quicker rate. Agile computer program advancement speaks to a major conventional, plan-based approach of computer program building to more esteem and client driven [7]. Numerous organizations now a days are confronting the challenges that how do we guarantee in agile the originality of vast predictable Quality Assurance hones that have, in past demonstrated of overwhelming conventional Quality Affirmation hones that have, in past demonstrated to be productive are no longer fitting totally with in agile environment.

3.2.1Twelve principles behind the Agile Methodology

1.Highest priority is to delivery product in time with fulfillment of clients requirements.
2.Changes should be welcomed even in last stages, that will advantages customers needs
3.Delivery of software should be time lined into week or months with reference to short time schedules.
4.The developers and business people should work together.
5.Support should be given to each motive individual to make the work done in good manner.
6.Sponsors, developers and users should be able to maintain pace.
7.Software working is prior base of measurement.
8. Face to face conversation should be more effective.
9. For enhancing agility, continuous attention should be given to technical assistance.
10. Simplicity of doing work is to get maximum job done.
11. Self-organized team will produce best architectures, requirements and design teams.
12. Regular plans will reflects how the team work is going on and according to that teams can be managed.

3.2.2 QA in Agile

There may be various components that can be assessed in term of quality assurance in any agile methods. Each Agile method must have some dependent and independent factors that can affect the quality of product in terms of in time delivery, cost and usability. Some of the quality factors such as cost, reusability, portability, compatibility, maintainability and robustness etc. which can be taken under consideration to achieve software with high quality in agile method. There are always some functional attributes and non-functional attributes of any software development framework. So some of the above mentioned quality factors are discussed in below table with proposed methods as follow:

Table 3.2 QA in Agile

illustration not visible in this excerpt

3.3 Traditional Methodology

The traditional methodologies for the development of software have focused on Waterfall approach. While the rapid change in the requirements under influence of market values related to customer requirements, dynamic infrastructure of corporate organization, comprehensive need for short time deliverables and highly variants in speed of advance technologies and tools added the aggressive pressure to sustain in market. As a result many organizations adapted agile method for the development of software. In fact the agile development is popular for quality delivery of the project in small deliverables [11].

3.3.1 Traditional VS Agile

Traditional quality Assurance is based on reporting and they depend on heavy weight inspection methods, while Agile quality assurance methods are based on daily built in activities. In Agile environment quality Assurance activities should be integrated with in day-to-day activities so that flow of process should be in streamline to fulfil the needs for improving the quality of product. Some answers to the questions mentioned below are discussed by a researcher in a paper [8].

- How we can manage the quality of software in Agile?
- Which practices of Agile will ensure the software quality?
- What are the key drivers of Quality in Agile?

In the study the researcher highlights the debates on agile methodologies, stated that quality assurance practices have gained less attention while agile methodologies has been on the development of activities and an overall picture is somehow missing. Some authors reported that QA practices are constructed into XP process like a spiral model adopts them. Study by Noura, et al [8,9] supports that quality in Agile projects is the key contributor to project success. Another study by Ahmed et al [8,10] also reports key attributes such as participation of stakeholders, Self-organized teams and size of teams etc. have impact both on productivity and quality of the finished product.

In Agile methodologies the key to successful quality Assurance (QA) are the frequent changes. Therefore the importance of Quality Assurance is important for the quality of software product irrespective of the development process one chooses.

3.4 Agile Development and Quality Assurance

Agile method is used to develop software under particular pattern that can leads the development of product in such a way that meets the requirement of client and produce the product in good manner in time. Quality Assurance will guarantee each step of development process with less errors and delay. QA will also assure compatibility and inter relationships of each individual team for producing same product in specified timeline.

3.4.1 Agility

The word Agility refers to the status of movement or status of something in motion according to some dictionaries [24]. The agility in terms of software development process reflects to the entire continuous process that integrates all the steps together to achieve the software product. Erickson [25] characterized agility as “conventional software development, changes in client necessities, quickened delivery in due dates and the techniques that influence the development of software product”.

3.4.2 Types of Agile Methodologies

There is a lot of software development Life cycles that comes under the umbrella of agile methods. Some of the agile methods explained below.

3.4.2.1 Extreme Programming (XP)

Extreme Programming agile method aims to provide high feature software. It is applicable when software have a characteristics that describes such as dynamic changes in software requirements, risk of new technology integration in fixed time period and co located small team etc. It mostly have short development life cycle that focus on needs of today rather than the coming up in the future, which is somehow also called YAGNI approach. It means “You Are not Gonna Need it”.

3.4.2.2 Scrum

Scrum agile methodology on three specific roles of product owner, scrum master and scrum team. Product owner should been in up to date about the product in priority based, scrum master handles the sprint which is actually a time scale job to be done to achieve specific goal set by scrum master under scrum team, scrum team is product development team that actually preparing the results and completing task in given time called sprint. Scrum performance is totally depends on the value of sprint, the more accurate sprint timing set to achieved the task the product development become smooth otherwise the delay of the product may happen if sprint is able to achieve its target.

[...]

Details

Seiten
33
Jahr
2018
ISBN (eBook)
9783668746077
ISBN (Buch)
9783668746084
Dateigröße
685 KB
Sprache
Englisch
Katalognummer
v432082
Institution / Hochschule
Shaheed Zulfikar Ali Bhutto Institute of Science & Technology – Dubai Campus
Note
3.5
Schlagworte
quality assurance agile methodology

Autor

Teilen

Zurück

Titel: Quality Assurance in Agile Methodology