scholarly journals Using an Incremental Testing Strategy to Improve Students’ Perception of Software Quality

2021 ◽  
Author(s):  
Italo Santos ◽  
Allan Mori ◽  
Simone R. S. Souza

Teaching software testing should include a broad view of the main techniques, criteria, and tools. In general, students have few opportunities to test their code-projects suitably during the undergraduate course and, therefore, teaching software testing in practice is crucial to students recognize the advantages and limitations of different testing techniques. This paper reports the experience of teaching software testing in practice, with students applying an incremental testing strategy to validate their software projects. Students selected a software project developed during their undergraduate and an incremental testing strategy, including testing criteria learned in the class. The students should choose the testing techniques, apply them and write a report with the results and perceptions. Through this experience, it was possible to show to the students, in practice, the importance of combining more than one technique during the software testing activity.

2020 ◽  
Author(s):  
Mubarak Albarka Umar

<p><i>Software Testing is the process of evaluating a software program to ensure that it performs its intended purpose. Software testing verifies the safety, reliability, and correct working of software. The growing need for quality software makes software testing a crucial stage in Software Development Lifecycle. There are many methods of testing software, however, the choice of method to test a given software remains a major problem in software testing. Although, it is often impossible to find all errors in software, employing the right combination of methods will make software testing efficient and successful. Knowing these software testing methods is the key to making the right selection. This paper presents a comprehensive study of software testing methods. An explanation of Testing Categories was presented first, followed by Testing Levels (and their comparison), then Testing Techniques (and their comparison). For each Testing Levels and Testing Techniques, examples of some testing types and their pros and cons were given with a brief explanation of some of the important testing types. Furthermore, a clear and distinguishable explanation of two confused and contradictory terms (Verification and Validation) and how they relate to Software Quality was provided.</i></p>


Author(s):  
Yuk Kuen Wong

While information communication technology (ICT) can be considered a well-established discipline, software development projects are still prone to failure. Even if a software project is not classified as a failure, the general level of software quality leaves room for much improvement. It has been suggested that one of the most prevalent and costly mistakes made in software projects today is deferring the activity of detecting and correcting software problems until the end of the project. Hence, the cost of rework in the later stages of a project can be greater than 100 times the project costs. About 80% of avoidable rework comes from 20% of defects. As a result, techniques such as software review for improving software quality are important. Software review (inspection/verification) was originally introduced by Fagan (1976). The review process essentially includes six major steps: 1. Planning: Organize and prepare the software review, typically for preparing the review materials and review procedure, forming review team and scheduling review meeting, selecting review participants, and assigning roles. 2. Overview: Author explains overall scope and the purpose of the review. 3. Individual preparation: Individual reviewers analyze and review the software artefact. 4. Group review meeting: Find errors, sometimes also called “logging meeting.” Review teams correct and the reader summarizes the work. 5. Rework: Defect correction, which involves the author in resolving problems by reviewing, revising, and correcting the identified defect or by decreasing the existence of errors of the software artefact. 6. Follow-up: Validate the correction quality and decide if re-inspection is required


2021 ◽  
Author(s):  
Italo Santos ◽  
Simone Do Rocio Senger Souza ◽  
Silvana Morita Melo

[Context:] The choice of testing technique to be adopted in a software testing project persists based on the tester's knowledge and often does not consider all of the testing techniques available in the industry or academia. Therefore, a characterization scheme was proposed and implemented in the SeleCTT tool, which is composed of a set of attributes that considers characteristics of concurrent programs, and they are used to calculate which of these attributes are suitable to guide the selection of testing techniques for a particular software project. [Objective:] The selection of the testing technique at each stage of a software's life cycle depends on many factors. Our work aims to help testers to select a better testing technique according to the characteristics of a software project, contributing to the selection of the most suitable testing technique to increase the efficiency of the software test execution process, which in turn influences the development and delivery of a more robust and quality product. Considering that the testing techniques are complementary, another goal is to allow a set of testing techniques to be selected and not just one. [Methodology:] To achieve this goal, a systematic mapping study was conducted to identify and analyze papers that represent the current state of the literature about testing techniques selection. We surveyed software testing practices carried in Brazil software companies and identified the testing practices to know and have an overview on the latest testing techniques, tools, and metrics used, the challenges faced by testers, and the selection testing technique process. [Results and Conclusions:] With this study, it is expected to specify project attributes that can be used to improve the existing recommendation system in the SeleCTT tool and propose ways of combining testing techniques, contributing to industry and academia, and bring insights into the context of testing techniques selection.


2020 ◽  
Author(s):  
Mubarak Albarka Umar

<p><i>Software Testing is the process of evaluating a software program to ensure that it performs its intended purpose. Software testing verifies the safety, reliability, and correct working of software. The growing need for quality software makes software testing a crucial stage in Software Development Lifecycle. There are many methods of testing software, however, the choice of method to test a given software remains a major problem in software testing. Although, it is often impossible to find all errors in software, employing the right combination of methods will make software testing efficient and successful. Knowing these software testing methods is the key to making the right selection. This paper presents a comprehensive study of software testing methods. An explanation of Testing Categories was presented first, followed by Testing Levels (and their comparison), then Testing Techniques (and their comparison). For each Testing Levels and Testing Techniques, examples of some testing types and their pros and cons were given with a brief explanation of some of the important testing types. Furthermore, a clear and distinguishable explanation of two confused and contradictory terms (Verification and Validation) and how they relate to Software Quality was provided.</i></p>


2020 ◽  
Vol 8 (5) ◽  
pp. 2462-2465

