Knowledge Transfer Between Senior and Novice Software Testers: A Qualitative Analysis in Sri Lankan Software Companies

Knowledge Transfer Between Senior and Novice Software Testers: A Qualitative Analysis in Sri Lankan Software Companies

Shanmuganathan Vasanthapriyan, Kuhaneswaran Banujan
Copyright: © 2020 |Pages: 16
DOI: 10.4018/978-1-7998-2531-9.ch012
(Individual Chapters)
No Current Special Offers


Software testing is a sub-activity of software engineering, and it is also a knowledge-intensive activity. Software testing experts need to gather domain knowledge to be able to successfully test and deliver a software system. In particular, novice software testers, who have joined the company, need to acquire enough knowledge to perform their tasks. Since software development is an error-prone task, in order to achieve quality software products, validation and verification should be carried throughout the development. This means that knowledge transfer to novice software testers must be quickly and effectively performed to facilitate the onboarding process. One way to understand the knowledge transfer process is by analyzing the software development context and the involved team members. This study, using qualitative methods, investigates the current practice of knowledge transfer in software testing practices in one software company.
Chapter Preview


Knowledge is a critical organizational resource and the primary source of the sustainable competitive advantage in a competitive economy. Management of this knowledge is the key to long-term sustainability and success of the organization. Effective and efficient management of knowledge is not possible without a proper process of knowledge transfer, where knowledge transfer is a cornerstone for managing knowledge. Knowledge creation and transfer in an organization are inseparable from learning; all knowledge processes are in fact the consequence of learning (Mehra & Dhawan, 2003). Knowledge Transfer in organizations can be defined as “the process through which one unit (e.g., group, department, or division) is affected by the experience of another”. Knowledge Transfer, in essence, is the sharing of one’s ideas, insights, solutions, experiences with another individual (Nidhra, Yanamadala, Afzal, & Torkar, 2013).

The software development process is a team effort that requires a combination of knowledge and skills of team members who involve in the software development activities (Ranasinghe & Jayawardana, 2011; Vasanthapriyan, Xiang, Tian, & Xiong, 2017a; Wickramasinghe & Widyaratne, 2012). The collaborative and knowledge-intensive characteristic of software development activities signifies the importance of effective knowledge transfer in order to disseminate required software knowledge across development teams (Kukko & Helander, 2012). Knowledge transfer is the fundamental mean in which employees can contribute their knowledge towards the competitive advantage of the organization through innovations. Knowledge transfer between employees within and across development teams allows organizations to exploit and capitalize on knowledge-based resources.

Transfer of information may take place through social systems, like organizations, groups, and individuals. Transfer of information among entities is a dyadic mechanism through which seekers/recipients learn and appreciate senders' knowledge and adapt it to a different situation. Four consecutive phases of the knowledge transfer cycle are quest, reading, training, and understand. Transfer of expertise increases team performance through cooperative training, such as software project progress and judgment reliability. Knowledge transfer varies markedly from knowledge sharing, which is often calculated by the communication of individuals' purpose and actions, as the latter stresses on the use of data and the development of knowledge values. Stresses on the use of data and the development of knowledge values relate to the “provision of job information and know-how to support others”. Sharing knowledge is unable to close the “knowledge gap”, which has an inconsistent effect on team performance in existing studies. They see the transfer of knowledge as a tool for advancing current understanding (Wang, Huang, Davison, & Yang, 2018).

Another distinction in knowledge transfer and knowledge sharing is that sender and recipient are similarly important in the transmission of social knowledge while exchanging knowledge focuses solely on the purpose and actions of senders to add knowledge. Several literature reviews show that in data-intensive contexts analysis of knowledge transfer enablers, obstacles, and mitigation strategies cannot neglect considerations regarding participants ' resources, their interactions, and their contexts. Work on knowledge sharing has unraveled that sharing purpose and behavior can be fostered by sharers ' personality of enjoying support, understanding of rewards, recipient confidence, and social norms such as reciprocity and participation (Wang et al., 2018).

Key Terms in this Chapter

Senior Software Tester: A software professional who has a lot of working experience in the software testing industry.

Test Tools: A product that supports one or more test activities right from planning, requirements, creating a build, test execution, defect logging, and test analysis.

Knowledge Transfer: Sharing of one’s ideas, insights, solutions, experiences with another individual.

Novice Software Tester: A software professional who has just stepped into the software testing industry.

Quality Assurance Team: A team conducts activities that validate quality requirements.

Verification: Verification is the process of evaluating a development stage of products to determine whether they comply with the requirements specified. Verification helps to ensure that the product being developed is in compliance with the standards and specifications of the model. Verification includes “reviews, meetings, and inspections.”

Test Automation: Test automation is the use of software separate from the software being tested to control the execution of tests and the comparison of actual outcomes with predicted outcomes. Test automation can automate some repetitive but necessary tasks in a formalized testing process already in place, or perform additional testing that would be difficult to do manually. Test automation is critical for continuous delivery and continuous testing.

Software Development Lifecycle: The software development lifecycle is a systematic process for building software that ensures the quality and correctness of the software built. SDLC process aims to produce high-quality software which meets customer expectations. The software development should be complete in the pre-defined time frame and cost.

Software Testing: Software testing provides the mechanism for verifying that the requirements identified during the initial phases of the project were properly implemented and that the system performs as expected. The test scenarios developed through these competitions ensure that the requirements are met end-to-end.

Theory of Planned Behavior: An extended concept of predicting behavior in any social situation. It proposes intention to behavior as the most recent antecedent of a specific behavior.

Validation: At the end of the development process, validation is the method of reviewing code to decide whether it satisfies customer expectations or specifications. The aim of Validation is to guarantee that the product actually meets the requirements of the consumer and to verify that the specifications are correct in the first place. “Testing like black-box testing, white box testing, gray box testing, etc.” are involved in validation

Knowledge Management: Knowledge management (KM) is the process of creating, sharing, using and managing the knowledge and information of an organization. It refers to a multidisciplinary approach to achieving organizational objectives by making the best use of knowledge. Knowledge management is recognized as the fundamental activity for obtaining, growing and sustaining intellectual capital in organizations.

Agile Software Method: Agile software method comprises various approaches to software development under which requirements and solutions evolve through the collaborative effort of self-organizing and cross-functional teams and their end-user(s). It advocates adaptive planning, evolutionary development, early delivery, and continual improvement, and it encourages rapid and flexible response to change.

Software Engineering: Software engineering is concerned with the study of systematic approaches towards software development and maintenance.

Complete Chapter List

Search this Book: