CO4403 OOSD Coursework Part 2: Review of Software Testing Principles
VerifiedAdded on 2025/04/03
|8
|1988
|162
AI Summary
Desklib provides past papers and solved assignments for students. This report analyzes software testing principles.

CO4403
OOSD Coursework Part 2
OOSD Coursework Part 2
Paraphrase This Document
Need a fresh take? Get an instant paraphrase of this document with our AI Paraphraser

Table of Contents
Review on Research Paper.........................................................................................................2
Key issues and the findings in the research paper......................................................................5
Key issues...............................................................................................................................5
Key Findings..........................................................................................................................6
References..................................................................................................................................7
1
Review on Research Paper.........................................................................................................2
Key issues and the findings in the research paper......................................................................5
Key issues...............................................................................................................................5
Key Findings..........................................................................................................................6
References..................................................................................................................................7
1

Review on Research Paper
In this research paper provided some information that was related to the development of
Object-Oriented programming or the Software Engineering field. In this research paper
mainly testing activities were categorized to ensure the quality of software or the
applications. It fulfills the overall criteria to cover the matrices without reaching the testing
qualities that have the skills to break or verify the complete testing of the system. The main
issue while analyzing critically is mainly the testing skills manifestation and disciplined
choices. In the research paper, the testing principles were described. Without following the
testing principles, it is so difficult to make the proper solution of the software. Each part of
the software was focused on the efforts that were used in it with the testing effectiveness [16].
The testing principles were defined in this research paper which depends on more than one
sources of the software. These testing principles were used for testing the software
applications which results in better effectiveness at the end of the view for the viewers.
In this research paper, there are many principles were defined that expressed with their own
meanings. They are discussed or identified with the practical effect in the codes while testing.
It also gives the better support to the software source codes while developing.
Simplicity is one of the principles that is used commonly while developing any software or
application. It is the fundamental or the starting principle which provides a better view of
code for the viewers. It checks the correct point in the code while testing the software.
Simplicity principle was performed while testing each and every line of source code or called
as the baby steps testing. In other words, simplicity defines the code as simple as it can for
the viewers while viewing the source code.
Comprehension and the readabilities are the self-documented instruments or the principle
which provides the better understanding code for the viewers. To make source code better
readable or comprehensive make the code lines with the proper intentions with the expressive
and simple testing procedure which includes the names of test cases that is to be crucial [1].
With the use of branching, magic numbers, naming conventions and applying natural
language in the code will provide the better readable and the comprehensive testing principle
success.
Single responsibility principle is the main issue present while testing the software. In this
case, the developer has to be more careful while programming. They can’t use the duplicate
variables or the codes. If the multiple assertions were allowed in the single testing case than it
has to focus strictly on the single testing with its own behavior.
Another principle of avoiding over-protectiveness is the common pitfall of testing. It is
mainly visible in the redundancy terms of assertions. assertNotNull is the main or basic
example of this principle which checks the variables whether it is successfully initialized or
2
In this research paper provided some information that was related to the development of
Object-Oriented programming or the Software Engineering field. In this research paper
mainly testing activities were categorized to ensure the quality of software or the
applications. It fulfills the overall criteria to cover the matrices without reaching the testing
qualities that have the skills to break or verify the complete testing of the system. The main
issue while analyzing critically is mainly the testing skills manifestation and disciplined
choices. In the research paper, the testing principles were described. Without following the
testing principles, it is so difficult to make the proper solution of the software. Each part of
the software was focused on the efforts that were used in it with the testing effectiveness [16].
The testing principles were defined in this research paper which depends on more than one
sources of the software. These testing principles were used for testing the software
applications which results in better effectiveness at the end of the view for the viewers.
In this research paper, there are many principles were defined that expressed with their own
meanings. They are discussed or identified with the practical effect in the codes while testing.
It also gives the better support to the software source codes while developing.
Simplicity is one of the principles that is used commonly while developing any software or
application. It is the fundamental or the starting principle which provides a better view of
code for the viewers. It checks the correct point in the code while testing the software.
Simplicity principle was performed while testing each and every line of source code or called
as the baby steps testing. In other words, simplicity defines the code as simple as it can for
the viewers while viewing the source code.
Comprehension and the readabilities are the self-documented instruments or the principle
which provides the better understanding code for the viewers. To make source code better
readable or comprehensive make the code lines with the proper intentions with the expressive
and simple testing procedure which includes the names of test cases that is to be crucial [1].
With the use of branching, magic numbers, naming conventions and applying natural
language in the code will provide the better readable and the comprehensive testing principle
success.
Single responsibility principle is the main issue present while testing the software. In this
case, the developer has to be more careful while programming. They can’t use the duplicate
variables or the codes. If the multiple assertions were allowed in the single testing case than it
has to focus strictly on the single testing with its own behavior.
Another principle of avoiding over-protectiveness is the common pitfall of testing. It is
mainly visible in the redundancy terms of assertions. assertNotNull is the main or basic
example of this principle which checks the variables whether it is successfully initialized or
2
⊘ This is a preview!⊘
Do you want full access?
Subscribe today to unlock all pages.

