Investigating Software Testing Practices in Software Development Organizations: Sri Lankan Experience

Investigating Software Testing Practices in Software Development Organizations: Sri Lankan Experience

Shanmuganathan Vasanthapriyan
Copyright: © 2020 |Pages: 15
DOI: 10.4018/978-1-7998-2531-9.ch011
OnDemand:
(Individual Chapters)
Available
$37.50
No Current Special Offers
TOTAL SAVINGS: $37.50

Abstract

Software testing, which is a knowledge-intensive and collaborative activity, is a sub-area of software engineering. Software testing knowledge can be applied to different testing tasks and purposes. 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 study, using qualitative methods, investigates the current practice of software testing practices in two software companies on the basis that they both claimed to apply software testing practices in their software development work. Interview results revealed some interesting latest trends in software testing from both companies.
Chapter Preview
Top

Introduction

Software testing which is also a knowledge-intensive and collaborative activity is a sub-area of software engineering. Software testing knowledge can be applied to different testing tasks and purposes. Since software development is an error-prone task, in order to achieve quality software products, Validation and Verification should be carried out throughout the development. Software testers must, therefore, work with all the other software professionals involved in the development operations. Importantly, software testers are not only acquainted with countless test techniques for software but are also conscious of approaches to software development. Software testers, for example, may either need help with a test case design data appropriate to the comparable project that was earlier treated for testing reasons or design a test case. This motivates software firms to handle their reuse understanding in creative ways of solving issues.

In several kinds of research in several nations, software testing in software businesses has been widely investigated and analyzed. A number of researches were recognized in our literature search (Causevic, Sundmark, & Punnekkat, 2010; Garousi & Varma, 2010; Garousi & Zhi, 2013; Geras, Smith, & Miller, 2004).

A code deployment transferred from one setting to another must endure a rigorous testing process to decide what problems arose. However, this form of transition was not included at the initial Software Development Lifecycle (SDLC) and thus it is not obvious whether all the historically standard application review steps were suitable for this reason (Mullen, 2018). Application verification is an essential aspect of the lifecycle of software development. Application testing has traditionally centered on software programs built on “personal” devices, i.e., on-premises. Since the industry trend changed dramatically in favor of technology hosted by the internet, software testing methods, approaches and implementation strategies had to evolve and upgrade according to these changes (Mullen, 2018).

Learning, cultural attitudes, employee behaviors, and reward systems are some of the key issues organizations should consider to present themselves as highly creative in the current marketplace. Importantly, it has been revealed from SLAASCOM (Sri Lanka Association for Software and Services Companies) that the Sri Lankan software engineering sector or other Sri Lankan organizations have not undertaken any inquiry to evaluate elements of Knowledge Management (KM) practices in Sri Lankan software sectors. The writers think that this experience can be commonly used in software sectors to reference and update promising methods in science KM and promote creativity.

In the context of software testing, knowledge and experience can be captured by the KM practices. This knowledge is usually stored on papers or in peoples’ minds. When a problem arises, the team members look for experts in their own work environment, relying on people they know or look for documents. Desai and Shah (2011) identified various problems faced by organizations in KM including low rate of use and reuse of software testing knowledge, barriers in software testing knowledge transfer and poor sharing environment for software testing knowledge. Liu et al. (Liu, Wu, Liu, & Gu, 2009) also presented the current state of KM in software testing and the major existing problems. Abdullah et al. (Abdullah, Eri, & Talib, 2011) proposed and formulated a model in order to facilitate a knowledge managing of the best quality of software testing environment. Further, they stated that community of practice (CoP) can utilize the knowledge in KMS and it will reduce the mistakes or errors, so that a good product can be delivered. A series of systematic mapping research was carried out by Souza et al. (De Souza, de Almeida Falbo, & Vijaykumar, 2015; Souza, Falbo, & Vijaykumar, 2013) on the KM to software testing. They investigated some aspects associated with applying KM to software testing through this systematic mapping of the literature.

Key Terms in this Chapter

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.”

Software Testing Metric: Software testing metric is to be defined as a quantitative measure that helps to estimate the progress, quality, and health of a software testing effort. A metric defines in quantitative terms the degree to which a system, system component, or process possesses a given attribute.

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

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.

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.

Scrum: Scrum is an agile process framework for managing complex knowledge work, with an initial emphasis on software development, although it has been used in other fields and is slowly starting to be explored for other complex work, research and advanced technologies. It is designed for teams of ten or fewer members, who break their work into goals that can be completed within timeboxed iterations, called sprints, no longer than one month and most commonly two weeks, then track progress and re-plan in 15-minute time-boxed stand-up meetings, called daily scrums.

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.

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.

Software Testing Techniques: Software testing techniques help you design better test cases. Since exhaustive testing is not possible; manual testing techniques help reduce the number of test cases to be executed while increasing test coverage. They help identify test conditions that are otherwise difficult to recognize.

ISTQB Certification: The International Software Testing Qualifications Board is a software testing certification board that operates internationally. Founded in Edinburgh in November 2002, the ISTQB is a non-profit association legally registered in Belgium.

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.

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.

Agile Software Development: Agile software development 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.

Test Management: Test management most commonly refers to the activity of managing the computer software testing process. A test management tool is a software used to manage tests (automated or manual) that have been previously specified by a test procedure. It is often associated with automation software. Test management tools often include requirement and/or specification management modules that allow automatic generation of the required test matrix (RTM), which is one of the main metrics to indicate functional coverage of a system under test (SUT).

Complete Chapter List

Search this Book:
Reset