Supporting oracle construction via static analysis

In software testing, the program under test is usually executed with test inputs and checked against a test oracle, which is a mechanism to verify whether the program behaves as expected. Selecting the right oracle data to observe is crucial in test oracle construction. In the literature, researcher...

Full description

Saved in:
Bibliographic Details
Published inProceedings of the 31st IEEE/ACM International Conference on Automated Software Engineering pp. 178 - 189
Main Authors Junjie Chen, Yanwei Bai, Dan Hao, Lingming Zhang, Lu Zhang, Bing Xie, Hong Mei
Format Conference Proceeding
LanguageEnglish
Published ACM 01.09.2016
Subjects
Online AccessGet full text
DOI10.1145/2970276.2970366

Cover

Loading…
Abstract In software testing, the program under test is usually executed with test inputs and checked against a test oracle, which is a mechanism to verify whether the program behaves as expected. Selecting the right oracle data to observe is crucial in test oracle construction. In the literature, researchers have proposed two dynamic approaches to oracle data selection by analyzing test execution information (e.g., variables' values or interaction information). However, collecting such information during program execution may incur extra cost. In this paper, we present the first static approach to oracle data selection, SODS (Static Oracle Data Selection). In particular, SODS first identifies the substitution relationships between candidate oracle data by constructing a probabilistic substitution graph based on the definition-use chains of the program under test, then estimates the fault-observing capability of each candidate oracle data, and finally selects a subset of oracle data with strong fault-observing capability. For programs with analyzable test code, we further extend SODS via pruning the probabilistic substitution graph based on 0-1-CFA call graph analysis. The experimental study on 11 subject systems written in C or Java demonstrates that our static approach is more effective and much more efficient than state-of-the-art dynamic approaches in most cases.
AbstractList In software testing, the program under test is usually executed with test inputs and checked against a test oracle, which is a mechanism to verify whether the program behaves as expected. Selecting the right oracle data to observe is crucial in test oracle construction. In the literature, researchers have proposed two dynamic approaches to oracle data selection by analyzing test execution information (e.g., variables' values or interaction information). However, collecting such information during program execution may incur extra cost. In this paper, we present the first static approach to oracle data selection, SODS (Static Oracle Data Selection). In particular, SODS first identifies the substitution relationships between candidate oracle data by constructing a probabilistic substitution graph based on the definition-use chains of the program under test, then estimates the fault-observing capability of each candidate oracle data, and finally selects a subset of oracle data with strong fault-observing capability. For programs with analyzable test code, we further extend SODS via pruning the probabilistic substitution graph based on 0-1-CFA call graph analysis. The experimental study on 11 subject systems written in C or Java demonstrates that our static approach is more effective and much more efficient than state-of-the-art dynamic approaches in most cases.
Author Junjie Chen
Yanwei Bai
Lu Zhang
Bing Xie
Hong Mei
Dan Hao
Lingming Zhang
Author_xml – sequence: 1
  surname: Junjie Chen
  fullname: Junjie Chen
  email: chenjunjie@pku.edu.cn
  organization: Key Lab. of High Confidence Software Technol., Peking Univ., Beijing, China
– sequence: 2
  surname: Yanwei Bai
  fullname: Yanwei Bai
  email: byw@pku.edu.cn
  organization: Key Lab. of High Confidence Software Technol., Peking Univ., Beijing, China
– sequence: 3
  surname: Dan Hao
  fullname: Dan Hao
  email: haodan@pku.edu.cn
  organization: Key Lab. of High Confidence Software Technol., Peking Univ., Beijing, China
– sequence: 4
  surname: Lingming Zhang
  fullname: Lingming Zhang
  email: lingming.zhang@utdallas.edu
  organization: Dept. of Comput. Sci., Univ. of Texas at Dallas, Dallas, TX, USA
– sequence: 5
  surname: Lu Zhang
  fullname: Lu Zhang
  email: zhanglucs@pku.edu.cn
  organization: Key Lab. of High Confidence Software Technol., Peking Univ., Beijing, China
– sequence: 6
  surname: Bing Xie
  fullname: Bing Xie
  email: xiebing@pku.edu.cn
  organization: Key Lab. of High Confidence Software Technol., Peking Univ., Beijing, China
– sequence: 7
  surname: Hong Mei
  fullname: Hong Mei
  email: meihong@pku.edu.cn
  organization: Key Lab. of High Confidence Software Technol., Peking Univ., Beijing, China
BookMark eNotjMtKAzEUQCMoqHXWLtzMD7QmN7l5LKX4goILdV1uM4lExmSYpEL_3opuzlkcOJfsNJccGLsWfCWEwltwhoPRq19LrU9Y54w9Bi6lVYjnrKv1k3MOoJ0EuGDwup-mMreUP_oykx9D70uubd77lkruvxP1tVFLvqdM46GmesXOIo01dP9esPeH-7f103Lz8vi8vtssCZRpR1oSUZgoNPeAAAOCkkIp0MZFdMIEwmg0Eg3RWRictqD4YHaE4HdRLtjN3zeFELbTnL5oPmwNWjCo5Q9Ih0RR
ContentType Conference Proceeding
DBID 6IE
6IL
CBEJK
RIE
RIL
DOI 10.1145/2970276.2970366
DatabaseName IEEE Electronic Library (IEL) Conference Proceedings
IEEE Proceedings Order Plan All Online (POP All Online) 1998-present by volume
IEEE Xplore All Conference Proceedings
IEL
IEEE Proceedings Order Plans (POP All) 1998-Present
DatabaseTitleList
Database_xml – sequence: 1
  dbid: RIE
  name: IEL
  url: https://proxy.k.utb.cz/login?url=https://ieeexplore.ieee.org/
  sourceTypes: Publisher
DeliveryMethod fulltext_linktorsrc
EISBN 9781450338455
1450338453
EndPage 189
ExternalDocumentID 7582756
Genre orig-research
GroupedDBID 6IE
6IL
ACM
ALMA_UNASSIGNED_HOLDINGS
APO
CBEJK
GUFHI
LHSKQ
RIE
RIL
ID FETCH-LOGICAL-a247t-a28a1f17f160c2522d52431442679f5917ea5f765aadf982d968240d7ba52cbf3
IEDL.DBID RIE
IngestDate Wed Aug 27 01:40:54 EDT 2025
IsPeerReviewed false
IsScholarly false
Language English
LinkModel DirectLink
MergedId FETCHMERGED-LOGICAL-a247t-a28a1f17f160c2522d52431442679f5917ea5f765aadf982d968240d7ba52cbf3
PageCount 12
ParticipantIDs ieee_primary_7582756
PublicationCentury 2000
PublicationDate 2016-Sept.
PublicationDateYYYYMMDD 2016-09-01
PublicationDate_xml – month: 09
  year: 2016
  text: 2016-Sept.
PublicationDecade 2010
PublicationTitle Proceedings of the 31st IEEE/ACM International Conference on Automated Software Engineering
PublicationTitleAbbrev ASE
PublicationYear 2016
Publisher ACM
Publisher_xml – name: ACM
SSID ssj0002269322
Score 1.7175412
Snippet In software testing, the program under test is usually executed with test inputs and checked against a test oracle, which is a mechanism to verify whether the...
SourceID ieee
SourceType Publisher
StartPage 178
SubjectTerms Fault diagnosis
Java
oracle data selection
Probabilistic logic
Software
Software testing
static analysis
Test oracle
Title Supporting oracle construction via static analysis
URI https://ieeexplore.ieee.org/document/7582756
hasFullText 1
inHoldings 1
isFullTextHit
isPrint
link http://utb.summon.serialssolutions.com/2.0.0/link/0/eLvHCXMwjV1NS8NAEB3anjyptOJHlT14NGmz3a-cxVKEigcLvZX9mJUiNB5aD_56Z5PYinjwkiy5JMOEvDebeW8AbtFoEb0TmQkmZsLRyjobMvoQauH9RJUmCZznT2q2EI9LuezA3V4Lg4h18xnmaVn_yw-V36WtshFx2-RW3oUuFW6NVmu_n0I0gqgIb917CiFHvNRUc6k8nSfJBfHH-JQaPabHMP--b9M08pbvti73n78sGf_7YCcwOOj02PMegU6hg5s-8DSos0rmAK-M8kuvBfPVwSeWfawtSzKitWe2dSQZwGL68HI_y9rJCJnlQm_paGwRCx0LNfacKFSQnJiAILjVZZRUgqGVUStpbYil4aFUhqA7aGcl9y5OzqC3qTZ4DsxjtFpTHoMNwlPxQYzPGESlxyEWAi-gn-JdvTfmF6s21Mu_L1_BETEK1TRhDaFHseE1ofbW3dTp-gIeBZjf
linkProvider IEEE
linkToHtml http://utb.summon.serialssolutions.com/2.0.0/link/0/eLvHCXMwjV1NT8JAEJ0gHvSkBozf7sGjLXTZr56NBBWIB0i4kf00xIRyAA_-emfbCsZ48NJuemkn0_S92c57A3DnlWTBGpYop0LCDK600S7BD6Fk1vZErqLAeTQWgyl7nvFZA-63Whjvfdl85tO4LP_lu8Ju4lZZB7ltdCvfg33EfZ5Vaq3tjgoSCSQjtPbvyRjv0Fxi1SXSeO5FH8QfA1RK_Ogfwej7zlXbyHu6WZvUfv4yZfzvox1De6fUI69bDDqBhl-2gMZRnUW0B3gjmGF8MYgtdk6x5GOhSRQSLSzRtSdJG6b9x8nDIKlnIySaMrnGo9JZyGTIRNdSJFGOU-QCDAFX5oFjEeY1D1JwrV3IFXW5UAjeThrNqTWhdwrNZbH0Z0CsD1pKzKTTjlksP5DzKeW9kF0XMubPoRXjna8q-4t5HerF35dv4WAwGQ3nw6fxyyUcIr8QVUvWFTQxTn-NGL42N2XqvgBLYJwo
openUrl ctx_ver=Z39.88-2004&ctx_enc=info%3Aofi%2Fenc%3AUTF-8&rfr_id=info%3Asid%2Fsummon.serialssolutions.com&rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Abook&rft.genre=proceeding&rft.title=Proceedings+of+the+31st+IEEE%2FACM+International+Conference+on+Automated+Software+Engineering&rft.atitle=Supporting+oracle+construction+via+static+analysis&rft.au=Junjie+Chen&rft.au=Yanwei+Bai&rft.au=Dan+Hao&rft.au=Lingming+Zhang&rft.date=2016-09-01&rft.pub=ACM&rft.spage=178&rft.epage=189&rft_id=info:doi/10.1145%2F2970276.2970366&rft.externalDocID=7582756