Knowledge Management in Software Testing

University essay from Blekinge Tekniska Högskola/Institutionen för programvaruteknik

Abstract: Context: Software testing is a knowledge intensive process and the use of Knowledge Management (KM) methods and principles makes software testing even more beneficial. Thus there is a need of adapting KM into software testing core process and attain the benefits that it provides in terms of cost, quality etc. There has been an extensive literature published in the context of KM in software testing. But it is still unclear about the importance of KM with respect to testing techniques as well as testing aspects i.e. each activity that takes part during testing and the outcomes that they result such as test artifacts is considered as testing aspect. Thus there is a requisite for studies to focus on identifying the challenges faced due to lack of KM along with the importance of KM with respect to testing aspects, testing techniques and thus can provide recommendations to apply Knowledge Management to those that get benefited from it.   Objectives: In this thesis, we investigate the usage and implementation of KM in Software testing. The major objectives of current thesis include, To identify various software testing aspects that receive more attention while applying KM. To analyze the software testing techniques i.e. test design, test execution and test result analysis and evaluate them and highlight which of these have more involvement of KM. To identify the software testing techniques where tacit or explicit knowledge is currently used. To gather challenges faced by industry due to lack of KM initiatives in software testing.   Methods: We conducted a Systematic Literature Review (SLR) through a snowballing method based on the guidelines from Wohlin in order to identify various software testing aspects and testing techniques that have more involvement of KM and challenges that are faced due to lack of KM. A questionnaire intended for web-based survey was prepared from the gathered literature results to complement and further supplement them and to categorize the testing techniques based on the type of knowledge they utilize. The studies were analyzed in relation to their rigor and relevance to assess the quality of the results. The data obtained from survey were statistically analyzed using descriptive statistics and Chi-square test of significance.   Results: We identified 35 peer reviewed papers among which 31 were primary and 4 were secondary studies. The literature review results indicated 9 testing aspects being in focus when applying KM within various adaptation contexts. In addition, few testing techniques were found to get benefited from the application of KM. Several challenges were identified from the literature review such as improper selection and application of better suited techniques, low reuse rate of Software Testing knowledge, barriers in Software testing knowledge transfer, impossible to quickly achieve the most optimum distribution of human resources during testing etc. 54 full answers were received to the survey. The survey showed that Knowledge Management was being applied in software testing in most of the industries. It was observed that test result analysis, test case design, test planning and testing techniques stood out as the most important testing aspects being focused while KM is applied. Regarding software testing techniques, 17 test design techniques, 5 test execution techniques and 5 test result analysis techniques gain more attention in the context of KM. Moreover, the results suggest that tacit knowledge was utilized for most of these techniques. Several new challenges are obtained from the survey such as lacking quality in terms of testing results or outcomes, difficulties in finding relevant information and resources during testing, applying more effort than required during testing, having a huge loss of know-how by neglecting explicit and tacit knowledge during test design etc.   Conclusions. To conclude, various challenges are being faced due to the lack of KM. Our study also brings supporting evidence that applying KM in Software Testing is necessary i.e. to increase test effectiveness, selection and application of better suited techniques and so on. It was also observed that perceptions vary between the literature and the survey results obtained from the practitioners regarding testing aspects and testing techniques, as few aspects and techniques which are being categorized as the most important in the literature are not given the same priority by the respondents. Thus the final list of testing aspects and testing techniques is provided and empirical findings can likewise help practitioners to specifically apply KM more for those that are very much in need of it. Besides, it was found that most of the techniques require and utilize tacit knowledge to apply them and techniques such as shadowing, observing, training and recording sessions can help to store tacit knowledge for those that are in need of it. Thus researchers can recognize the advantages from this thesis and can further extend to various software life cycle models.

  AT THIS PAGE YOU CAN DOWNLOAD THE WHOLE ESSAY. (follow the link to the next page)