Trusted by 1+ million students worldwide

not. A large or the multiple counts of assert declarations appeared together will be related to
the over-protectiveness.
The testing behavior is the next principle which quite used in testing procedures. It focuses on
the details of implementation which can make the testing dependent on the specific
implementation of the source code. It defines the behavior of the code while testing that is
which part of source code is saying or which part of the code has what type of reason. The
head or the upper part of the code will define the starting of the program and the end part of
the code defines the goal of the project that what has to be achieved or not [2].
While developing the software or the application, the source code has to be reliable while
testing which provides the safety for it. Source code has to be behaving like as expected. The
code has to be consistent while fail or pass under the same conditions. This principle is so
difficult to capture or understand easily. Tests are also like a happy test or the sad test. Tests
that verifies their goals with the system is called happy testing whereas a test that breaks their
goals with the system is called sad testing.
The code cannot be dictated while testing the source of any application or software. This type
of code is called the production code in which it cannot be modified while the testing
procedure is running. Logics of testing cannot propagate in the production code. For example,
access modifier is to be updated for the methods of production code that is public to private,
it can be reached from the testing codes.
Fast feedback principle is one of the best principles of the testing. The goal of the developer
is to get feedback as fast as it can. No developer will prefer any waiting request while
completing the unit testing running before the progress build. Only if the issues in the logical
flaws happen while implementing the code, the feedback of testing code can make delay in
the process.
Four-phase tests design is the most common principle which was overlooked especially by
the developers of a novice. This test design or the principle states the setup process, execution
process, validation process, and the tear-down process while constructing the test cases.
Present experience while testing the cases with the students which shows that it was common
to forget or skip the execution or the setup process of testing [3]. It completely checked by
examining the lines of non-assert counts before the first assertion into the test case.
Fixtures simplicity is the principle which gives the safety to the code for avoiding
duplication. Mainly the setup process or stage will occur in the duplication. For avoiding the
duplication of code, it can be refactoring the fragments of shared code in the method of
special test which is known as a fixture. The code complexity and the size in the fixtures will
be used as a proxy for controlling the principle dedicated to it.
Testing independence or dependency principle was dependent on the reliability of the tests
code with each other. It enables the baby steps or the single line of codes for testing which
provides a better result and gives proper feedback to the developers. It automatically checks
that which type of testing framework is used while testing any case of it. The fields are in a
3
the over-protectiveness.
The testing behavior is the next principle which quite used in testing procedures. It focuses on
the details of implementation which can make the testing dependent on the specific
implementation of the source code. It defines the behavior of the code while testing that is
which part of source code is saying or which part of the code has what type of reason. The
head or the upper part of the code will define the starting of the program and the end part of
the code defines the goal of the project that what has to be achieved or not [2].
While developing the software or the application, the source code has to be reliable while
testing which provides the safety for it. Source code has to be behaving like as expected. The
code has to be consistent while fail or pass under the same conditions. This principle is so
difficult to capture or understand easily. Tests are also like a happy test or the sad test. Tests
that verifies their goals with the system is called happy testing whereas a test that breaks their
goals with the system is called sad testing.
The code cannot be dictated while testing the source of any application or software. This type
of code is called the production code in which it cannot be modified while the testing
procedure is running. Logics of testing cannot propagate in the production code. For example,
access modifier is to be updated for the methods of production code that is public to private,
it can be reached from the testing codes.
Fast feedback principle is one of the best principles of the testing. The goal of the developer
is to get feedback as fast as it can. No developer will prefer any waiting request while
completing the unit testing running before the progress build. Only if the issues in the logical
flaws happen while implementing the code, the feedback of testing code can make delay in
the process.
Four-phase tests design is the most common principle which was overlooked especially by
the developers of a novice. This test design or the principle states the setup process, execution
process, validation process, and the tear-down process while constructing the test cases.
Present experience while testing the cases with the students which shows that it was common
to forget or skip the execution or the setup process of testing [3]. It completely checked by
examining the lines of non-assert counts before the first assertion into the test case.
Fixtures simplicity is the principle which gives the safety to the code for avoiding
duplication. Mainly the setup process or stage will occur in the duplication. For avoiding the
duplication of code, it can be refactoring the fragments of shared code in the method of
special test which is known as a fixture. The code complexity and the size in the fixtures will
be used as a proxy for controlling the principle dedicated to it.
Testing independence or dependency principle was dependent on the reliability of the tests
code with each other. It enables the baby steps or the single line of codes for testing which
provides a better result and gives proper feedback to the developers. It automatically checks
that which type of testing framework is used while testing any case of it. The fields are in a
3
Paraphrase This Document
Need a fresh take? Get an instant paraphrase of this document with our AI Paraphraser

