Conference PaperPDF Available

A systematic literature survey of integration testing in component-based software engineering

Authors:

Abstract

Component-based software engineering (CBSE) has emerged as an approach that offers rapid development of system using fewer resources and effort. The core idea of reuse and cutting down the development costs can be achieved if the components offer reliable services. Thus, integration components and testing become an important phase in CBSE. Integration of components is a very important activity. This involves understanding communication and coordination between the components. Developers are not provided with sufficient information on these components. As a result of this, understanding data flow while integrating these components is a challenge. Component-based software facilitates development of complex systems by allowing integration of reusable components. Testing components is a challenging area of research. There have been troubles integrating the components. This in turn affects the quality and reliability of the software. Our research aims at finding the existing integration testing and challenges in CBSE. The systematic literature survey is based on 49 articles collected from multiple-stage selection process. These articles have been published within the time span of 1995-2009.
Int’l Conf. on Computer & Communication TechnologyŇICCCT’10Ň
__________________________________
978-1-4244-9034-/10/$26.00©2010 IEEE 562
A Systematic Literature Survey of Integration Testing in Component-Based
Software Engineering
S Phani Shashank
Student: dept. of CSSE
Andhra University
Vizag, India
Saripalli.phani@gmail.com
Praneeth Chakka
Student: dept. of CSSE
Andhra University
Vizag, India
praneethch@gmail.com
D Vijay Kumar
Assistant Professor
MGIT
Hyderabad, India
dameravijay@yahoo.com
Abstract Component-based software engineering (CBSE)
has emerged as an approach that offers rapid
development of system using fewer resources and effort.
The core idea of reuse and cutting down the development
costs can be achieved if the components offer reliable
services. Thus, integration components and testing become an
important phase in CBSE. Integration of components is a
very important activity. This involves understanding
communication and coordination between the components.
Developers are not provided with sufficient information
on these components. As a result of this,
understanding data flow while integrating these components is
a challenge. Component-based software facilitates
development of complex systems by allowing integration of
reusable components. Testing components is a challenging area
of research. There have been troubles integrating the
components. This in turn affects the quality and reliability of
the software. Our research aims at finding the existing
integration testing and challenges in CBSE. The systematic
literature survey is based on 49 articles collected from
multiple-stage selection process. These articles have been
published within the time span of 1995-2009.
I. I
NTRODUCTION
Testing, like inspection is often done as part of
verification. During the development of a system, 50
percent of the time and more than 50 percent of the
total cost are expended for testing [35]. So it is of utmost
importance to test a system to cut unnecessary cost and time.
In the recent past, Component Based Software Engineering
(CBSE) has gained a very high importance. This is attributed
to the reduction of cost and time in building the software
using reusable components. A component is generally
defined as a piece of executable software with a published
interface [28]. The identified advantages of CBSE:
Reduced lead time, enhanced quality, Maintenance of
Component-based applications are explained in [30].
Developers are not provided with sufficient
information on these components [31]. Reliance
of components introduces problems of testing [19]. Testing
components is a challenging area of research. Existing body
of knowledge in this field tells there are problems in
integrating the component [29]. Overall our research
mission is to find and scrutinize the current techniques and
issues in Integration Testing in CBSE. This will be a good
starting point in furthering the research. In this research we
aim at conducting a systematic literature survey of the state
of the art in Integration Testing in CBSE. The most crucial
aspect for a researcher is to have adequate knowledge of
what has been produced in the area of interest. Performing a
literature search helps define an unsolved problem [51]. We
will follow the Research process explained in [51]. In
section 2, we describe the method we followed for
systematic survey. It includes our research questions, search
strategy, inclusion/exclusion criteria in selection of
the articles, and quality assessment of the articles. In Section
3 we discuss our results. Sections 4 and 5 contain discussion
on future work and validity threats in our research.
Conclusions are presented in Section 6.
II. R
ESEARCH METHOD
In doing the systematic literature survey we followed the
guidelines provided by Kitchenham [50]. According to [50],
a systematic literature survey is a systematic process of
finding and assessing the available research related to
particular questions of interest. An important reason for
undertaking such a study is to identify areas of further
investigation/research.
A. Research Questions we formulated the following
objectives.
1) Survey of existing integration testing techniques for
CBSE.
2) Understand the issues and challenges in CBSE.
3) Compare the existing techniques and find scope for
overcoming the challenges.
4) Identify the issues in determining the testability of
components.
5) A document containing a formal report of the above
mentioned objectives.
To get good understanding of the above mentioned, we
formulated research questions. These are as follows.
Int’l Conf. on Computer & Communication TechnologyŇICCCT’10Ň
563
RQ1) What is the state of art in integration testing of
software components?
SQ1) What are the different phases in testing CBSE?
SQ2) What are the existing techniques?
SQ3) What are the challenges in integrated testing in
CBSE?
RQ2) How is testability of components determined?
SQ4) What data is needed to understand the behavior of
the components?
SQ5) What are the key issues and challenges in analyzing
the components interaction?
B. Search Strategy
Our search strategy is based on the following.
1) Identification of search terms to find articles that relate to
our research questions. The search terms alternate words
and synonyms. The following search terms are used in our
search strategy – component-based software, component
based software, integration testing, integration testing
techniques, COTS, components, challenges, testing
challenges, testability, components behavior(u)r, interaction,
components interaction.
2) Use of Boolean AND to join the search terms and use of
Boolean OR to join synonyms/alternate words.
3) We used a multiple-phase strategy for searching. Firstly,
we searched electronic databases. We chose the 1995 as the
starting year of search. We searched within the following
two electronic databases:
- IEEEXplore.
- ACM Digital Library.
To limit the number of articles in every search, we selected
the articles available in full text. We then selected the
articles based on abstract. In the second stage, we scanned
references and selected a few that were available in the
above mentioned journals only.
C. Inclusion/Exclusion criteria
CBSE is a vast field of research. To limit our
research to software testing, i.e. in accordance with our
research questions we formulated criteria to include and
exclude articles in our study. We applied the following
inclusion criteria.
- Published within the time span of 1995 – 2009
- Article available in full text
- Articles can be on controlled experiments, literature survey
or industrial practice
- Articles on models or frameworks for testing
- Articles evaluating on existing models or extending the
models
We applied the following exclusion criteria.
- Articles not related to Software Engineering/Computer
Science
- Articles that do not match the inclusion criteria
- Articles not related to Software Testing
- Articles on test plan
- Articles on Metrics
- Articles on Maintenance
- Articles on Service oriented software systems, Object-
oriented software systems
- Articles on software testing tools
Table 1 shows the results of our preliminary search before
applying inclusion criteria is
TABLE I. P
RELIMINARY SEARCH RESULT
Journal Count
IEEE 820
ACM 769
After applying detailed Inclusion/Exclusion criteria we were
left with 32 articles. Table 2 shows the distribution of the
papers.
TABLE II. S
EARCH RESULT AFTER
E
XCLUSION
/I
NCLUSION CRITERIA
Journal Count
IEEE 20
ACM 12
In the second stage of the search, we scanned the references
and we selected 17 articles. Table 3 shows the distribution
of the papers.
TABLE III. F
INAL S EARCH RESUL T
Journal Count
IEEE 15
ACM 2
D. Quality assessment
Quality data is essential in synthesis of the results [50]. We
applied the following criteria to select studies of good
quality.
- Is the reader able to understand the aims of the research?
- Is the context of study clearly stated?
- Is the study verified/ assumptions proved?
- Is the research useful to software industry/research
community?
- Are the conclusions related to the aim and the very purpose
of the goal of the research?
III. R
ESULTS
In this section, we describe the results of our search. We
classified the results into four parts. These are –
1) Testing Techniques
2) Testing Challenges
3) Testability
4) Challenges in Testability
Tables 4, 5, 6 and 7 show the distribution of papers
pertaining to the above classifications.
TABLE IV. D
ISTRIBUTION OF ARTICLES FOR
T
ESTING
T
ECHNIQUES
Author Year
ZHENYI ET AL. 1995 [52]
ZHENYI ET AL. 1996 [7]
HARTMANN ET AL. 2000 [36]
Int’l Conf. on Computer & Communication TechnologyŇICCCT’10Ň
564
YE ET AL. 2000 [53]
DELAMARO ET AL. 2001 [5]
WU ET AL. 2001 [19]
BEYDEDA ET AL. 2001 [54]
ATKINSON ET AL. 2002 [4]
BEYDEDA ET AL. 2003 [24]
BLUNDELL ET AL. 2005 [48]
GAO ET AL. 2005 [25]
CHENGYING ET AL. 2005 [20]
VALENTINI ET AL. 2005 [11]
LI ET AL. 2006 [8]
LIANGLI ET AL. 2006 [55]
BRENNER ET AL. 2006 [17]
GAO ET AL. 2006 [18]
BEYDEDA ET AL. 2006 [23]
VAěEKOVÁ ET AL. 2007 [49]
BENZ 2007 [43]
HOU ET AL. 2007 [21]
WEIQUN ET AL. 2007 [10]
MACHADO ET AL. 2007 [3]
GUO ET AL. 2007 [56]
CHENGYING ET AL. 2007 [57]
LIANGLI ET AL. 2007 [2]
BOUAZIZ ET AL. 2008 [16]
ZHENG ET AL. 2008 [22]
PACHECO ET AL. 2008 [46]
PACHECO ET AL. 2009 [44]
PIEL ET AL. 2009 [37]
NIEBUHR ET AL. 2009 [58]
BORNER ET AL. 2009 [9]
TABLE V. D
ISTRIBUTION OF ARTICLES FOR
T
ESTING
C
HALLENGES
AND
I
SSUES
Author Year
WEYUKER ET AL. 1998 [29]
DASIEWICZ ET AL. 1999 [12]
ULRICH ET AL. 1999 [39]
ALLESANDRO ET AL. 2001 [26]
WU ET AL. 2001 [19]
GAO ET AL. 2003 [27]
BEYDEDA ET AL. 2003 [59]
GAO ET AL. 2004 [42]
ZHENG ET AL. 2005 [41]
BEYDEDA ET AL. 2005 [60]
PAVLOVA ET AL. 2006 [40]
GAO ET AL. 2006 [18]
MACHADO ET AL. 2007 [3]
GILL ET AL. 2007 [47]
WEIQM ET AL. 2008 [61]
Authors Year
DELAMARO ET AL. 1996 [62]
WANG ET AL. 1997 [32]
ZHENYI ET AL. 1999 [7]
DASIEWICZ ET AL. 1999 [12]
HARTMANN ET AL. 2000 [36]
BERTOLINO ET AL. 2002 [34]
HADDOX ET AL. 2002 [15]
JUNGMAYR ET AL. 2002 [14]
GAO ET AL. 2003 [27]
EDWARDS ET AL. 2004 [35]
BARBIER ET AL. 2005 [33]
YING ET AL. 2005 [63]
LI ET AL. 2005 [45]
LI ET AL. 2006 [8]
LIANGLI ET AL. 2006 [6]
LIANGLI ET AL. 2006 [64]
WEIQUN ET AL. 2007 [10]
LIANGLI ET AL. 2007 [2]
FULIANG ET AL. 2007 [1]
BENZ 2007 [43]
CHENGYING ET AL. 2007 [65]
GONZALEZ ET AL. 2009 [13]
NIEBUHR ET AL. 2009 [38]
TABLE VI.
D
ISTRIBUTION OF ARTICLES FOR
T
ESTABILITY
TABLE VII. D
ISTRIBUTION OF ARTICLES FOR
C
HALLENGES IN
T
ESTABILITY
Authors Year
FULIANG ET AL. 2007 [1]
A. Existing Technique
Our search resulted in 33 articles. Out of them 25 were
published in IEEE and the rest 8 were published in
ACM Digital Library. The summary of the techniques is
given in Table 8.
TABLE VIII. S
UMMARY OF
T
ESTING
T
ECHNIQUES
Techniques References
Using Grouped-Metadata Object
(Model)
[2]
UML based models [3, 10, 36]
Contract based Testing [4, 11, 22]
Coupling based Testing [12, 52]
State Machine based Testing [8, 16, 56]
Interface Mutation Testing [5, 21]
API – based [18, 25]
Component Interaction Graph
(CIG) Model
[19]
Regression Testing [20, 21, 57]
Self-Testing Method [23, 24]
Data-flow Testing [3, 55]
Component Testing Model [44, 53, 54]
Feedback-Random Testing [46]
Assume-Guarantee Testing [48]
Verification Model [49, 58]
We found 25 studies related to Testing Techniques in
CBSE. Out of these 9 were extensions of already developed
models. Article [3] presents an UML based approach to
integration testing using Object Constraint Language. In
[10] the work was further extended to develop a
model-based based approach using three techniques
namely Scenario-based, contract-based and Component
Test Mapping Technique. Article [36] is design-based
testing approach that discusses generating test-cases
automatically. Another popular approach is Contract-based
testing. Article [11] gives a framework called CrashIt. It is
based on contract-checkers that verifies the information
between the component producer and the user. In [22] this
technique was furthered by combining with UML-based
testing at the modeling level rather than design level.
4 The article [18] discusses a Regression testing based on
API changes and their corresponding impacts. API based
approach for validation of the software is explained in [25].
Int’l Conf. on Computer & Communication TechnologyŇICCCT’10Ň
565
The idea of Metamorphic-Testing [24] is extended in [23].
Components are augmented with specific functionalities. In
absence of formal models testing based on Scenarios is
a key point. Integration Testing based on scenarios using
Finite State Machine is discussed in [8]. In [16] the work
was furthered to test real time component-based systems. A
case study of Feedback-Random Testing done on a .Net
component at Microsoft is explained in [40]. Article [44]
presents an approach to test aiming to reduce the gap
between component producer and the user. Article [37]
presents an approach when the component-base system is
evolving at run-time. This approach is based on virtual
components based on data-flow behavior
B. Key Challenges and Issues
We found 15 studies exclusively on key challenges and
issues in testing component-based software systems resulted
15 studies. Out of them 11 were published in IEEEXplore
and the rest 4 in ACM Digital Library. Major challenges
include [3, 41, and 47]
1) Lack of Source code
2) Heterogeneity of specifications and technology
3) Incomplete interface specifications
4) Difficulty in identifying the dependencies.
Challenges in testing component-based embedded systems
are explained in [40]. Lack of component standardization is
major challenge in testing component-based systems [47].
Reusability of environment for testing is another major
challenge [47]. There are no systematic methods and tools
that support analysis of component change, impact
analysis, and automatic test case selection [18]. Article
[29] generalizes problems resulted from a system
made of reusable components. This can be highlighted
as focus point on overcoming challenges.
C. Testability
We identified 23 papers that dealt with Testability
answering understanding behaviour of the components
and their interactions. Of these 19 were published in
IEEEXplore and 4 in ACM Digital Library. Summary of the
results are given in Table 9.
TABLE IX. S
UMMARY OF
T
ESTABILITY
Feature Article
INTERIOR INFORMATION OF A
COMPONENT. NOTION OF
TESTABILITY
[1]
IMPROVING TESTABILITY USING
METADATA
[2]
IDENTIFICATION OF
DEPENDENCY CODE BASED
APPROACH & SCENARIO BASED
APPROACH
[6]
DEFINING COUPLING-BASED TEST
CRITERIA
[7]
IDENTIFYING DEPENDENCIES
USING SCENARIOS & TEST DATA
GENERATION
[8]
DEFINING TEST CRITERIA USING [10]
COMPONENT TEST MAPPING
TECHNIQUE
MATHEMATICAL MODEL TO
MODEL INTERACTIONS AMONG
COMPONENTS
[12]
MEASURING TESTABILITY AT
RUNTIME
[13]
TESTABILITY FROM THE POINT
OF VIEW OF ARCHITECTURE
[14,65]
IMPROVING TESTABILITY [27, 32, 33, 34, 35]
WRAPPING METHOD TO TEST
INTERACTION OF COMPONENTS
[15]
DEFINING BEHAVIOR OF
COMPONENTS USING UML
[36]
DETECTING INCOMPATIBILITY OF
COMPONENTS AT RUNTIME
[38, 63]
INTERACTION MODELING
COVERING ERROR PRONE
SCENARIOS
[43, 62]
MATRIX-BASED APPROACH TO
ANALYZE DEPENDENCIES
[45, 64]
D. Testability Challenges
We found only one article (source: IEEEXplore) [1]
through the search criteria. Authors of the article say the
characteristics of components, as described in [1] are not
usually found. This lack of information is a challenge in
understanding testability.
IV. D
ISSCUSION AND FUTURE WORK
In our study of exiting testing techniques and model
for integrating component-based software systems,
research is focused on techniques based on contracts,
UML and finite state machine. Considering the number of
articles produced, testing of real-time systems occupies little
portion. Also, it is interesting to investigate on the issues
like time to test, effort to be invested in testing, and the role
of metrics in testing and also in component interaction
models. Our studies also show evidence of CBSE and
testing in the field of embedded systems. There is good
coverage in terms of research in understanding the
behaviour of components, interactions and compatibility of
components. We present ideas of future work in the form of
following questions/points.
1) Is CBSE suitable when there are frequently changing
requirements (i.e. I Agile fashion)?
2) Testing tools in CBSE.
3) Investigation/case study of CBSE in Software industry?
4) How to achieve common component standardization and
environmental characteristics?
V.
LIMITATIONS AND VALIDITY THREATS
Our study is not free from limitations and validity threats.
Firstly, we searched only two journals (IEEEXplore and
ACM Digital Library). We could not search other important
journals like Springer Link and Science Direct, as planned,
on account of time constraint. However, we found there is a
considerate body of knowledge in the journals we covered.
We describe different validity threats to our study.
Conclusion Validity refers to the biasness in applying data
Int’l Conf. on Computer & Communication TechnologyŇICCCT’10Ň
566
extraction [31]. We defined Inclusion/Exclusion criteria and
did a qualitative assessment in order to include the articles in
our study. This is done to minimize the affect of biasness.
We deliberately chose IEEEXplore and ACM Digital Library
as the journals of primary interest and research. Internal
Validity refers to causal relationship between a treatment and
outcome. This may come from unpublished articles and
journals/conferences we do not have access to. Another
source of Internal Validity may come from the journals we
did not search. Construct Validity refers to the ability of a
researcher in measuring what he/she intends to measure [31].
It is the relationship between theory and application.
Exclusion of articles on Object-oriented and service-oriented
technologies, test plan and metrics was done deliberately.
We adhered strictly to the keywords for search. External
Validity refers to the generalization of results outside the
scope of study [31]. We believed we followed our search
strategy and it represented our overall goal. We scanned
references and we found articles that were published in
Springer Link. These articles are [33, 34]. This was done to
minimize the External Validity threat.
VI.
CONCLUSIONS
The systematic Literature survey investigated existing
integration testing techniques, understanding the behavior of
components and their interactions. We also presented
challenges in this area. As seen from the year of publication
of the articles, it can be understood that the research was
rather dull until the year 2001. There were 8 articles
published. From the year 2001 research geared up and more
than 4 articles were published on an average. There exists a
need to establish requirements traceability and behaviour of
evolving or changing components. The research also points
investigate into automation of testing in CBSE.
We believe further research in the field of automated
testing of components, testing at run-time and approaches to
generate test-cases for evolving components would be
beneficial. However non-functional aspects in a system
composed of components could be analyzed and tested has a
great potential.
R
EFERENCES
[1] Guo Fuliang; Ma Liangli, "A Metadata Configuration Model for
Component-Based Software Integration Testing," Computational
Intelligence and Security Workshops, 2007. CISW 2007. International
Conference on , vol., no., pp.898-901, 15-19 Dec. 2007
[2] Ma Liangli; Wang Houxiang; Li Yongjie, "A Reference Model of
Grouped-Metadata Object and a Change Model based on it Appling
for Component-based Software Integration Testing," Computer
Systems and Applications, 2007. AICCSA '07. IEEE/ACS
International Conference on , vol., no., pp.32-39, 13-16 May 2007
[3] Machado, P.D.L.; Figueiredo, J.C.A.; Lima, E.F.A.; Barbosa, A.E.V.;
Lima, H.S., "Component-based integration testing from UML
interaction diagrams," Systems, Man and Cybernetics, 2007. ISIC.
IEEE International Conference on , vol., no., pp.2679-2686, 7-10
Oct. 2007
[4] C. Atkinson and H.-G. Gross, “Built-in contract testing in
modeldriven,component-based development,” in ICSR Work. on
Component-Based Develop. Processes, 2002.
[5] Delamaro, M. E., Maldonado, J. C., and Mathur, A. P.,Interface
Mutation: an approach to integration testing, IEEE TSE, Vol. 27, No.
3, March 2001, pp228-247.
[6] Ma Liangli; Wang Houxiang; Li Yongjie, "Using Component
Metadata based on Dependency Relationships Matrix to improve the
Testability of Component-based Software," Digital Information
Management, 2006 1st International Conference on , vol., no., pp.13-
18, 6-6 Dec. 2006
[7] Zhenyi Jin; Offutt, A.J., "Coupling-based integration testing,"
Engineering of Complex Computer Systems, 1996. Proceedings.,
Second IEEE International Conference on , vol., no., pp.10-17, 21-25
Oct 1996
[8] Li, K.; Groz, R.; Shahbaz, M., "Integration Testing of Components
Guided by Incremental State Machine Learning," Testing: Academic
and Industrial Conference - Practice And Research Techniques,
2006. TAIC PART 2006. Proceedings , vol., no., pp.59-70, 29-31
Aug. 2006
[9] Borner, Lars; Paech, Barbara, "Integration Test Order Strategies to
Consider Test Focus and Simulation Effort," Advances in System
Testing and Validation Lifecycle, 2009. VALID '09. First
International Conference on , vol., no., pp.80-85, 20-25 Sept. 2009
[10] Weiqun Zheng; Bundell, G., "Model-Based Software Component
Testing: A UML-Based Approach," Computer and Information
Science, 2007. ICIS 2007. 6th IEEE/ACIS International Conference
on , vol., no., pp.891-899, 11-13 July 2007
[11] Valentini, E.; Fliess, G.; Haselwanter, E., "A framework for efficient
contract-based testing of software components," Computer Software
and Applications Conference, 2005. COMPSAC 2005. 29th Annual
International , vol.2, no., pp. 219-222 Vol. 1, 26-28 July 2005
[12] Liu, W.; Dasiewicz, P., "Formal test requirements for component
interactions," Electrical and Computer Engineering, 1999 IEEE
Canadian Conference on , vol.1, no., pp.295-299 vol.1, 1999
[13] Gonzalez, A.; Piel, E.; Gross, H.-G., "A Model for the Measurement
of the Runtime Testability of Component-Based Systems," Software
Testing, Verification and Validation Workshops, 2009. ICSTW '09.
International Conference on , vol., no., pp.19-28, 1-4 April 2009
[14] S. Jungmayr. Identifying test-critical dependencies. InICSM ’02:
Proceedings of the International Conference on Software
Maintenance (ICSM’02), pages 404–413, Washington, DC, USA,
2002. IEEE Computer Society.
[15] Haddox, J.M.; Kapfhammer, G.M., "An approach for
understanding and testing third party software components,"
Reliability and Maintainability Symposium, 2002. Proceedings.
Annual , vol., no., pp.293-299, 2002
[16] Bouaziz, R.; Berrada, I., "Testing Component-Based Real Time
Systems," Software Engineering, Artificial Intelligence, Networking,
and Parallel/Distributed Computing, 2008. SNPD '08. Ninth ACIS
International Conference on , vol., no., pp.888-894, 6-8 Aug. 2008
[17] Brenner, D., "Enabling Run-Time System Verification through Built-
In Testing," Testing: Academic and Industrial Conference - Practice
AndResearch Techniques, 2006. TAIC PART 2006.
Proceedings , vol., no., Applications FIDJI 2002, Luxembourg,
28–29 November 2002. LNCS 2604,pp.131-136, 29-31 Aug. 2006
pp. 165–174, Springer, 2002.
[18] Gao, J.; Gopinathan, D.; Quan Mai San; He, J., "A Systematic
Regression Testing Method and Tool For Software Components,"
Computer Software and Applications Conference, 2006. COMPSAC
'06. 30th Annual International , vol.1, no., pp.455-466, 17-21 Sept.
2006
[19] Ye Wu; Dai Pan; Mei-Hwa Chen, Techniques for testing component-
based software, In procedings Engineering of Complex Computer
Systems, 2001. 17th IEEE International Conference , vol., no.,
pp.222-232, 2001.
[20] Chengying Mao; Yansheng Lu, "Regression testing for component-
based software systems by enhancing change information," Software
Engineering Conference, 2005. APSEC '05. 12th Asia-Pacific , vol.,
no., pp. 8 pp.-, 15-17 Dec. 2005
Int’l Conf. on Computer & Communication TechnologyŇICCCT’10Ň
567
[21] Shan-Shan Hou; Lu Zhang; Tao Xie; Hong Mei; Jia-Su Sun,
"Applying Interface-Contract Mutation in Regression Testing of
Component-Based Software," Software Maintenance, 2007. ICSM
2007. IEEE International Conference on , vol., no., pp.174-183, 2-5
Oct. 2007
[22] Weiqun Zheng; Bundell, G., "Test by Contract for UML-Based
Software Component Testing," Computer Science and its
Applications, 2008. CSA '08. International Symposium on , vol., no.,
pp.377-382, 13-15 Oct. 2008
[23] Beydeda, S., "Self-Metamorphic-Testing Components," Computer
Software and Applications Conference, 2006. COMPSAC '06. 30th
Annual International , vol.2, no., pp.265-272,17-21Sept.2006
[24] S. Beydeda and V. Gruhn. Merging components and testing tools:
The self-testing COTS components (STECC) strategy. In
EUROMICRO Conference - Component-based Software Engineering
Track (EUROMICRO), pages 107–114. IEEE Computer Society
Press, 2003.
[25] Jerry Gao, Raquel Espinoza, and Jingsha He, “Testing Coverage
Analysis for Software Component Validation”, Proceedings of
COMPSAC 2005,Edinburgh, Scotland, July 26-28, 2005
[26] Allesandro Orso, Mary Jean Harrold, D. Rosenblum, Greg
Rothermel, "Using component metacontents to support the regression
testing of Component-Based Software". Proceedings from the ICSE
workshop in Component Based Software Engineering. 2001 (Jan 7
2005).
[27] Jerry Gao, Jacob Tsao, and Ye Wu (2003). Testing and Quality
Assurance for Component-Based Software Massachusetts: Artech
House, Inc.
[28] Hopkins, J. Component Primer. Commun. ACM 43, 10, 27-30, Oct.
2000.
[29] E.J Weyuker. Testing component-based software:a cautionary tale.
IEEE Sofware, 15(5):54-59, SeptembedOctober 1998.
[30] P. Vitharana. Risks and Challenges of Component-Based Software
Development. Comm. ACM, vol. 46, no. 8, pp. 67-72, Aug 2003.
[31] Pour, G. Moving toward component-based software development
approach. Technology of Object-Oriented Languages, 1998. TOOLS
27. Proceedings, vol., no., pp.296-300, 22-25 Sep 1998.
[32] Y. Wang, G. King, I. Court, M. Ross, and G. Staples, “On
TestableObject-Oriented Programming,” ACM SIGSOFT Software
Engineering Notes, vol. 22 no. 4, pp. 84–90, July 1997.
[33] F. Barbier. COTS Component Testing through Built-In Test. In Sami
Beydeda & Volker Gruhn (Eds.), Testing Commercial-offthe-Shelf
Components and Systems. pp. 55–70, Springer, 2005.
[34] A. Bertolino and A. Polini. WCT: A Wrapper for Component
Testing International Workshop on Scientific Engineering
for Distributed Java Applications FIDJI 2002, Luxembourg, 28–29
November 2002. LNCS 2604, pp. 165–174, Springer, 2002.
[35] S Reid. The art of software testing (2nd Edition). Glenfor J. Mayers
revised and updated by Tom Badgett and Todd M. Thomas, with
Corey Sandler. John wile and sons, 2005.
[36] Hartmann, J., Imoberdorf, C., and Meisinger, M. 2000. UML-Based
integration testing. In Proceedings of the 2000 ACM SIGSOFT
international Symposium on Software Testing and Analysis (Portland,
Oregon, United States, August 21 - 24, 2000). M. J. Harold, Ed.
ISSTA '00. ACM, New York, NY, 60-70.
[37] Piel, É. and Gonzalez-Sanchez, A. 2009. Data-flow integration testing
adapted to runtime evolution in component-based systems. In
Proceedings of the 2009 ESEC/FSE Workshop on Software
integration and Evolution @ Runtime (Amsterdam, The Netherlands,
August 25 - 25, 2009). SINTER '09. ACM, New York, NY, 3-10.
[38] Niebuhr, D. and Rausch, A. 2009. Guaranteeing correctness of
component bindings in dynamic adaptive systems based on runtime
testing. InProceedings of the 4th international Workshop on Services
integration in Pervasive Environments (London, United Kingdom,
July 13 - 17, 2009). SIPE 09. ACM, New York, NY, 7-12.
[39] Ulrich, A. and Chrobok-Diening, G. 1999. International Workshop on
Testing Distributed Component-Based Systems. SIGSOFT Softw.
Eng. Notes 24, 4 (Jul. 1999), 43-46.
[40] Pavlova, I., Åkerholm, M., and Fredriksson, J. 2006. Application of
built-in-testing in component-based embedded systems. In
Proceedings of the ISSTA 2006 Workshop on Role of Software
Architecture For Testing and Analysis (Portland, Maine, July 17 - 20,
2006). ROSATEA '06. ACM, New York, NY, 51-52.
[41] Zheng, J., Robinson, B., Williams, L., and Smiley, K. 2005. A
process for identifying changes when source code is not available. In
Proceedings of the Second internationa l Workshop on Models and
Processes For the Evaluation of off-the-Shelf Components (St. Louis,
Missouri, May 21 - 21, 2005). MPEC '05. ACM, New York, NY, 1-4.
[42] Gao, J. and Wu, Y., "Testing Component-Based Software - Issues,
Challenges, and Solutions," in 3rd International Conference on
COTS-Based Software Systems. Redondo Beach, Jan. 2004.
[43] Benz, S. 2007. Combining test case generation for component and
integration testing. In Proceedings of the 3rd international Workshop
onAdvances in Model-Based Testing (London, United Kingdom, July
09 - 12, 2007). A-MOST '07. ACM, New York, NY, 23-33.
[44] Silva, F. R., Almeida, E. S., and Meira, S. R. 2009. An approach for
component testing and its empirical validation. In Proceedings of the
2009 ACM Symposium on Applied Computing (Honolulu, Hawaii).
SAC '09. ACM, New York, NY, 574-581.
[45] Li, B., Zhou, Y., Wang, Y., and Mo, J. 2005. Matrix-based
component dependence representation and its applications in software
quality assurance. SIGPLAN Not. 40, 11 (Nov. 2005), 29-36.
[46] D. Hamlet. Random testing. In Encyclopedia of Software
Engineering. John Wiley and Sons, 1994.
[47] Gill, N. S. and Tomar, P. 2007. CBS testing requirements and
test case process documentation revisited. SIGSOFT Softw. Eng.
Notes 32, 2 (Mar. 2007), 1-4.
[48] Blundell, C., Giannakopoulou, D., and Pӽsӽreanu, C. S. 2005.
Assume-guarantee testing. In Proceedings of the 2005 Conference on
Specification and Verification of Component-Based Systems (Lisbon,
Portugal, September 05 - 06, 2005). SAVCBS '05. ACM, New York,
NY, 1.
[49] VaĜeková, P., Moravec, P., ýerná, I., and Zimmerova, B. 2007.
Effective verification of systems with a dynamic number
of components. In Proceedings of the 2007 Conference on
Specification and Verification of Component-Based Systems: 6th
Joint Meeting of the European Conference on Software Engineering
and the ACM SIGSOFT Symposium on the Foundations of Software
Engineering (Dubrovnik, Croatia, September 03 - 04, 2007).
SAVCBS '07. ACM, New York, NY, 3-13.
[50] Kitchenham's Guidelines to Systematic Review.
Available:http://www.idi.ntnu.no/emner/empse/papers/kitchenham_2
004.pdf
[51] Reed, L.E., Performing a literature review, 28th Annual Frontiers in
Education Conference (FIE '98), pages.380-383 vol.1, 4-7 Nov 1998.
[52] Zhenyi Jin; Offutt, A.J.; , "Integration testing based on software
couplings," Computer Assurance, 1995. COMPASS '95. 'Systems
Integrity, Software Safety and Process Security'. Proceedings of the
Tenth Annual Conference on , vol., no., pp.13-23, 25-29 Jun 1995
[53] Ye Wu; Dai Pan; Mei-Hwa Chen; , "Techniques of maintaining
evolving component-based software," Software Maintenance, 2000.
Proceedings. International Conference on , vol., no., pp.236-246,
2000
[54] Beydeda, S.; Gruhn, V.; , "An integrated testing technique for
component-based software," Computer Systems and Applications,
ACS/IEEE International Conference on. 2001 , vol., no., pp.328-334,
2001
[55] Ma Liangli; Wang Houxiang; Lu Yansheng; , "The Design of
Dependency Relationships Matrix to improve the testability of
Component-based Software," Quality Software, 2006. QSIC 2006.
Sixth International Conference on , vol., no., pp.93-98, 27-28 Oct.
2006
Int’l Conf. on Computer & Communication TechnologyŇICCCT’10Ň
568
[56] Guo Fuliang; Ma Liangli; , "A Metadata Configuration Model for
Component-Based Software Integration Testing," Computational
Intelligence and Security Workshops, 2007. CISW 2007. International
Conference on , vol., no., pp.898-901, 15-19 Dec. 2007
[57] Chengying Mao; , "Built-in Regression Testing for Component-based
Software Systems," Computer Software and Applications Conference,
2007. COMPSAC 2007. 31st Annual International , vol.2, no.,
pp.723-728, 24-27 July 2007
[58] Niebuhr, D.; Rausch, A.; Klein, C.; Reichmann, J.; Schmid, R.; ,
"Achieving Dependable Component Bindings in Dynamic Adaptive
Systems - A Runtime Testing Approach," Self-Adaptive and Self-
Organizing Systems, 2009. SASO '09. Third IEEE International
Conference on , vol., no., pp.186-197, 14-18 Sept. 2009
[59] Beydeda, S.; Gruhn, V.; , "Merging components and testing tools: the
self-testing COTS components (STECC) strategy," Euromicro
Conference, 2003. Proceedings. 29th , vol., no., pp. 107- 114, 1-6
Sept. 2003
[60] Beydeda, S.; , "Research in testing COTS components - built-in
testing approaches," Computer Systems and Applications, 2005. The
3rd ACS/IEEE International Conference on , vol., no., pp. 101, 2005
[61] Weiqun Zheng; Bundell, G.; , "Test by Contract for UML-Based
Software Component Testing," Computer Science and its
Applications, 2008. CSA '08. International Symposium on , vol., no.,
pp.377-382, 13-15 Oct. 2008
[62] Delamaro, M.E.; Maldonado, J.C.; Mathur, A.P.; , "Integration testing
using interface mutation," Software Reliability Engineering, 1996.
Proceedings., Seventh International Symposium on , vol., no., pp.112-
121, 30 Oct-2 Nov 1996
[63] Ying Jiang; Shan-Shan Hou; Jin-Hui Shan; Lu Zhang; Bing Xie; ,
"Contract-based mutation for testing components," Software
Maintenance, 2005. ICSM'05. Proceedings of the 21st IEEE
International Conference on , vol., no., pp. 483- 492, 26-29 Sept.
2005
[64] Ma Liangli; Wang Houxiang; Li Yongjie; , "Using Component
Metadata based on Dependency Relationships Matrix to improve the
Testability of Component-based Software," Digital Information
Management, 2006 1st International Conference on , vol., no., pp.13-
18, 6-6 Dec. 2006
[65] Chengying Mao; , "AOP-based Testability Improvement for
Component-based Software," Computer Software and Applications
Conference, 2007. COMPSAC 2007. 31st Annual International ,
vol.2, no., pp.547-552, 24-27 July 2007
... A more recent study by Shashank et al. from 2010 also focuses on the field of integration testing of component-based software systems. However, the study, published as a conference paper, is limited in terms of its sample size; rather than an extensive classification, it provides an overview of available approaches and selected examples of approaches [49]. Despite the limited extent of the study, the brief classification of the state-of-the-art methods into established MBT and software verification categories provided in this study is valid. ...
... Regarding the third point, the argument that interoperability and integration testing itself might not be understood as a subject of primary research, rather as an application of primary testing approaches, there are two counter-arguments worth mentioning. First, in general system testing research, integration testing is understood as a standalone research topic, as is documented in previous mapping studies [49,27]; in particular, the study by Haser et al. documents the broad extent of studies dedicated to integration testing of software and cyber-physical systems [27]. Moreover, another finding by a recent study conducted by Ahmed et al. [3] should be considered. ...
Chapter
Full-text available
The recent active development of Internet of Things (IoT) solutions in various domains has led to an increased demand for security, safety, and reliability of these systems. Security and data privacy are currently the most frequently discussed topics; however, other reliability aspects also need to be focused on to maintain smooth and safe operation of IoT systems. Until now, there has been no systematic mapping study dedicated to the topic of interoperability and integration testing of IoT systems specifically; therefore, we present such an overview in this study. We analyze 803 papers from four major primary databases and perform detailed assessment and quality check to find 115 relevant papers. In addition, recently published testing techniques and approaches are analyzed and classified; the challenges and limitations in the field are also identified and discussed. Research trends related to publication time, active researchers, and publication media are presented in this study. The results suggest that studies mainly focus only on general testing methods, which can be applied to integration and interoperability testing of IoT systems; thus, there are research opportunities to develop additional testing methods focused specifically on IoT systems, so that they are more effective in the IoT context.
... A more recent study by Shashank et al. from 2010 also focuses on the field of integration testing of component-based software systems. However, the study, published as a conference paper, is limited in terms of its sample size; rather than an extensive classification, it provides an overview of available approaches and selected examples of approaches [49]. Despite the limited extent of the study, the brief classification of the state-of-the-art methods into established MBT and software verification categories provided in this study is valid. ...
... Regarding the third point, the argument that interoperability and integration testing itself might not be understood as a subject of primary research, rather as an application of primary testing approaches, there are two counter-arguments worth mentioning. First, in general system testing research, integration testing is understood as a standalone research topic, as is documented in previous mapping studies [49,27]; in particular, the study by Haser et al. documents the broad extent of studies dedicated to integration testing of software and cyber-physical systems [27]. Moreover, another finding by a recent study conducted by Ahmed et al. [3] should be considered. ...
Preprint
Full-text available
The recent active development of Internet of Things (IoT) solutions in various domains has led to an increased demand for security, safety, and reliability of these systems. Security and data privacy are currently the most frequently discussed topics; however, other reliability aspects also need to be focused on to maintain the smooth and safe operation of IoT systems. Until now, there has been no systematic mapping study dedicated to the topic of interoperability and integration testing of IoT systems specifically; therefore, we present such an overview in this study. We analyze 803 papers from four major primary databases and perform detailed assessment and quality check to find 115 relevant papers. In addition, recently published testing techniques and approaches are analyzed and classified; the challenges and limitations in the field is also identified and discussed. Research trends related to publication time, active researchers, and publication media are presented in this study. The results suggest that studies mainly focus only on general testing methods, which can be applied to integration and interoperability testing of IoT systems; thus, there are research opportunities to develop additional testing methods focused specifically on IoT systems, so that they are more effective in the IoT context.
... Integration testing is a common technique utilized in component-based software engineering [55]. It focuses on evaluating the compatibility and interaction of combined components within a software system to verify that they function together as intended. ...
Preprint
Full-text available
Real-time decision making and innovation capabilities are supported by data-hungry emerging technologies such as machine learning and digital twins. Innovations in manufacturing process control utilizing these emerging technologies are constrained by limited interoperability in spite of plentiful mature standards. To bring awareness to the state of interoperability on the factory floor and in research institutions in the context of an established and widely adopted standard, this process control case study examines the interoperability of a machine tool produced by a premier equipment builder which has exceeded US$1 billion in sales with more than 200,000 machines currently in operation worldwide. Through demonstrating and discussing non-interoperability, non-conformance, and progress inhibitors, this study aims to provide insights and actionable intelligence applicable to industry and academia for laymen, end users, systems integrators, standards developers and maintainers, equipment builders, and data scientists. By leveraging phronesis and empirical evidence to demonstrate the state of interoperability, as well as propose strategies for improving interoperability, this study provides a fresh perspective on an age-old manufacturing challenge.
... (c) Deployment: Progressing from zero on-site testing to integrated testing, service revenue testing, extensive real-time demonstrations, and transition models (Rehman et al., 2007;Shashank et al., 2010). ...
Article
Full-text available
Objective: The research aims to uncover the causes of train accidents in Indonesia beyond those identified by experts and proposes solutions for inclusion in the regulations and standard operating procedures of the Indonesian Railways Company. Theoretical Framework: The United Nations Economic Commission for Europe (UNECE), operating under the UN Economic and Social Council since its establishment in 1947, has introduced the Industry 4.0 concept, titled 'Increasing the Competitiveness of Transportation between Europe and Asia: European Union Rail R&I. This concept incorporates three crucial indicators known as ACT (Aging, Climate Change, and Technology), aligned with the Railway Sustainable Development Goals. Method: This research employs a qualitative approach, gathering data through in-depth interviews using purposive sampling. Interview reviews are presented in the results section. The study involved 28 participants, focusing on the cities of Palembang and Lampung, situated on the tip of the island of Sumatra, bordering the island of Java. Results and Conclusions: The study identified seven themes for inclusion: The development of Railways in Indonesia; Organizational strengths and weaknesses; Human resources; Infrastructure; Operational aspects; Causal factors in train accidents, and Future solutions and contributions to regulation. These were then simplified into three themes following UNECE guidelines. Notably, the main issues with freight trains, primarily used for coal transportation, include an inadequate number of carriages, damage to rails and train sleepers, and excessive cargo loads, leading to frequent train derailments and accidents. The law regulates general provisions for rail freight transportation, but violations are common, and sanctions are minimal due to the state-owned nature of the managing company. Research Implications: This study suggests measures to enhance regulations and Standard Operating Procedures (SOPs) for the Indonesian Railways Company, including adapting regulations and SOPs to improve the operational safety of goods trains. This involves modernizing signaling systems and addressing human errors, particularly during night shifts. Recommendations also cover optimizing single-path and double-path routes, proposing regulations for the adaptation of automatic control systems, and improving the Grade of Automation (GOA). Ensuring the safety of personnel, especially operators and machinists, is emphasized. Originality/Value: This research explores the paradigm shift within Indonesia Railways, transitioning from GOA 0 to GOA 1. Anticipated to significantly impact the safety of goods (coal) trains, this study offers profound insight into the evolution of transportation governance for freight transport by rail. Both the government and Indonesia Railways can consider integrating these findings into regulations or SOPs, despite facing challenges such as funding constraints and the high cost associated with upgrading to GOA 2 infrastructure.
... For experimentation, we have identified and developed Java-Beans components [6] for JPEG (Joint Photography Experts Group) [7]. We have implemented the above mentioned five traces for these components. ...
Article
Full-text available
The Internet of Things (IoT) has brought about a new era of connected devices and systems, with applications ranging from healthcare to transportation. However, the reliability and security of these systems are critical concerns that must be addressed to ensure their safe and effective operation. This paper presents a survey of formal verification and validation (FV&V) techniques for IoT systems, with a focus on the challenges and open issues in this field. We provide an overview of formal methods and testing techniques for the IoT and discuss the state explosion problem and techniques to address it. We also examined the use of AI in software testing and describe examples of tools that use AI in this context. Finally, we discuss the challenges and open issues in FV&V for the IoT and present possible future directions for research. This survey paper aimed to provide a comprehensive understanding of the current state of FV&V techniques for IoT systems and to highlight areas for further research and development.
Chapter
Since the end of the 2000s, connected objects, applications and other innovative digital tools have abounded and continued to grow. However, if the digital evolution makes it possible to reach a large audience, bugs can become a real threat to the sustainability of large companies. In this article, we will provide a brief review of the many strategies for testing software as well as the various approaches to artificial intelligence. In addition, we provide a rundown of the primary benefits that derive from employing artificial methods during the software testing process. In addition, we provide a few examples of artificial intelligence-driven tools that have been specifically developed for the purpose of testing software.KeywordsArtificial intelligenceSoftware testingAdvantagesTools
Article
Full-text available
Context: The inclusion of grey literature (GL) is important to remove publication bias while gathering available evidence regarding a certain topic. The number of systematic literature reviews (SLRs) in Software Engineering (SE) is increasing but we do not know about the extent of GL usage in these SLRs. Moreover, Google Scholar is rapidly becoming a search engine of choice for many researchers but the extent to which it can find the primary studies is not known. Objective: This tertiary study is an attempt to i) measure the usage of GL in SLRs in SE. Furthermore this study proposes strategies for categorizing GL and a quality checklist to use for GL in future SLRs; ii) explore if it is feasible to use only Google Scholar for finding scholarly articles for academic research. Method: We have conducted a systematic mapping study to measure the extent of GL usage in SE SLRs as well as to measure the feasibility of finding primary studies using Google Scholar. Results and conclusions: a) Grey Literature: 76.09% SLRs (105 out of 138) in SE have included one or more GL studies as primary studies. Among total primary studies across all SLRs (6307), 582 are classified as GL, making the frequency of GL citing as 9.23%. The intensity of GL use indicate that each SLR contains 5 primary studies on average (total intensity of GL use being 5.54). The ranking of GL tells us that conference papers are the most used form 43.3% followed by technical reports 28.52%. Universities, research institutes, labs and scientific societies together make up 67.7% of GL used, indicating that these are useful sources for searching GL. We additionally propose strategies for categorizing GL and criteria for evaluating GL quality, which can become a basis for more detailed guidelines for including GL in future SLRs. b) Google Scholar Results: The results show that Google Scholar was able to retrieve 96% of primary studies of these SLRs. Most of the primary studies that were not found using Google Scholar were from grey sources.
Article
Context: The reuse of software has been a research topic for more than 50 years. Throughout that time, many approaches, tools and proposed techniques have reached maturity. However, it is not yet a widespread practice and some issues need to be further investigated. The latest study on software reuse trends dates back to 2005 and we think that it should be updated. Objective: To identify the current trends in software reuse research. Method: A tertiary study based on systematic secondary studies published up to July 2018. Results: We identified 4,423 works related to software reuse, from which 3,102 were filtered by selection criteria and quality assessment to produce a final set of 56 relevant studies. We identified 30 current research topics and 127 proposals for future work, grouped into three broad categories: Software Product Lines, Other reuse approaches and General reuse topics. Conclusions: Frequently reported topics include: Requirements and Testing in the category of Lifecycle phases for Software Product Lines, and Systematic reuse for decision making in the category of General Reuse. The most mentioned future work proposals were Requirements, and Evolution and Variability management for Software Product Lines, and Systematic reuse for decision making. The identified trends, based on future work proposals, demonstrate that software reuse is still an interesting area for research. Researchers can use these trends as a guide to lead their future projects.
Article
Full-text available
Components designed for reuse are expected to lower costs and shorten the development life cycle, but this may not prove so simple. The author emphasizes the need to closely examine a problematic aspect of component reuse: the necessity and potential expense of validating components in their new environments
Article
Full-text available
Presenting the state of the art in component-based software testing, this cutting-edge resource offers you an in-depth understanding of the current issues, challenges, needs and solutions in this critical area. The book discusses the very latest advances in component-based testing and quality assurance in an accessible tutorial format, making the material easy to comprehend and benefit from no matter what your professional level. The book clearly explains what component-based software testing is, why it is important, and how it differs from traditional software testing. From an introduction to software components, testing component-based software and validation methods for software components, to performance testing and measurement, standards and certification and verification of quality for component-based systems, you get a revealing snapshot of the key developments in this area, including important research findings. This volume also serves as a textbook for related courses at the advanced undergraduate or graduate level.
Article
Full-text available
Component-based software engineering has been successfully applied over the past years. Future system generations, like pervasive systems, are a vast array of decentralized, distributed, autonomic, heterogeneous, organically grown and continually evolving subsystems respectively components. Components may join or leave these systems during the whole system life-cycle -- even during runtime. We depend more and more on these dynamic adaptive systems. Hence we have to guarantee their correctness although the systems are evolving during runtime. In this paper we will show that existing approaches cannot guarantee the correctness of component bindings in dynamic adaptive systems. To guarantee system correctness and to support binding of components during runtime we integrate runtime testing into our component infrastructure DAiSI.
Article
Full-text available
Assembling new software systems from prefabricated components is an attractive alternative to traditional software engineering practices which promises to increase reuse and reduce development costs. However, these benefits will only occur if separately developed components can be made to work effectively together with reasonable effort. Lengthy and costly in-situ verification and acceptance testing directly undermines the benefits of inde-pendent component fabrication and late system integration. This paper de-scribes an approach for reducing manual system verification effort by equip-ping components with the ability to check their execution environments at run-time. When deployed in new systems, built-in test (BIT) components check the contract-compliance of their server components, including the run-time system, and thus automatically verify their ability to fulfill their own obliga-tions. Enhancing traditional component-based development methods with built-in contract testing in this way reduces the costs associated with compo-nent assembly, and thus makes the "plug-and-play" vision of component-based development closer to practical reality.
Chapter
Commercial software components have a typical characteristic, which is that they admit no variation. As a result, a component user has to cope with closed, even rigid, software units. In the case of interfaces, this is a sound characteristic because client/server coupling is well-defined, stabilized, and as low as possible. For implementation, this raises the problem of trustworthiness about a component’s actual behavior, its quality of service and its integration capability. In the spirit of a component marketplace, the key actions are choosing and replacing components, upgrading individual components and resultant COTS-based systems, and some inevitable customization. Taking competition into account, vendors may gain much credit by offering technical support for the building of slightly amended versions that permit evaluation, tuning, and more. The ability to endow Commercial Off-The-Shelf (COTS) components with Built-In Test (BIT) material to increase component testability and configurability is the major theme of this chapter. At deployment time, we may thus have new releases called BIT components. Moreover, error correction, functional enhancement, and Quality of Service (QoS) improvement, are also considered in this chapter through the fact that BIT components are relevant software artifacts to organize and instrument a software quality circle between reusers and providers: users’ feedbacks are BIT outputs that help and guide vendors in the construction of new versions.
Article
The need for test adequacy criteria is widely recognized. Several criteria have been proposed for the assessment of adequacy of tests at the unit level. However, there remains a lack of criteria for the assessment of the adequacy of tests generated during integration testing. We present a mutation-based interprocedural criterion, named Interface Mutation (IM), suitable for use during integration testing. A case study to evaluate the proposed criterion is reported. In this study, the UNIX sort utility was seeded with errors and Interface Mutation evaluated by measuring the cost of its application and its error revealing effectiveness. Alternative IM criteria using different sets of Interface Mutation operators were also evaluated. While comparing the error revealing effectiveness of these Interface Mutation-based test sets with same size randomly generated test sets we observed that in most cases Interface Mutation-based test sets are superior. The results suggest that Interface Mutation offers a viable test adequacy criteria for use at the integration level.
Article
A new philosophy contributing towards the design of testable object-oriented (OO) software is introduced in this paper. The testing of conventional OO software focuses on the generation of tests for existing objects and systems; the testable object-oriented programming (TOOP) method draws attention to building testabilities into objects and systems during coding or compiling, so that the succeeding processes in test generation and implementation can be simplified. A new method of TOOP is developed to improve the testability of OO software. Software testability at object level and system level is quantitatively modelled. A set of fundamental built-in testable mechanisms oriented to the basic control structures in objects is constructed in order to improve the testability of OO software in terms of test controllability and observability. The most interesting feature obtained by TOOP is that the built-in tests in any objects can be inherited and reused in the same way as that of codes or functions in conventional OO software.
Article
This paper presents a new contract-based software component testing (SCT) technique, Test by Contract (TbC), which extends the Design by Contract concept to the SCT domain, and leverages it with UML-based testing at the modeling level to design model-level test contracts for UML-based SCT. We introduce a new concept of Contract for Testability as the principal TbC goal, and develop a set of important contract-oriented concepts (e.g. test contract, effectual contract scope, internal/external test contract), and useful test criteria for ef-fective model-based testability improvement. A practical step-wise TbC working process is developed to show how to put the TbC technique into practice for contract-based testing activities to undertake UML-based SCT with a case study.
Article
Component-based software develop has become the main develop method. Meanwhile how to assure its quality is an important research content, including component-based software integration testing. This paper introduces a metadata configuration model describing interior information of component to increase testability. The metadata configuration model(MCM) includes three parts: basic attributes, additive attributes and integrated attributes. And a general framework of the model is further given, which is consisted of several classes. Each class includes several attributes, and their meanings are described. Finally the case study based on previous model is done, and the corresponding results are given. All these show effectively that the models we presented are valid and helpful for component-based software integration testing.
Article
Systems of Systems are large-scale information centric component-based systems. Because they can be more easily expressed as an information flow, they are built following the data-flow paradigm. These systems present high avail-ability requirements that make their runtime evolution nec-essary. This means that integration and system testing will have to be performed at runtime as well. Already exist-ing techniques for runtime integration and testing are usu-ally focused on component-based systems which follow the client-server paradigm, and are not well suited for data-flow systems. In this paper we present virtual components, a way of defining units of data-flow behaviour that greatly simpli-fies the definition and maintenance of integration tests when the system evolves at runtime. We present and discuss an example of how to use virtual components for this purpose.