Improving Software Quality through Effective Testing

Verified

Added on  2025/06/23

|9
|2018
|440
AI Summary
Desklib provides solved assignments and past papers to help students succeed.
Document Page
OOSD COURSEWORK ASSIGNMENT 2018 -
COURSEWORK PART 2
tabler-icon-diamond-filled.svg

Paraphrase This Document

Need a fresh take? Get an instant paraphrase of this document with our AI Paraphraser
Document Page
Table of Contents
Introduction......................................................................................................................................3
Research Paper’s Contribution to Quality Improvement.................................................................4
The Review......................................................................................................................................7
Conclusion.......................................................................................................................................8
References........................................................................................................................................9
Document Page
Introduction
The research is proposed on the basis of a quality test for a system to achieve the best quality
product. There are 12 principles which are proposed for achieving the qualitative testing and then
refining them for listing the best principles to quantify the testing process. The research is based
on the analysis of the requirements and how far the process fulfills requirements. For the best
result, the author suggested their best outcomes after the refinements among these 12 principles
and implements the metrics for these principles. The motive of whole work is to identify the way
to get the best production with qualitative concern and quantifying these process in software
development.
Document Page
Research Paper’s Contribution to Quality Improvement
The working of all part in the system is an important task to concern, for making a system
capable to successfully fulfill all the requirements for which it is designed. The failure of any
part can result in affecting the quality of the output product. If the output product is unable to
fulfill all the requirements then the system is failed. For reducing system failure and providing
the best quality product, testing plays an important role. The testing finds the defect and issues in
the parts of the system as well as in system as one unity. The author focuses on the quality of the
product and the best way to increase the quality of the product. Twelve principles are formulated
on the basis of findings then the refining of these principles to get the appropriate selection.
Metrics are used for quantifying the process so the best output will fulfill all the requirement on
the qualitative and quantitative concern. The software engineering life cycle includes many
processes in which most of the errors are found in the testing phase.
The author wants to find the best solution to provide quality in the software development
process. The quantification of the proposed principles will help to increase the effectiveness of
the testing phase to get the best result. The author concluded the twelve principles for
implementing testing phases in an effective manner.
Simplicity – The first principle deal with the simplicity of the test phase which is started from the
initial point to structure all the other concern of testing phase. This principle included the
correctness check of the test code by distributing the whole testing phase into the small task.
These distributing simplifies the whole complex process into small problems.
Readability and Comprehension – the understanding of the problem and the reason to test the
situation must be clear. This principle deal with the easiness and the effectiveness to use test
cases for a particular part of the system. There are several instruments available to measure the
readability and comprehension of the test code.
Single Responsibility – The system contains a different type of behavior on the basis of the
situation follows and the method used to complete the requirement of that situation. For each
behavior, there must be one test which can identify the reason for failure, if that test is failed.
The finding of the source or reason for the problem, there must be one way to reach the root.
Avoid Over-protectiveness – The over protectiveness can affect the working of other principles
which result in complete failure. The statement of the assertion can cause redundancy in the
testing phase.
Test Behavior (not implementation) – the behavior of the test is responsible to handle the
particular problem in an effective manner. The implementation can result in the changes in the
future as the problem state changes. The behavior of the test specifies the capabilities and feature
of the test but the implementation of the test will show the dependency of the test which can be
converted into the issue after the particular implementation.
tabler-icon-diamond-filled.svg

Paraphrase This Document