static form which preserves the latest state or the framework while testing. It creates the new
occurrence of a class.
Test double usage is the principle which tests the usage of the doubles for the classes which
depend on the external resources which do not exist or might delay in the runtime of code for
test completion. This time this principle will be useful to stub out the external type of
dependencies for testing the target class. For checking the test doubles isMocked() function is
used as an indicator [6].
In the overall research paper, 15 testing principles were discussed for making the testing
procedures as better as it can. It described by making the comparison between each principle
that which type of testing principle is relevant for the subpart of the test case. Moreover,
testing issues and the findings also included in the research paper which create a better
reflection over the source codes or the test codes while testing any software or any
application.
4
occurrence of a class.
Test double usage is the principle which tests the usage of the doubles for the classes which
depend on the external resources which do not exist or might delay in the runtime of code for
test completion. This time this principle will be useful to stub out the external type of
dependencies for testing the target class. For checking the test doubles isMocked() function is
used as an indicator [6].
In the overall research paper, 15 testing principles were discussed for making the testing
procedures as better as it can. It described by making the comparison between each principle
that which type of testing principle is relevant for the subpart of the test case. Moreover,
testing issues and the findings also included in the research paper which create a better
reflection over the source codes or the test codes while testing any software or any
application.
4

Key issues and the findings in the research paper
Key issues
In this research paper, there are may key issues stated while completion of the overall
principles. Issues present while testing the test cases that were good or not. In the testing
principles, there are many principles which fails while testing any test cases of any software
application.
o Single responsibility is the principle which can fail with the proper reason while locating
the root which causes many problems while testing. Testing multiple data or lines might
affect the test cases or can be failed while testing. That’s why this principle enforced
strictly to test one condition or one line at a time [4].
o The test can be failed in the common faults which can be observed by the experts or the
professionals. Frameworks of testing cannot find or identify the simple mistakes that’s
why sometimes the testing procedure will fail. It has to be an ability to identify the small
or simple mistakes in the test cases of the software or the application programs.
o Test cases must be reliable or dependent on the development process. The issue was
created while expecting the results. Codes have to be under the fixed conditions that can
make it consistently pass or fail. It didn’t involve any random results when their any
source was present of non-determinism. It is so hard to the apprehension or can be taken
as granted.
o Test cases were dependent on the testing procedures. In the four-phase of testing design,
the setup stage will create an issue while creating duplication of any code or the line of
code. To avoid the duplication of code, the code has to be fragmented into the method of
special test that is known as a fixture. The main issue, in this case, is that it takes more
time for executing the test cases and make more harder and complex to maintain it in the
given time.
5
Key issues
In this research paper, there are may key issues stated while completion of the overall
principles. Issues present while testing the test cases that were good or not. In the testing
principles, there are many principles which fails while testing any test cases of any software
application.
o Single responsibility is the principle which can fail with the proper reason while locating
the root which causes many problems while testing. Testing multiple data or lines might
affect the test cases or can be failed while testing. That’s why this principle enforced
strictly to test one condition or one line at a time [4].
o The test can be failed in the common faults which can be observed by the experts or the
professionals. Frameworks of testing cannot find or identify the simple mistakes that’s
why sometimes the testing procedure will fail. It has to be an ability to identify the small
or simple mistakes in the test cases of the software or the application programs.
o Test cases must be reliable or dependent on the development process. The issue was
created while expecting the results. Codes have to be under the fixed conditions that can
make it consistently pass or fail. It didn’t involve any random results when their any
source was present of non-determinism. It is so hard to the apprehension or can be taken
as granted.
o Test cases were dependent on the testing procedures. In the four-phase of testing design,
the setup stage will create an issue while creating duplication of any code or the line of
code. To avoid the duplication of code, the code has to be fragmented into the method of
special test that is known as a fixture. The main issue, in this case, is that it takes more
time for executing the test cases and make more harder and complex to maintain it in the
given time.
5
⊘ This is a preview!⊘
Do you want full access?
Subscribe today to unlock all pages.

Trusted by 1+ million students worldwide

Key Findings
In this paper, it will be identified the core lists of the principles of testing which addresses the
multiple faces if the effectiveness or the quality of the test cases. All 15 principles were
discussed that how they would be quantified as the indicators of quality of tests. All
principles were mapped with the existing smells of tests. Mainly the eight principles were
mapped with the matrices and the test smells that is relevant to each of the principles. It
provides the core lists of the principles of testing that focus on the different types of aspects
such as quality or the effectiveness [5].
This paper could be noticed that the work in progress for the future purpose to outspread the
working with the refined list that is necessary or conducting the review in the systematic way
of the literature that is existed in it. It also provides the tools that support to enabling the
computerized monitoring of the quality of tests.
The research paper describes the overall 15 principles with each having different meaning
with their own effectiveness or the quality of the test cases. Each principle was used as the
with the quality that is required in the test cases.
6
In this paper, it will be identified the core lists of the principles of testing which addresses the
multiple faces if the effectiveness or the quality of the test cases. All 15 principles were
discussed that how they would be quantified as the indicators of quality of tests. All
principles were mapped with the existing smells of tests. Mainly the eight principles were
mapped with the matrices and the test smells that is relevant to each of the principles. It
provides the core lists of the principles of testing that focus on the different types of aspects
such as quality or the effectiveness [5].
This paper could be noticed that the work in progress for the future purpose to outspread the
working with the refined list that is necessary or conducting the review in the systematic way
of the literature that is existed in it. It also provides the tools that support to enabling the
computerized monitoring of the quality of tests.
The research paper describes the overall 15 principles with each having different meaning
with their own effectiveness or the quality of the test cases. Each principle was used as the
with the quality that is required in the test cases.
6
Paraphrase This Document
Need a fresh take? Get an instant paraphrase of this document with our AI Paraphraser

References
[16]"Counterfeit Object-oriented Programming: On the Difficulty of Preventing Code Reuse
Attacks in C++ Applications - IEEE Conference Publication", Ieeexplore.ieee.org, 2019.
[Online]. Available: https://ieeexplore.ieee.org/abstract/document/7163058. [Accessed: 06-
Jan- 2019].
[1]"Improved approach for software defect prediction using artificial neural networks - IEEE
Conference Publication", Ieeexplore.ieee.org, 2019. [Online]. Available:
https://ieeexplore.ieee.org/abstract/document/7785003. [Accessed: 06- Jan- 2019].
[2]K. CVA, "https://www.medwinpublishers.com/JOBD/JOBD16000139.pdf", Journal of
Orthopedics & Bone Disorders, vol. 1, no. 7, 2017. Available: 10.23880/jobd-16000139.
[3]Taylorfrancis.com, 2019. [Online]. Available:
https://www.taylorfrancis.com/books/e/9781351425780/chapters/10.1201/9780203744338-5.
[Accessed: 06- Jan- 2019].
[4]P. Hooper, S. Foster, M. Knuiman and B. Giles-Corti, "Testing the Impact of a Planning
Policy Based on New Urbanist Planning Principles on Residents’ Sense of Community and
Mental Health in Perth, Western Australia", Environment and Behavior, p.
001391651879888, 2018. Available: 10.1177/0013916518798882 [Accessed 6 January
2019].
[5]"An Empirical Study of Design Degradation: How Software Projects Get Worse over
Time - IEEE Conference Publication", Ieeexplore.ieee.org, 2019. [Online]. Available:
https://ieeexplore.ieee.org/abstract/document/7321186. [Accessed: 06- Jan- 2019].
[6]R. Jabangwe, J. Börstler, D. Šmite, and C. Wohlin, "Empirical evidence on the link
between object-oriented measures and external quality attributes: a systematic literature
review", Empirical Software Engineering, vol. 20, no. 3, pp. 640-693, 2014. Available:
10.1007/s10664-013-9291-7 [Accessed 6 January 2019].
7
[16]"Counterfeit Object-oriented Programming: On the Difficulty of Preventing Code Reuse
Attacks in C++ Applications - IEEE Conference Publication", Ieeexplore.ieee.org, 2019.
[Online]. Available: https://ieeexplore.ieee.org/abstract/document/7163058. [Accessed: 06-
Jan- 2019].
[1]"Improved approach for software defect prediction using artificial neural networks - IEEE
Conference Publication", Ieeexplore.ieee.org, 2019. [Online]. Available:
https://ieeexplore.ieee.org/abstract/document/7785003. [Accessed: 06- Jan- 2019].
[2]K. CVA, "https://www.medwinpublishers.com/JOBD/JOBD16000139.pdf", Journal of
Orthopedics & Bone Disorders, vol. 1, no. 7, 2017. Available: 10.23880/jobd-16000139.
[3]Taylorfrancis.com, 2019. [Online]. Available:
https://www.taylorfrancis.com/books/e/9781351425780/chapters/10.1201/9780203744338-5.
[Accessed: 06- Jan- 2019].
[4]P. Hooper, S. Foster, M. Knuiman and B. Giles-Corti, "Testing the Impact of a Planning
Policy Based on New Urbanist Planning Principles on Residents’ Sense of Community and
Mental Health in Perth, Western Australia", Environment and Behavior, p.
001391651879888, 2018. Available: 10.1177/0013916518798882 [Accessed 6 January
2019].
[5]"An Empirical Study of Design Degradation: How Software Projects Get Worse over
Time - IEEE Conference Publication", Ieeexplore.ieee.org, 2019. [Online]. Available:
https://ieeexplore.ieee.org/abstract/document/7321186. [Accessed: 06- Jan- 2019].
[6]R. Jabangwe, J. Börstler, D. Šmite, and C. Wohlin, "Empirical evidence on the link
between object-oriented measures and external quality attributes: a systematic literature
review", Empirical Software Engineering, vol. 20, no. 3, pp. 640-693, 2014. Available:
10.1007/s10664-013-9291-7 [Accessed 6 January 2019].
7
1 out of 8

Your All-in-One AI-Powered Toolkit for Academic Success.
+13062052269
info@desklib.com
Available 24*7 on WhatsApp / Email
Unlock your academic potential
Copyright © 2020–2025 A2Z Services. All Rights Reserved. Developed and managed by ZUCOL.