Enhancing Software Quality by An SPL Tes
Enhancing Software Quality by An SPL Tes
ABSTRACT
Software testing is a process of providing information that a
Focuses on processes Focuses on actual
software application or program meets the business and testing.
and procedures rather Focuses on actual
technical requirements that guided its design and
than conducting testing by executing
development; and works as expected. Regardless of the actual testing on the Software with intend
environment (i.e. Structured or Object Oriented), software system. to identify
testing can also identifies important defects, flaws, or errors in bug/defect through
the application code that must be fixed. Quality control implementation of
involves the maintenance of quality in a product, particularly procedures and
by comparing the performance of a product with a set of process.
specifications. This paper introduces some basic knowledge
regarding to software testing. The paper provides some new
model that could improve quality of software testing as a
mean to increase the overall quality of the product. Process oriented Product oriented Product oriented
activities. activities. activities.
Keywords
Software testing, Software quality, Testing strategy, Software Preventive activities. Corrective process.
quality assurance, software quality control. Corrective process.
5
International Journal of Computer Applications (0975 – 8887)
Volume 69– No.6, May 2013
6
International Journal of Computer Applications (0975 – 8887)
Volume 69– No.6, May 2013
Performed by end An effective testing practice will see the above steps applied
Performed by end to the testing policies of every organization and hence it will
users and also by Normally done by
users and also by
testers and testers and developers make sure that the organization maintains the strictest of
testers and developers
developers standards when it comes to software quality.
7
International Journal of Computer Applications (0975 – 8887)
Volume 69– No.6, May 2013
8
International Journal of Computer Applications (0975 – 8887)
Volume 69– No.6, May 2013
can be done at both normal and peak load conditions. D. Security Testing
This type of testing identifies the maximum capacity of
Software and its behavior at peak time. Most of the Security testing involves the testing of Software in order to
time, Load testing is performed with the help of identify any flaws ad gaps from security and vulnerability
automated tools such as Load Runner, AppLoader, IBM point of view. Following are the main aspects which Security
Rational Performance Tester, Apache JMeter, Silk testing should ensure: confidentiality, integrity,
Performer, Visual Studio Load Test etc. Virtual users authentication, availability, authorization, non-repudiation,
(VUsers) are defined in the automated testing tool and software data is secure, software is according to all security
the script is executed to verify the Load testing for the regulations, input checking and validation, SQL insertion
Software. The quantity of users can be increased or attacks, injection flaws, session management issues, cross-site
decreased concurrently or incrementally based upon the scripting attacks, buffer overflows vulnerabilities, and
requirements. directory traversal attacks.
Stress Testing: This testing type includes the testing E. Portability Testing
of Software behavior under abnormal conditions. Portability testing includes the testing of Software with intend
Taking away the resources, applying load beyond the that it should be re-useable and can be moved from another
actual load limit is Stress testing. The main intent is to Software as well. Following are the strategies that can be used
test the Software by applying the load to the system and for Portability testing [16-18].
taking over the resources used by the Software to
identify the breaking point. This testing can be Transferred installed Software from one computer to
performed by testing different scenarios such as: another.
Shutdown or restart of Network ports randomly. Building executable (.exe) to run the Software on
different platforms.
Turning the database on or off.
Portability testing can be considered as one of the sub parts of
Running different processes that consume System testing, as this testing type includes the overall testing
resources such as CPU, Memory, server etc. of Software with respect to its usage over different
environments. Computer Hardware, Operating Systems and
B. Usability Testing Browsers are the major focus of Portability testing. Following
This section includes different concepts and definitions of are some pre-conditions for Portability testing:
usability testing from Software point of view. It is a black box
technique and is used to identify any error(s) and Software should be designed and coded, keeping in mind
improvements in the Software by observing the users through Portability Requirements.
their usage and operation [16]. Unit testing has been performed on the associated
Usability can be defined in terms of five factors i.e. components.
Efficiency of use, Learn-ability, Memory-ability, Integration testing has been performed.
Errors/safety, satisfaction. According to this definition,
the usability of the product will be good and the system is Test environment has been established.
usable if it possesses the above factors.
2.4 Software Specifications Documents and
We can consider that usability is the quality requirement
which can be measured as the outcome of interactions Testing
with a computer system. This requirement can be fulfilled A hierarchy of software specifications will typically contain
and the end user will be satisfied if the intended goals are three or more levels of software specification documents, see
achieved effectively with the use of proper resources. Figure 1 [16].
Other authors stated that user friendly system should The Requirements Specification, which specifies what
fulfill the following five goals (i.e. Easy to Learn, Easy to the software is required to do and may also specify
Remember, Efficient to Use, Satisfactory to Use and Easy constraints on how this may be achieved.
to understand).
The Architectural Design Specification, which
In addition to different definitions of usability, there are some describes the architecture of a design which implements
standards and quality models and methods which define the the requirements. Components within the software and
usability in the form of attributes and sub attributes such as the relationship between them will be described in this
ISO-9126, ISO-9241-11, ISO-13407 and IEEE std.610.12 etc. document.
C. Graphical User Interface Testing Detailed Design Specifications, which describe how
User interface (UI) testing involves the testing of Graphical each component in the software, down to individual
User Interface of the Software. This testing ensures that the units, is to be implemented.
GUI should be according to requirements in terms of color,
alignment, size and other properties.
On the other hand Usability testing ensures that a good and
user friendly GUI is designed and is easy to use for the end
user. UI testing can be considered as a sub part of Usability
testing.
9
International Journal of Computer Applications (0975 – 8887)
Volume 69– No.6, May 2013
10
International Journal of Computer Applications (0975 – 8887)
Volume 69– No.6, May 2013
may form sections of the Detailed Design quality as: “The totality of features and characteristics of a
Specifications. product or service that impact its ability to satisfy given
needs.”
System testing and acceptance testing involve an
enormous number of individual test cases. In order to Bo Zhang, Changchun and Xiangheng Shen [5], defined
keep track of which requirements are tested by which test Software testing is an approach to guarantee software quality,
cases, an index which cross references between and with its effectiveness people can establish confidence in
requirements and test cases often constructed. This is the correctness of software which has been previously tested.
usually referred to as a Verification Cross Reference
Index (VCRI) and is attached to the test specification. Wesley K., Daniela de., Thelma E., Silvia R. [6] defined a
Cross reference indexes may also be used with unit Software Product Line (SPL) is a set of several software
testing and software integration testing. products that share a set of common features. These features
meet specific needs of a particular domain and are developed
It is important to design test cases for both positive from core assets previously defined. Reuse is the focus of the
testing and negative testing. Positive testing checks that SPL approach. Differently from the classical reuse
the software does what it should. Negative testing checks approach, where the software first is developed and packaged,
that the software doesn't do what it shouldn't. and then the reuse may be considered, in the SPL approach,
the development is oriented to obtain a common architecture
The process of designing test cases, including executing that will be used in all products of the SPL.
them as thought experiments, will often identify bugs
before the software has even been built. It is not Clements et al [7] say that SPL engineering comprises three
uncommon to find more bugs when designing tests than essential phases: Domain Engineering, Application
when executing tests. Engineering and SPL Management. In the Domain
Engineering, a set of core assets is developed. It has the
IV. Test Procedures: The final stage of test design is to common artifacts to the whole SPL and it may include plains,
implement a set of test cases as a test procedure, requirements, design, tests and code. In this activity, a generic
specifying the exact process to be followed to conduct architecture is defined, then, the products of the SPL are
each of the test cases. This is a fairly straight forward developed by the instantiation of this architecture according to
process, which can be likened to designing units of code the features of the product. Each specific product is generated
from higher level functional descriptions. by a single combination of features. The SPL development
For each item to be tested, at each level of testing, a test leads to a productivity increase and a reduction of costs and
procedure will specify the process to be followed in delivery time. Then, the development of a product of the SPL
conducting the appropriate test cases. A test procedure occurs in two steps: the development of components to reuse,
cannot leave out steps or make assumptions. The level of in the Domain Engineering, and the product development
detail must be such that the test procedure is from reusable components, in the Application Engineering
deterministic and repeatable. [8]. This makes the SPL testing activity more critical and
complex than test in the classical development process.
V. Test Results: When tests are executed, the outputs of
each test execution should be recorded in a test results According to Lamancha et al [9] there is no process defined
file. These results are then assessed against criteria in the for SPL testing. They also say that there are some
test specification to determine the overall outcome of a guidelines available to perform this activity. SPL testing must
test. Each test execution should also be noted in a test involve the test of core assets, of specific products and their
log. The test log will contain records of when each test interactions [10]. To perform such tasks, the existing test
has been executed, the outcome of each test execution, techniques and methods have been used. However, a
and may also include key observations made during test testing strategy to allow the application of those
execution. Often a test log is not maintained for lower methods in the SPL context is necessary.
levels of testing (unit test and software integration test). Tevanlinna et al [8] describe strategies to SPL testing.
Test reports may be produced at various points during The traditional strategy named Product by Product (PbP)
the testing process. Test reports will summaries the consists of testing each product of the SPL separately, without
results of testing and document any analysis. An the reuse of test assets. The strategy named Reusable Asset
acceptance test report often forms a contractual Instantiation (RAI) creates test specifications based on the
document within which acceptance of software is agreed. Domain Engineering, in order to predict all of the possible
3. PREVIOUS WORK ON SPL TESTING variabilities. In the Application Engineering phase, the test
assets are refined and instantiate for the specific product under
AND QUALITY CONTROL test. The main difference of both strategies is that the last
Every application or business domain faces a specific set of one is in fact product line oriented. However, unnecessary
software quality issues, and software quality must be defined test cases can be generated due to the great number of
accordingly. It is important for each software development possible combinations considering the SPL variability's.
project to define its specific meaning of software quality Strategies that are SPL oriented allow reuse of test assets
during the planning phase. Such a definition contributes to the and were proposed as an alternative to those ones that test
basis for setting objectives and practical measures of quality product by product in a separated way. Considering this fact,
progress and determination of readiness for release to the authors presented results of a case study to evaluate the
customers [1]. test strategy, named RAI (Reusable Assets Instantiation). This
Reeves and Bednar [2] stated that “no universal, strategy that is SPL oriented was compared with a traditional
Parsimonious, or all-encompassing definition or model of strategy PbP (Product by Product). The study used AGM, an
quality exists”. The American National Standards Institute SPL from the game context, and test data generation methods
(ANSI) and American Society for Quality (ANQ) define based on the use case model[6].
11
International Journal of Computer Applications (0975 – 8887)
Volume 69– No.6, May 2013
RAI considers that there is a common generic structure, and model do a testing after the finish from software development,
test assets can be reused for different products of SPL. This we do the testing before and after the software development,
strategy allows the test starts at the begin of the Domain which make the new model more easier to find the errors and
Engineering, because it uses the requirements as a source for modifying the code.
generating the test specification. So it is not necessary to
await the generation of products to start testing activities. 6. ACKNOWLEDGMENT
when applying RAI, deriving all the domain test assets and
The authors acknowledge the full support received from Arab
application requirements needed to test the SPL. This
East Colleges for Graduate Studies, especially they very
methodology allows us to deal with the variability of SPL and
thankful to Professor Dr. Abd Allah Alfaisal, Dean of the
instantiate test cases for a specific product[6].
Colleges, for his encouragement and support.
The result of this case study has produced evidence that the
RAI strategy is more suitable for SPL testing than the PbP REFERENCES
strategy, considering reuse. Moreover, the case study [1] Lazic L., Kolasinac A., Avdic D., “The Software Quality
constitutes an experience of SPL test which shows that the Economics Model for Software Project Optimization”,
RAI strategy is effective [6]. WSEAS Transaction on Computers, Issue 1, Vol. 8,
January 2009.
4. NEW SOFTWARE QUALITY
ASSURANCE MODEL [2] Reeves C., Bednar D., “Defining Quality: Alternative
and Implications”, Academy of Management Review 19
In [11] software complexity is added during the development (3), pp. 419-445, 1994.
stages that following the requirements phase, primarily during
the designing and coding phase. In our case to provide [3] ISO, International Organization for Standardization, "ISO
software quality assurance, we performed the testing process 9000:2000, Quality Management Systems-Fundamentals
after solution phase to ensure that design and code meet the and Vocabulary", 2000.
requirements and to achieve a best quality before development [4] ISO, International Organization for Standardization, "ISO
phase, as shown in Figure 2, Also we have modified the 9004:2000, Quality Management Systems-Guidelines for
model introduced in [11] by redesign the productivity phase performance improvements", 2000.
that comes after quality phase to ensure produce software with
high quality, fulfilled all the requirements, uncomplicated [5] Bo Zhang , Changchun and Xiangheng Shen, " The
code, ease of maintenance and modification and less errors. Effectiveness of Real-time Embedded Software Testing"
, 978-1-61284-666-8/11$26.00 2011 IEEE.
[6] Wesley K., Daniela de., Thelma E., Silvia R. "
Evaluating test reuse of a software product line
oriented strategy", 978-1-4577-1490-01111$26.00
©2011 IEEE
[7] P. C. Clements, L. G. Jones, J. D. Mcgregor and L.
M. Northrop, "Getting There From Here: A Roadmap
for Software Product Line Adoption". Communications
of the ACM. Vol. 49, N° 12. Dec., 2006.
[8] A. Tevanlinna, J. Taina and R. Kauppinen. "Product
Family Testing: a Survey". ACM SIGSOFT Sw Eng.
Notes 29(2), 2004, pp. 1-6.
[9] B. P. Lamancha, M. Usaola and M. Piattini, "Software
Product Line Testing, A systematic review".
International Conference on Soft ware, vol. 49, 2009, pp.
78 - 81.
[10] J. D. McGregor. "Testing a soft ware product line".
Technical Report CMU1SEI-2001-TR-022, Soft ware
Engineering Institute, Carnegie Mellon University,
2001.
[11] Yas A. Alsultanny, and Ahmed M. Wohaishi,
"Requirements of Software Quality Assurance Model",
2nd. International Conference on Environmental and
Computer Science, DOI 10.1109/ICECS.2009.43, IEEE,
2009.
Fig 2: New SPL Testing Based Model for software quality
assurance [12] Horch JW. Practical Guide to Software Quality
Management. 2nd edition. Artech House Publishers.
5. CONCLUSIONS ISBN 9781580535274.
In this paper we propose the difference between traditional [13] Hower R. Software QA and Testing Frequently-Asked-
testing and SPL testing strategy. The SPL testing strategy Questions." http://www. Software qatest. Com /qatfaq
starts testing at the begin of development project, so we 1.html. 2009.
modified the old model based on that concept, because the old
12
International Journal of Computer Applications (0975 – 8887)
Volume 69– No.6, May 2013
[14] Basili, V.R. Qualitative software complexity models: A [17] Software Testing Concepts and Practices, K. Mustafa and
summary. In Tutorial on Models and Methods for R.A. Khan. Alpha Science International Ltd. Oxford
Software Management and Engineering. IEEE Computer .U.K. 2007.
Society Press, Los Alamitos, Calif., 1980.
[18] Software Testing and Computing Quality Impleme-
[15] Binder, Robert V. (1999). Testing Object-Oriented ntation, William Lewis, 2nd edition , 2004.
Systems: Objects, Patterns, and Tools. Addison-Wesley
Professional. p. 45. ISBN 0-201-80938-9.
[16] http://www.tutorialspoint.com/software_testing/
13