Need a fresh take? Get an instant paraphrase of this document with our AI Paraphraser
Document Page
Maintainability: Refactoring test code – The test code can also become a problem when the
evolution of the test code started. The complexity of the test code increases as the situation
changes so the test code must be maintained to reduce the changes in the test code.
A test should fail – The failure of the process increase the accuracy and capability of the process.
The testing process must include and follows all the necessary principles. The failure will
increase the effectiveness of the test and develop good problem-solving capabilities.
Reliability – The reliability of the test must be maintained as the random result cannot make the
phase to deal with the quality product. The constant or isolated result will reduce the complexity
and increase the safety of the test.
Happy vs. Sad tests – The testing phase for a system includes both the happy test and sad test.
The happy test is the test which deals with verification of the test and resolving all the issues
arise in the situation. The bad test includes the breaking down of the system as the issue arise.
Both should be considered on the basis of requirements.
Tests should not dictate the code – The test must bot depend upon the production process. There
must be no modification in the product on the basis of the test code.
Fast feedback – The feedback provide the best output of the testing phase. The feedback
provides detail information about the failure of the test. This feedback must be fast so the issue
can be resolved fast.
4-phase test design – This principle covers all the four-phase include in the creation of test i.e.
setup, execution, validation and tear down. This will increase the effectiveness of the test.
The simplicity of fixtures – The principle deal with the removing of duplicity in the test code.
The process takes time as the more and more test case are included.
Test (in) dependency – The test dependency must be removed while adding the test cases. The
dependency of the test can increase the risk of failure. The dependency must be maintained and
the latest state must be preserved.
Use of test doubles – The test double help to utilize all the dependency upon external sources
which strikes in the testing process. The test double depends upon the context of the test code
and works on th3e basis of the specific case.
These principles can be further refined to find the best way for quality improvement of the
product. The quantification of these principles using different tool included for the best result in
software engineering.
Issues raised by the paper
There are several issues related to the testing of the software. The components are tested
separately as reducing the complexity. The issue specified by this research are:
Document Page
1. The testing phase might not follow the criteria or does not provide the expected result every
time. The randomness can occur during the testing or implementation of test codes.
2. The multiple additions of the test code in the whole process can result into duplicity in the test
cases. The duplicity will result into the generation of errors in test case designing and other
processes.
3. Not proper maintenance of test can cause the overburden in the testing phase which might
result into the failure of testing.
4. The dependency of a test case on another can cause complexity in the system. By failing one
test case can cause the failure of others.
5. The modification in the production code according to the test code can affect the testing
process as well as the complete production process.
6. Delay in the feedback can cause the raising in the issue in the other testing process. The
feedback might involve such issue which needs to be resolved before further implementation.
7. The problem with the assertion can result into the generation of errors in the process of testing.
Document Page
The Review
The author proposed research for quality testing in software engineering based on object-oriented
principles. The author included 15 principles for supporting quality testing and will be helpful in
the testing phase. The process of analyzing the testing phase on the basis of quality is changed
while different factors are considered in this process after the research made by the author. The
research compares different test smells and implemented metrics on different proposed principles
to quantify the result of testing. The author discusses different tools used for capturing the
quality of test suites. The author conducted a workshop which included the discussion and
brainstorming on testing ways to provide quality product and after that who they can be
quantified. There are eight principles among the proposed fifteen principles which don’t map the
test smells. The remaining do the mapping process. The author comes with the idea of
dependency on the quality of the product on the different testing factors. The list is refined by the
author on the basis of their understanding and training. The principles provide important support
for the other practitioners for improving their work in the context of quality management.
Spadini, Palomba, Zaidman, Bruntink & Bacchelli (2018) propose the research on the basis of
the test smells and the quality management by these test smells. The co-occurrence of test smells
is a concern with the different level of test analysis. By focusing on the test smell author want to
improve the quality of the software’s code.
There are many researcher proposed research to improve the quality of the software but the
principle propose by Bowes, Hall, Petric, Shippey & Turhan (2017), provides the best solution at
both qualitative and quantitative level. The author considered different factors and raises fifteen
principle. These principles are listed and reselected on the basis of their effectiveness. The
potential metrics are identified which included metrics only for seven principles only as these are
successfully mapped to test smells. The quantification of the testing phase is also implemented
so that the result can fulfill all the requirements. The author merged all the outcomes to get the
relevant information related to the testing. The principle included Simplicity, Test behavior,
maintainability, reliability, test phase designing, etc. are developed to reduce the duplicity and
improve the testing strategy. The author also proposed an approach for reducing the issue based
on the test suit size. The testing safety is also taken into consideration so that the process of
testing is successfully completed the task which is assigned for testing. One of the principles
shows the test design based which contains 4 phase. These phases include setting up the test
process, execution process involved for testing, validating all the test cases and tear down stages
for test cases. All the work increases the quality of software and other production while focusing
on the quantity of these services.
tabler-icon-diamond-filled.svg

Paraphrase This Document

Need a fresh take? Get an instant paraphrase of this document with our AI Paraphraser
Document Page
Conclusion
The proposed research provides a suitable path to test the product and deal with its quality. The
proposed principles increase the quality of the product and the error detection process. The
author helps to reach the effective output by concerning the step by step process. The author
further refines the list of principles on the basis of mapping of test smells. The principles are
provided with metrics for quantifying the output of the whole process. The process of
quantification improves the requirement fulfillment process by including all the feature and
services. These principles will be helpful for other practitioners for improving the quality of the
system with more quantitation. The future work will refine the list to provide the more suitable
output and the tools will also be introduced for implementing automation in the monitoring
process for checking the quality of the test.
Document Page
References
Bowes, D., Hall, T., Petric, J., Shippey, T., & Turhan, B. (2017, May). How good are my tests?.
In 2017 IEEE/ACM 8th Workshop on Emerging Trends in Software Metrics (WETSoM) (pp. 9-
14). IEEE. DOI: https://doi.org/10.1109/WETSoM.2017.2.
Spadini, D., Palomba, F., Zaidman, A., Bruntink, M., & Bacchelli, A. (2018, September). On the
relation of test smells to software code quality. In 2018 IEEE International Conference on
Software Maintenance and Evolution (ICSME) (pp. 1-12). IEEE. DOI:
https://doi.org/10.1109/ICSME.2018.00010.
chevron_up_icon
1 out of 9
circle_padding
hide_on_mobile
zoom_out_icon
[object Object]