Prediction of software detection is most widely used in many software projects and this will improve the software quality, reducing the cost of the software project. It is very important for the developers to check every package and code files within the project. There are two classifiers that are present in the Software Package Defect (SPD) prediction that can be divided as Defect–prone and not-defect-prone modules. In this paper, the merging of Cost-Sensitive Variance Score (CSVS), Cost-Sensitive craniologist Score (CSLS) and Cost-Sensitive Constraint Score (CSCS). The comparitive analysis can be shown in between the three algorithms and also individually.


2016 ◽  
Author(s):  
Victor V. Ribeiro ◽  
Guilherme H. Travassos

Software testing aims to reveal failures due to the lack of conformity (defects) among functional and non-functional requirements and the implemented system. Thus, defects can be identified and fixed, improving software quality. However, despite several works emphasizing the importance of non-functional requirements (NFRs), there is an insufficient amount of software testing approaches dealing with them. The lack of NFR evaluation may be the cause of low-quality software that does not meet users need, influencing software project success. Goal: To organize a body of knowledge regarding NFRs and software testing approaches available in the technical literature and reveal the gaps between testable NFRs and software testing approaches. Method: To perform structured literature reviews to identify NFRs and software testing approaches dealing with testable NFRs. To combine both results, reveal research opportunities and organize a body of knowledge regarding NFRs and software testing approaches. Results: From 224 identified NFRs, 87 were described, and 47 software testing approaches observed. Only eight approaches are empirically evaluated. No testing approaches were identified for 11 testable NFRs. Furthermore, regarding the testing process, we did not observe any testing approach covering the test planning phase. Conclusion: Despite their importance, many testable NFRs seem not be tested due to the lack of appropriate software testing approaches yet. Also, the existing testing approaches do not cover all testing processes activities and, in general, lack empirical evidence about their feasibility and performance, making their use in software projects risky.


2009 ◽  
pp. 1151-1159
Author(s):  
Yuk Kuen Wong

While information communication technology (ICT) can be considered a well-established discipline, software development projects are still prone to failure. Even if a software project is not classified as a failure, the general level of software quality leaves room for much improvement. It has been suggested that one of the most prevalent and costly mistakes made in software projects today is deferring the activity of detecting and correcting software problems until the end of the project. Hence, the cost of rework in the later stages of a project can be greater than 100 times the project costs. About 80% of avoidable rework comes from 20% of defects. As a result, techniques such as software review for improving software quality are important.


Author(s):  
Italo De Oliveira Santos ◽  
Simone Do Rocio Senger de Souza

[Context:] The choice of testing technique to be adopted in a software testing project persists based on the tester’s knowledge and often does not consider all of the testing techniques available in the industry or academia. In a previous project of the research group, a framework was defined to support the systematic selection of concurrent software testing techniques. Therefore, a characterization scheme was proposed and implemented in the SeleCTT tool, which is composed of a set of attributes that considers characteristics of concurrent programs and they are used to calculate which of these attributes are suitable to guide the selection of testing techniques for a particular software project. [Objective:] The selection of the testing technique at each stage of a software’s life cycle depends on many factors, such as resources, schedule, cost of the project, among other attributes. This work will extend the previously defined attributes, taking into account other characteristics that may be considered, for example, information from previous similar projects. Considering that the testing techniques are complementary, another goal is to allow a set of testing techniques to be selected and not just one. [Methodology:] To achieve this goal, a systematic mapping study was conducted to identify and analyze papers that represent the current state of the literature about testing techniques selection. Moreover, we surveyed software testing practices carried in Brazil software companies. The survey identified the testing practices in Brazilian industries, for the purpose of knowing and having an overview on the latest testing techniques, tools and metrics used, the challenges faced by testers and the selection testing technique process. [Results and Conclusions:] With this study, it is expected to specify project attributes that can be used to improve the existing recommendation system in the SeleCTT tool and propose ways of combining testing techniques, contributing to industry and academia, and bring insights on the context of testing techniques selection.


10.28945/2924 ◽  
2005 ◽  
Author(s):  
R. C Nienaber ◽  
A. Barnard

Software technology and computing resources have evolved and developed considerably over the past years and may be considered as the backbone of many business ventures today. However, the software project management environment has also changed and is continuously evolving. Currently software projects are developed and deployed in distributed, pervasive and collaborative environments. This means that traditional software project management methods cannot, and do not, address the added complexities found in a pervasive, distributed global environment. Projects thus have a high rate of failure. More specifically, software projects often do not comply with the traditional standard measurements of success, namely time, cost and specifications. There is thus a need for new methods and measures to support software project management. In this paper, software agent technology is explored as a potential tool for enhancing software project management practices in general. We propose and discuss a software agent framework, specifically to support software quality management. Although still in its initial phases, research indicates some promise in enabling software developers to meet market expectations and produce projects timeously, within budget and to users’ satisfaction.


2020 ◽  
Author(s):  
Mubarak Albarka Umar

<p><i>Software Testing is the process of evaluating a software program to ensure that it performs its intended purpose. Software testing verifies the safety, reliability, and correct working of software. The growing need for quality software makes software testing a crucial stage in Software Development Lifecycle. There are many methods of testing software, however, the choice of method to test a given software remains a major problem in software testing. Although, it is often impossible to find all errors in software, employing the right combination of methods will make software testing efficient and successful. Knowing these software testing methods is the key to making the right selection. This paper presents a comprehensive study of software testing methods. An explanation of Testing Categories was presented first, followed by Testing Levels (and their comparison), then Testing Techniques (and their comparison). For each Testing Levels and Testing Techniques, examples of some testing types and their pros and cons were given with a brief explanation of some of the important testing types. Furthermore, a clear and distinguishable explanation of two confused and contradictory terms (Verification and Validation) and how they relate to Software Quality was provided.</i></p>


Sign in / Sign up

Export Citation Format

Share Document