<oai_dc:dc xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:oai_dc="http://www.openarchives.org/OAI/2.0/oai_dc/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.openarchives.org/OAI/2.0/oai_dc/ http://www.openarchives.org/OAI/2.0/oai_dc.xsd">
  <dc:contributor>Pezzè, Mauro</dc:contributor>
  <dc:creator>Rubinov, Konstantin</dc:creator>
  <dc:date>2013-07-15</dc:date>
  <dc:description xmlns:ns0="xml" ns0:lang="en">While source code expresses and implements design considerations for software system, test cases capture and  represent the domain knowledge of software developer, her assumptions on the implicit and explicit interaction  protocols in the system, and the expected behavior of different modules of the system in normal and exceptional  conditions. Moreover, test cases capture information about the environment and the data the system operates on. As  such, together with the system source code, test cases integrate important system and domain knowledge. Besides  being an important project artifact, test cases embody up to the half the overall software development cost and effort.  Software projects produce many test cases of different kind and granularity to thoroughly check the system  functionality, aiming to prevent, detect, and remove different types of faults. Simple test cases exercise small parts of  the system aiming to detect faults in single modules. More complex integration and system test cases exercise larger  parts of the system aiming to detect problems in module interactions and verify the functionality of the system as a  whole. Not surprisingly, the test case complexity comes at a cost -- developing complex test cases is a laborious and  expensive task that is hard to automate. Our intuition is that important information that is naturally present in test cases  can be reused to reduce the effort in generation of new test cases. This thesis develops this intuition and  investigates the phenomenon of information reuse among test cases. We first empirically investigated many test  cases from real software projects and demonstrated that test cases of different granularity indeed share code  fragments and build upon each other. Then we proposed an approach for automatically generating complex test  cases by extracting and exploiting information in existing simple ones. In particular, our approach automatically  generates integration test cases from unit ones. We implemented our approach in a prototype to evaluate its ability to  generate new and useful test cases for real software systems. Our studies show that test cases generated with our  approach reveal new interaction faults even in well tested applications. We evaluated the effectiveness of our  approach by comparing it with the state of the art test generation techniques. The evaluation results show that our  approach is effective, it finds relevant faults differently from other approaches that tend to find different and usually  less relevant faults.</dc:description>
  <dc:format>application/pdf</dc:format>
  <dc:identifier>https://susi.usi.ch/global/documents/318474</dc:identifier>
  <dc:identifier>https://n2t.net/ark:/12658/srd1318474</dc:identifier>
  <dc:identifier>https://susi.usi.ch/documents/318474/files/2013INFO007.pdf</dc:identifier>
  <dc:language>eng</dc:language>
  <dc:relation>info:eu-repo/semantics/altIdentifier/urn/urn:nbn:ch:rero-006-113169</dc:relation>
  <dc:relation>info:eu-repo/semantics/altIdentifier/ark/12658/srd1318474</dc:relation>
  <dc:rights>info:eu-repo/semantics/openAccess</dc:rights>
  <dc:rights>License undefined</dc:rights>
  <dc:subject xmlns:ns1="xml" ns1:lang="en">Unit and integration testing</dc:subject>
  <dc:subject xmlns:ns2="xml" ns2:lang="en">Automatic test generation</dc:subject>
  <dc:subject xmlns:ns3="xml" ns3:lang="en">Reuse in software testing</dc:subject>
  <dc:subject>info:eu-repo/classification/udc/004</dc:subject>
  <dc:title xmlns:ns4="xml" ns4:lang="en">Automatically generating complex test cases from simple ones</dc:title>
  <dc:type>http://purl.org/coar/resource_type/c_db06</dc:type>
</oai_dc:dc>
