A Knowledge Management Approach for Testing Open Source Software Systems Tamer Abdou
Pankaj Kamthan
Suez Canal University Ismailia, Egypt
[email protected]
Concordia University Montreal, Canada
[email protected]
Abstract—The development of open source software (OSS), and their deployment by general public as well as by different types of organizations, has increased manifold over the past decade or so. In spite of the ubiquity of OSS, the quality of many OSS remains questionable. Testing provides a curative approach for OSS quality assurance, and a comprehensive approach to testing is a knowledge-intensive endeavor. The management of knowledge in the OSS test process forms a perpetual cycle of creation, dissemination, and acquisition of test knowledge.
II. TEST PROCESS IN OSS DEVELOPMENT For proper OSS testing, the underlying OSS test process needs to be comprehensive, established, and practical. The ISO/IEC/IEEE 29119 Standard is an international standard for software testing. It provides a general framework that can be adapted for the OSS test process [2] (Figure 2).
Keywords—conceptual model; knowledge management; software engineering; software quality; stakeholder; test process
I. INTRODUCTION The open source software (OSS) form a unique symbiotic relationship: OSS has played an indispensable role in the engineering of several software systems, and, at the same time, many of these systems are themselves available as OSS. Indeed, there are a number of notable real-time operating systems (such as Embedded Linux), mobile content management systems (such as DrupalGap), and distributed revision control systems (such as Git) available as OSS [1]. However, the quality (specifically, the attributes such as efficiency, reliability, safety, security, sustainability, and/or usability) of many OSS remains a perennial concern. The use of OSS with ‘poor’ quality can lead to potentially irreparable economic, legal, personal, political, and/or social consequences. For continuing the support and maintaining the trust of the stakeholders of an OSS project (Figure 1), a sustained commitment to testing is essential. Fig. 2.
The activities and artifacts in the OSS test process.
III. KNOWLEDGE MANAGEMENT IN OSS DEVELOPMENT The initial step towards managing knowledge is understanding of knowledge and that, in turn, depends classification of knowledge. There are several ways classifying knowledge, from different perspectives, different purposes, and for different stakeholders.
Fig. 1.
A conceptual model of typical OSS project stakeholders.
978-1-4799-7575-4/14/$31.00 ©2014 IEEE
an on of for
From the perspective of articulation by stakeholders (such as that of an OSS project), knowledge can be classified exhaustively into the following mutually exclusive categories: (1) Tacit (knowledge that can not be articulated), (2) Implicit (knowledge that can be, but has not been articulated, and (3) Explicit (knowledge that has been articulated).
For example, innate skill in using a test tool is tacit knowledge, knowing a test heuristic (initially) is implicit knowledge, and the description of a test case is explicit knowledge. A. Understanding Test Knowledge By asking certain basic questions (underlying the Zachman framework for enterprise architecture), and using the criteria of understanding and context, test content can be organized at different but related levels (Figure 3). It has been reported that acquiring an in-depth understanding of the behavior of test knowledge is especially crucial for a successful execution of the underlying test process [3] [4] [5].
Fig. 5.
The knowledge conversion in a test process.
V. CONCLUSION AND FUTURE WORK The success of an OSS project is a function of a sustained commitment to testing. In the context of OSSD-KMLC, the OSS test process relies on understanding, cultivating, and preserving the perpetual dynamicity of test knowledge. Fig. 3.
An organization of test content.
B. An OSS Development Knowledge Management Life Cycle The salient elements of knowledge management in OSS development (OSSD) and their interrelationships can be elicited, identified, and explained by an integrated knowledge management life cycle (KMLC) [6] (Figure 4).
An effective management of test knowledge is contingent on selection and use of appropriate technologies and tools. In recent years, the Social Web, in general, and Wiki, in particular, has opened new vistas for distributed cognition, collaborative knowledge management, and social software engineering. The common heritage of OSS and Wiki, social nature of the OSSD process, and economic considerations, suggest Wiki as a viable candidate for leveraging test knowledge. In particular, studying the analytics of the interplay between specifics of the OSS test process and the prospective uses of a (Semantic) Wiki is of research interest. REFERENCES [1]
[2]
Fig. 4.
An OSS development knowledge management life cycle. [3]
IV. KNOWLEDGE CONVERSION IN OSS TEST PROCESS In OSSD, there is a critical need for converting implicit knowledge to explicit knowledge. If knowledge remains implicit, then it cannot be archived, queried, or shared, and can dissipate over time due to limitations of human memory or because of abandonment of an OSS project by its stakeholders. In the context of OSS testing, the process of knowledge conversion can be described by a manifestation of the SECI model of knowledge management [5] [6] (Figure 5).
[4]
[5]
[6]
D. Spinellis, G. Gousios, V. Karakoidas, P. Louridas, P. J. Adams, I. Samoladas, and I. Stamelos, “Evaluating the Quality of Open Source Software,” Electron. Notes Theor. Comput. Sci., vol. 233, no. 0, pp. 5– 28, 2009. T. Abdou, P. Grogono, and P. Kamthan, “A Conceptual Framework for Open Source Software Test Process,” in The 36th Annual Computer Software and Applications Conference (COMPSAC12) - The 4th IEEE International Workshop on Software Test Automation (STA12), 2012, pp. 458–463. Y. Liu, J. Wu, X. Liu, and G. Gu, “Investigation of Knowledge Management Methods in Software Testing Process,” in The 1st International Conference on Information Technology and Computer Science (ITCS09), 2009, pp. 90–94. S. K. Sowe, I. Stamelos, and L. Angelis, “Understanding Knowledge Sharing Activities in Free-Open Source Software Projects: An Empirical Study,” J. Syst. Softw., vol. 81, no. 3, pp. 431–446, Mar. 2008. T. Abdou, P. Grogono, and P. Kamthan, “Managing Knowledge in Open Source Software Test Process,” in Knowledge-Based Processes in Software Development, S. Saeed and I. Alsmadi, Eds. Hershey, PA: IGI Global, 2013, pp. 135–149. K. Dalkir, Knowledge Management in Theory and Practice, Second. The MIT Press, 2011.