The Theory of Software Testing: Intelligent Transportation Systems Journal June 2012
The Theory of Software Testing: Intelligent Transportation Systems Journal June 2012
net/publication/236031163
CITATIONS READS
4 14,604
1 author:
Adtha Lawanna
Assumption University of Thailand
27 PUBLICATIONS 31 CITATIONS
SEE PROFILE
All content following this page was uploaded by Adtha Lawanna on 04 June 2014.
Abstract
Software testing is the process of testing bugs in lines of code of a program that
can be performed by manual or automation testing. The theory of software testing
involves problem definitions of testing such as test team, failure after testing, manual
testing, uncertainty principle, participation, and incorrect test case selection. This
article shows the details of a critical part of software testing, which is how to test the
performance of new software and the entire system. The outcome of this article is the
whole picture of three phases for software testing as follows: preliminary testing,
testing and user acceptance testing.
Keywords: Automation testing, verification, validation, user acceptance testing.
Review Article 35
AU J.T. 16(1): 35-40 (Jul. 2012)
training of the individual team members, or 1995). There are several typical processes of
issues with the leadership. Also, suitable black-box testing. Equivalence Partitioning can
testing means may not be available to the team. remove the number of test cases and divides a
The second problem is failure of the test software unit into partitions of data from which
maintenance. This is because the specification test cases can be determined (Spillner et al.
changes of the requirements result in 2007). Boundary Value Analysis concerns the
abnormally long reverse times. The third testing at boundary values such as minimum,
problem is with manual testing. The software maximum, just inside and outside boundaries,
testing team is busy making manual testing error values and typical values. Cause-Effect
instead of building new test specifications, or Graph creates a relation between the causes and
modifying old ones to fit a new or changed effects (Nursimulu and Probert 1995). Fuzz
requirement. The forth problem is about the Testing determines implementation bugs and
uncertainty principle. Sometimes, the uses malformed data injection in an automated
uncertainty is in the exact testing conditions as session (Miller et al. 1990). There are also
well as how to view the condition for other processes of black-box testing.
replication. The fifth problem is in selecting the Regression Testing reruns some of the selected
right tests. The software testing cannot address test cases to ensure that the modified software
some of the essential aspects of the software system still has the functionality as required
testing application or system when testing only (Ball 1998). Pattern Testing is a new type of
some part of the required functions or choosing automated testing which can verify the good
only the expected interactions when executing application for its design or architecture and
a fault-tolerant application. patterns (Glaser and Strauss 1967). Orthogonal
Array Testing is a systematic, statistical way of
2.2 Processes in Software Testing software testing which can be applied in user
The processes of verification and interface testing, system testing, regression
validation are discussed below. Briefly, testing, configuration testing and performance
verification makes the product right, but testing. Matrix Testing states the status report
validation makes the right product. Many of the project. With Manual Testing, a tester
testers use white-box testing in these processes. defines manual test operations to test software
It deals with the investigation of internal logic without the aim of test
and structure of the code. Some important automation. Accordingly, this testing is a
processes of white-box testing are briefly laborious activity that uses a tester possessing a
described. Data Flow Testing is the process certain set of qualities e.g., to be smart, hard
that can define and use program variables working, observant, creative, speculative,
(Horgan and London 1991). Loop Testing innovative, open-minded, resourceful, and
exclusively concerns the validity of loop skillful. Automated Testing runs the program
constructs. Branch Testing tests true and false being tested, using the proper input and
values given to compound conditions evaluating the output against the expectation
appearing in different branch statements before testing. Automated Testing needs a test
(Jorgensen 2002). Control Flow Testing is a suite which is generated by test case generator,
structural testing that applies the program’s no human intervention is required. Examples of
control flow as a model and selects a set of test Automated Testing Tools are regression
paths through the program (Rapps and testing, unit testing, automated functional
Weyuker 1985). Basis Path Testing allows the testing and test management. Regression
test suite designer to build a logical complexity Testing refers to retesting the unchanged parts
measure of procedural design and then applies of the application. In the test suite, test cases
this measure for determining a basic set of could be re-executed in order to check whether
execution paths (Clarke et al. 1989). Besides new changes have not produced any new bugs
this, some testers use black-box testing instead and the previous functionality of an application
of white-box testing for the examination of the is still preserved. This test can be constructed
fundamental aspects of a system with little in a new build when there are significant
regard to its internal logical structure (Beizer
Review Article 36
AU J.T. 16(1): 35-40 (Jul. 2012)
Review Article 38
AU J.T. 16(1): 35-40 (Jul. 2012)
test case must contain particulars such as name Other techniques useful for validation are
of test case, input data requirements, test case prototyping and early release.
identifier, objective, test setup, steps and
expected output. 3.3 User Acceptance Testing (UAT) Phase
Prepare Test Automation Tool: This step It would be most important to complete
provides planning of a test technique on how to the UAT as shown in Fig. 3 to ensure that the
automate software testing. For instance, test system, which is to be implemented, is working
cases are executed for regression testing. correctly.
Determine Acceptance Test Tool: This Check
Integration
step can provide acceptance test tool for Testing
software testing to meet the requirements
specification. Check
Test Strategy
3.2. Testing Phase Document
The testing phase is a separate phase
which is conducted by a different test team Check
Integration Testing
after the implementation is completed. The Signoff
testing technique is selected based on the
perspective of the test team. In this article, the
testing phase is divided into three steps as Repair
shown in Fig. 2: independent verification,
independent validation and testing.
Coordinate
Verification Release
Validation
Fig. 3. User acceptance testing.
Review Article 39
AU J.T. 16(1): 35-40 (Jul. 2012)
testing. According to this, software testers can Fischer, K.F. 1977. A test case selection
take the benefit of the design to implement the method for the validation of software
ideas of software testing and address the maintenance modifications. Proc. IEEE Int.
critical problems described in Section 2. Computer Software and Application
Conference (COMPSAC), Chicago, IL,
4. Conclusion USA, 8-11 November 1977, pp. 421-6.
Glaser, B.G.; and Strauss A.L. 1967. The
In summary, software testing is not only Discovery of Grounded Theory: Strategies
the process of a team tester to: determine the for Qualitative Research. Aldine, Chicago,
bugs and report the bugs to software IL, USA.
developers; and fix the bugs to develop new Hetzel, W.C. 1988. The Complete Guide to
quality software. The critical problems of Software Testing. 2nd ed. QED Information
testing must also be considered, including the Sciences, Inc., Wellesley, MA, USA.
structure of source codes and the whole Horgan, J.R.; and London, S. 1991. Data flow
system. However, there is no one to guarantee coverage and the C language. Proc. 4th
the use of best methods in software testing. ACM Symp. on Testing, Analysis, and
Therefore, many researchers are still working Verification (TAV 4), Victoria, BC, Canada,
on it. In future research, the focus will be on 8-9 October 1991, pp. 87-97.
software maintenance. This is because software Humphrey, W. S. 1995. A Discipline for
testing may result in high costs before feeding Software Engineering. Addison Wesley,
into the maintenance system. New York, NY, USA.
Jorgensen, P.C. 2002. Software Testing: A
5. References Craftsman’s Approach. 2nd ed. CRC Press,
New York, NY, USA. Chapter 6.
Ball, T. 1998. On the limit of control flow Miller, B.P.; Fredriksen, L.; and Bryan, S.
analysis for regression test selection. Proc. 1990. An empirical study of the reliability of
ACM SIGSOFT Int. Symp. on Software UNIX utilities. Commun. ACM, 33(12): 32-
Testing and Analysis (ISSTA), Clearwater 44.
Beach, FL, USA, 2-5 March 1998, pp. 134-42. Myers, G.J. 1979. The Art of Software Testing.
Barnett, M.; Grieskamp, W.; Kerer, C.; John Wiley & Sons, New York, NY, USA.
Schulte, W.; Szyperski, C.; Tilmann, N.; and Nursimulu, K.; and Probert, R.L. 1995. Cause-
Watson, A. 2003. Serious specification for effect graphing analysis and validation of
composing components. Proc. 6th ICSE requirements. Proc. Conf. of the Centre for
Workshop on Component-based Software Advanced Studies on Collaborative
Engineering: Automated Reasoning and Research (CASCON), IBM Press, Toronto,
Prediction, Portland, OR, USA, 3-4 May Ontario, Canada, 7-9 November 1995. p. 46.
2003. 6 pages. Pan, J. 1999. Software testing. Student Report.
Clarke, L.A.; Podgurski, A.; Richardson, D.J.; Available:<http://www.ece.cmu.edu/~koop
and Zeil, S.J. 1989. A formal evaluation of man/des_s99/sw_testing>.
data flow path selection criteria. IEEE Rapps, S.; and Weyuker, E.J. 1985. Selecting
Trans. Software Eng. 15(11): 1,318-32. software test data using data flow
Cleve, H.; and Zeller, A. 2005. Locating causes information. IEEE Trans. Software Eng.
of program failures. Proc. 27th ACM Int. 11(4): 367-75.
Conf. Software Eng. (ICSE), St. Louis, MO, Sage, A.P.; and Palmer, J.D. 1990. Software
USA, 15-21 May 2005, pp. 342-51. Systems Engineering. John Wiley & Sons,
Elbaum, S.; Malishevsky, A.G.; and Rothermel, New York, NY, USA.
G. 2000. Prioritizing test cases for Spillner, A.; Linz T.; and Schaefer, H. 2007.
regression testing. Proc. ACM SIGSOFT Software Testing Foundations. A Study
Int. Symp. on Software Testing and Guide for the Certified Tester Exam.
Analysis (ISSTA), Portland, OR, USA, 22- Foundation Level, ISTQB compliant. Rocky
25 August 2000, pp. 102-12. Nook Inc., Santa Barbara, CA, USA.
Review Article 40