Teaching Agile Software Development Quality Assurance

2009 ◽  
pp. 2700-2713
Author(s):  
Orit Hazzan ◽  
Yael Dubinsky

This chapter presents a teaching framework for agile quality—that is, the way quality issues are perceived in agile software development environments. The teaching framework consists of nine principles, the actual implementation of which is varied and should be adjusted for different specific teaching environments. This chapter outlines the principles and addresses their contribution to learners’ understanding of agile quality. In addition, we highlight some of the differences between agile software development and plan-driven software development in general, and with respect to software quality in particular. This chapter provides a framework to be used by software engineering instructors who wish to base students learning on students’ experiences of the different aspects involved in software development environments.

Author(s):  
O. Hazzan

This chapter presents a teaching framework for agile quality—that is, the way quality issues are perceived in agile software development environments. The teaching framework consists of nine principles, the actual implementation of which is varied and should be adjusted for different specific teaching environments. This chapter outlines the principles and addresses their contribution to learners’ understanding of agile quality. In addition, we highlight some of the differences between agile software development and plan-driven software development in general, and with respect to software quality in particular. This chapter provides a framework to be used by software engineering instructors who wish to base students learning on students’ experiences of the different aspects involved in software development environments.


Author(s):  
Iwona Dubielewicz ◽  
Bogumila Hnatkowska ◽  
Zbigniew Huzar ◽  
Lech Tuzinkiewicz

Agile methodologies have become very popular. They are defined in terms of best practices, which aim at developing good quality software faster and cheaper. Unfortunately, agile methodologies do not refer explicitly to quality assurance, which is understood as a planned set of activities performed to provide adequate confidence that a product conforms to established requirements, and which is performed to evaluate the process by which products are developed. The chapter considers the relations of agile practices with software life cycle processes, especially those connected to quality assurance, and tries to answer the question of which agile practices ensure software quality. Next, agile practices associated with quality assurance are assessed from different perspectives and some recommendations for their usage are given. It is observed that modeling has a particular impact on quality assurance.


Author(s):  
Iwona Dubielewicz ◽  
Bogumiła Hnatkowska ◽  
Zbigniew Huzar ◽  
Lech Tuzinkiewicz

Agile methodologies have become very popular. They are defined in terms of best practices, which aim at developing good quality software faster and cheaper. Unfortunately, agile methodologies do not refer explicitly to quality assurance, which is understood as a planned set of activities performed to provide adequate confidence that a product conforms to established requirements, and which is performed to evaluate the process by which products are developed. The chapter considers the relations of agile practices with software life cycle processes, especially those connected to quality assurance, and tries to answer the question of which agile practices ensure software quality. Next, agile practices associated with quality assurance are assessed from different perspectives and some recommendations for their usage are given. It is observed that modeling has a particular impact on quality assurance.


Author(s):  
Pankaj Kamthan

The movement towards agility is one of the most significant changes in industrial software engineering over the past decade. In the practice of agile methodologies, there are different types of knowledge that is created, communicated, and consumed. For the benefit of the stakeholders involved, there is a pressing need to manage this knowledge, both during development and beyond deployment of a software system. This chapter proposes a framework comprising related conceptual models as means for understanding the use of Wiki for managing knowledge in agile software development. In doing so, Wiki is considered beyond that of a technology or a tool, as a facilitator of knowledge, and placed in a larger context of the Social Web environment. For the sake of practicality, a number of illustrative examples are given, and implications of deploying a Wiki are highlighted.


Author(s):  
Pankaj Kamthan

The movement towards agility is one of the most significant human-centered and socially oriented changes in industrial software engineering. In the practice of agile methodologies, there are different types of content (data, information, or knowledge) that are created, communicated, and consumed. It is imperative for an organization to manage such content, both during development and beyond deployment. This chapter proposes a conceptual model for understanding and exploring the use of Wiki as a vehicle for managing content in agile software development. In doing so, the parity between agile software development and Wiki is shown, human and social aspects of each are emphasized, the Social Web-Context of Wiki is demonstrated, illustrative examples are given, and the implications of committing to a Wiki are considered.


Author(s):  
J. Rech

Software quality assurance is concerned with the efficient and effective development of large, reliable, and high-quality software systems. In agile software development and maintenance, refactoring is an important phase for the continuous improvement of a software system by removing quality defects like code smells. As time is a crucial factor in agile development, not all quality defects can be removed in one refactoring phase (especially in one iteration). Documentation of quality defects that are found during automated or manual discovery activities (e.g., pair programming) is necessary to avoid wasting time by rediscovering them in later phases. Unfortunately, the documentation and handling of existing quality defects and refactoring activities is a common problem in software maintenance. To recall the rationales why changes were carried out, information has to be extracted from either proprietary documentations or software versioning systems. In this chapter, we describe a process for the recurring and sustainable discovery, handling, and treatment of quality defects in software systems. An annotation language is presented that is used to store information about quality defects found in source code and that represents the defect and treatment history of a part of a software system. The process and annotation language can not only be used to support quality defect discovery processes, but is also applicable in testing and inspection processes.


Sign in / Sign up

Export Citation Format

Share Document