Professional Documents
Culture Documents
ABSTRACT
One of the important component of software quality assurance in software
development is testing. This is because testing software consumes over 50%
of the development effort. To minimize development time, porting software
applications has become a necessity which has not really improved testing
activities – Software porting is the process of making necessary changes to
an existing application running on an operating system and hardware
architecture, with the aim of enabling the application to run on another
operating system and hardware architecture.
The testing activities carried out during software development or porting are
adhoc without well established guidelines. As such, several testing models
has been established by researchers and establishments such as IEEE and
ISO to guide and ease testing activities.
This paper reviewed seven (7) different testing models and approaches used
during software development or porting. The strengths and weaknesses of
these testing approaches are enumerated and evaluated. After evaluation, the
limitation of each testing technique are pointed out with the aim of overcoming
the limitations in future work.
1- INTRODUCTION
Software testing to begin with encompasses a wide spectrum of diverse
activities, ranging from unit testing to acceptance testing. Also, its position
cannot be overemphasized as it is the most important component of software
quality assurance which according to [1], consumes more than 50% of the
development effort. This makes it a significant part of software engineering [2,
3]. Despite the consumption of resources that testing does, [4] observed that
test selections performed in testing activities is largely adhoc and expensive.
This makes the testing performed unpredictably effective which could be due
45
Int. J. of Software Engineering, IJSE Vol.9 No.2 July 2016
to using the same testing technique and crafting testing methods instead of
the application of good engineering practice [5]. The use of good engineering
practice would aid in the selection of suitable testing methods appropriate for
the particular software or product to be tested.
According to [6], having a testing strategy by using the most effective and
efficient methods of testing is most important in testing. However, there are a
lot of different methods of testing which makes choosing a technique for
testing by practitioners to be complex because of lack of following well-
established guidelines. This complexity makes practitioners avoid properly
testing software or applications because of its time consumption [7] especially
when it comes to the testing of software applications for smart devices such
as the mobile devices which has additional requirements not commonly found
in the traditional ones [8].
For example, over 260 Android devices were released in 2011 where each
device has different form factors and set of features [9] which makes the
mobile application’s testing technique or strategy different from the traditional
ones being pc-based. When these mobile applications have been ported, they
need to be tested properly without assumption that since it worked well on one
platform, it will work on another. Testing activities need to be strategic so that
testing efforts can be reduced without foregoing the quality and reliability of
the application as stated by [1] which is of crucial importance today. One of
the ways in which testing efforts has been reduced is through a process called
software porting.
Software porting can be seen as a process of taking an existing application
which has been successfully running on an operating system and hardware
architecture, making necessary changes to the application with the aim of
enabling the application to run on another operating system and hardware
architecture.
The increase of various smart devices and varieties of software in the market,
with the aim of effectively and efficiently meeting market demands has made
software porting a necessity. Software porting focuses on source code
modification. These modifications are performed in such a way that the
intended system’s functionality and design are not affected [10]. The need for
porting generally sprang up from technical and business constraints where
different devices were released to meet the needs of various customer profiles
within a short period of time. Developers as such are required to make
available, multiple versions of software applications optimized for every
device. This will significantly reduce a software application’s time to the
market (via code reusability) and reduce the work of creating a software from
the scratch.[11, 12].
To ascertain the quality of a ported software application, its reliability
estimation and verification or validation status, testing is needed [13].
Verification is a process of checking and ensuring that a product or software
application works as desired and the software meets the specified
requirements. Validation is the process of checking and ensuring that a
software fulfills the conditions laid down or executes correctly as it is
programmed.
46
Evaluating Testing Strategies Dams and Rajadorai
47
Int. J. of Software Engineering, IJSE Vol.9 No.2 July 2016
48
Evaluating Testing Strategies Dams and Rajadorai
49
Int. J. of Software Engineering, IJSE Vol.9 No.2 July 2016
The IEEE 829 standard further states that once each task has been identified,
the needed inputs and the resultant outputs can be identified; where the
inputs and outputs in this case determine the test documentation which is
needed. For example, Fig. 3 shows an overview of the types of test
documentation described by this standard using four levels of test; where the
test documentation contains each type of document and its primary focus.
Based on the Fig. 3 shown, there are two types of test planning documents
which are Master Test Plan (MTP) and Level Test Plan (LTP) documents. The
LTP for example shows the acceptance test plan, system test plan,
component integration test plan and component test plan. The MTP identifies
the number of levels of test required, meanwhile the LTP could just be one or
many for each level identified in the MTP. Each LTP could result to a more
detailed series of documents. Test executions are performed from the Level
Test Case(s) (LTCs) and the Level Test Procedure(s) (LTPr) documents
which provide enough details information. During the execution of the actual
testing, multiple instances of providing an interim Level Test Status Report.
There could be four types of report documents produced subsequent to
execution of the actual test namely: Level Test Log (LTL), Anomaly Report
(AR), one LTR for each level of test and one MTR which finalizes and
concludes all the levels of tests.
50
Evaluating Testing Strategies Dams and Rajadorai
51
Int. J. of Software Engineering, IJSE Vol.9 No.2 July 2016
52
Evaluating Testing Strategies Dams and Rajadorai
53
Int. J. of Software Engineering, IJSE Vol.9 No.2 July 2016
54
Evaluating Testing Strategies Dams and Rajadorai
55
Int. J. of Software Engineering, IJSE Vol.9 No.2 July 2016
Fig. 8 – Testing Strategy Illustration of Ralph and Gerard (2005) During Porting
56
Evaluating Testing Strategies Dams and Rajadorai
57
Int. J. of Software Engineering, IJSE Vol.9 No.2 July 2016
Table 2 – Summary of Test process components and activities from identified testing
strategies
• MANAGEMENT
• ACQUISITION
• SUPPLY
• DEVELOPMENT
- Concept
Test
- Requirement
IEEE 829 Documentation
- Design
Technique
- Implementation
STANDARDS - Test
AND MODELS
- Installation/Checkout
(PC-BASED) • OPERATION
• MAINTENANCE
• ORGANIZATIONAL
LEVEL
- Test Policy
- Test Strategy
• TEST MANAGEMENT
LEVEL
Hierarchical - Test Plan
ISO 92119
based Technique - Test Completion Report
• FUNDAMENTAL LEVEL
- Test Design and
Implementation
- Test Reporting
- Test Execution
- Testing Environment
58
Evaluating Testing Strategies Dams and Rajadorai
• DEVELOPMENT
MOBILE Concept • TESTING
DEVELOPMENT Cao et al. extracted from V- PREPARATION
BY Model • TESTING EXECUTION
• TESTING SUMMARY
• ANALYSIS OF EXISTING
SYSTEM
• FUNCTIONAL
ANALYSIS
Verification and - Validation by users
Jerome et
Validation • INTERFACE
al
Technique SKETCHING
- Validation by users
• IMPLEMENTATION
- Validation by users
• TESTS
• ANALYSIS OF EXISTING
SYSTEM
• PORTING
Ralph and Test-driven
REQUIREMENTS AND
PORTING TO Gerard porting technique
SPECIFICATIONS
MOBILE BY • TEST SUITE DESIGN
• IMPLEMENTATION
• PORT DESIGN
- Verification
• DEVICE APPRAISAL
- Verification
• PORT DEVELOPMENT
Concept
RapidSoft - Review
extracted from V-
Systems • PORT TEST PHASE
Model
- Unit Test
- Integration Test
- System Test
- Functional
- Acceptance Test
59
Int. J. of Software Engineering, IJSE Vol.9 No.2 July 2016
60
Evaluating Testing Strategies Dams and Rajadorai
7- FUTURE WORK
In the future, the gaps identified will be filled through first, gathering information,
identifying and discussing the issues affecting testing activities in software
development from experts. The experts will be from all the three (3) level groups
61
Int. J. of Software Engineering, IJSE Vol.9 No.2 July 2016
REFERENCES
[1] Elberzhager, F., A. Rosbach, J. Münch, and R. Eschbach, "Reducing test
effort: A Systematic Mapping Study on Existing Approaches," Information
and Software Technology, 54(10), pp.1092-1106, 2012.
[2] Lu, L., "Software Testing Techniques," Institute for software research
international Carnegie mellon university Pittsburgh, PA, pp. 1-19, 2001.
[3] Jovanović, I., "Software Testing Methods and Techniques," IPSI BgD
Journals, pp. 30 - 41, 2009.
[4] Bertolino, "A. Software Testing Research: Achievements, Challenges,
Dreams," Future of Software Engineering, FOSE '07, 2007.
[5] Sawant, A.A., P.H. Bari, and P.M. Chawan, "Software Testing Techniques
and Strategies," International Journal of Engineering Research and
Applications, Vol. 2 (3), pp. 980-986, 2012.
[6] Farooq, U., "Evaluating Effectiveness of Software Testing Techniques with
Emphasis on Enhancing Software Reliability," Department of Computer
Sciences, University of Kashmir, University of Kashmir: Srinagar. pp. 132,
2012.
[7] Keynote "Testing Strategies and Tactics for Mobile Applications," The
Mobile & Internet Performance Authority, 2012.
[8] Muccini, H., A. Di Francesco, and P. Esposito, "Software Testing of Mobile
Applications: Challenges and Future Research Directions," 7th
International Workshop on Automation of Software Test (AST), 2012.
[9] Perfecto "Mobile Practical Guide for Choosing the Right Mobile Testing
Solution for Your Enterprise," 2011.
[10] Cho, D. and D. Bae., "Case Study on Installing a Porting Process for
Embedded Operating System in a Small Team," IEEE 5th International
Conference on Secure Software Integration & Reliability Improvement
Companion (SSIRI-C), 2011.
[11] Alves, V., I. Cardim, H. Vital, P. Sampaio, A. Damasceno, P. Borba, and G.
Ramalho, "Comparative analysis of porting strategies in J2ME games,"
Proceedings of the 21st IEEE International Conference on Software
Maintenance, ICSM'05, 2005.
[12] Bigrigg, M.W. and J.G. Slember, "Testing the Portability of Desktop
Applications to a Networked Embedded System," Workshop on Reliable
Embedded Systems, in conjunction with the 20th IEEE Symposium on
Reliable Distributed Systems, 2001.
[13] Khan, M.E., "Different Forms of Software Testing Techniques for Finding
Errors," International Journal of Computer Science, Vol. 7(3), pp. 11-16,
2010.
62
Evaluating Testing Strategies Dams and Rajadorai
63
Int. J. of Software Engineering, IJSE Vol.9 No.2 July 2016
64