InfoSci®-Journals Annual Subscription Price for New Customers: As Low As US$ 4,950

This collection of over 175 e-journals offers unlimited access to highly-cited, forward-thinking content in full-text PDF and XML with no DRM. There are no platform or maintenance fees and a guarantee of no more than 5% increase annually.

Receive the complimentary e-books for the first, second, and third editions with the purchase of the Encyclopedia of Information Science and Technology, Fourth Edition e-book. Plus, take 30% off until July 1, 2018.

Take 20% Off All Publications Purchased Directly Through the IGI Global Online Bookstore: www.igi-global.com/

Abstract

The increasing adoption and use of Open Source Software (OSS) motivates study of its development. This chapter explores the state-of-the art in OSS development processes, in general, and OSS testing processes, in particular. A conceptual model for software Testing Knowledge Management (TKM) that aims to provide an understanding of the testing domain is introduced. The TKM model is informed by earlier studies and guided by international testing standards. Moreover, the TKM model is equipped with different forms of knowledge, reusable across software projects. Using the TKM model as an integrative conceptual model enables understanding of how knowledge life cycle stages are mapped onto the test process of OSS, what type of knowledge is created at each stage, and how knowledge is converted from one stage to another. The chapter is supported by representative examples of OSS that are mature and currently in widespread use.

Background

In this section, OSS software development process is discussed, different activities related to the test process in OSS are reviewed and compared with those in conventional software, and basics of knowledge as per OSS are given.

Open Source Software Development Process

The earlier research on OSS focused on the aspects of development, project, virtual community, and the roles of contributors (Raymond, 1999; Zhao & Elbaum, 2003; Lonchamp, 2005). In several initial studies, it was observed that there are stark differences between conventional software engineering and OSS development. In particular, it has been found that, in contrast to conventional software processes, the OSS development process is unstructured (Mockus, Fielding, & Herbsleb, 2002; Zhao & Elbaum, 2003) and lacks formal documentation, including that for testing (Lonchamp, 2005; Wang, Guo, & Shi, 2007).

The OSS development process follows a layered approach with an onion shaped structure (Crowston & Howison, 2005; Showole, Sahibuddin, & Ibrahim, 2011; Crowston & Howison, 2006), as shown in Figure 1. At the center of this structure are the core developers who direct the design, contribute most of the code, and steer the evolution of the software. In the innermost ring are the co-developers who are responsible for submitting patches, which are reviewed and checked-in by core developers. In the intermediate ring are the active users who do not contribute code, but provide use cases and bug reports based on their own test suites. Finally, in the outermost ring are the passive users and observers who are not interested in contributing code, but like to stay informed of the development.

Figure 1.

The layers in the OSS development process

It is only recently that a generic model of OSS development process based on ’mature’ OSS projects has been proposed (Lonchamp, 2005). (An OSS project is considered mature if it involves more than ten developers.) The model comprises a set of elements, where each element could represent a process role, tool, activity, or document. In this model, developers work concurrently on either coding or testing. Moreover, this model is consistent with previous OSS development process models (Gillian, 2001; Scacchi, 2003), and enables systematic analysis, reuse, and comparison.