{"id":{"repo_id":"calgary","oai_identifier":"oai:ucalgary.scholaris.ca:1880/113023"},"canonical_url":"https://search.dev.ndltd.org/etd/calgary/oai:ucalgary.scholaris.ca:1880/113023","repository":{"repo_id":"calgary","name":"University of Calgary","base_url":"https://ucalgary.scholaris.ca/server/oai/request"},"display":{"title":"Test2Vec: An Execution Trace Embedding for Behaviour Coverage Analysis of Test Cases","abstract":"In software testing, test adequacy metrics are mostly based on the source code and ignore the dynamic behavior of the program. In this thesis, we demonstrate that code coverage metrics are not able to distinguish between a Failed and Passed behavior in most cases. Neural program embeddings have shown much promise recently for a variety of program analysis tasks. We propose a new embedding approach called Test2Vec with an attention layer for test representation in order to capture behavioral patterns of test cases. We used test execution traces including the input values as the training dataset and evaluated our approach on 93 real faulty versions of 4 open source Java projects. Our results show that Test2Vec can rank the failing test in the top 5, 10, and 20 tests, on average, 20.43%, 32.26%, and 44.09% of the times, while branch coverage and statement coverage can only distinguish the failing tests in 13% and 16% of cases, respectively.","abstract_html":"In software testing, test adequacy metrics are mostly based on the source code and ignore the dynamic behavior of the program. In this thesis, we demonstrate that code coverage metrics are not able to distinguish between a Failed and Passed behavior in most cases. Neural program embeddings have shown much promise recently for a variety of program analysis tasks. We propose a new embedding approach called Test2Vec with an attention layer for test representation in order to capture behavioral patterns of test cases. We used test execution traces including the input values as the training dataset and evaluated our approach on 93 real faulty versions of 4 open source Java projects. Our results show that Test2Vec can rank the failing test in the top 5, 10, and 20 tests, on average, 20.43%, 32.26%, and 44.09% of the times, while branch coverage and statement coverage can only distinguish the failing tests in 13% and 16% of cases, respectively.","abstract_has_math":false,"creators":["Zangeneh, Soheila"],"institution":"Schulich School of Engineering","degree_name":"Master of Science (MSc)","degree_level":null,"degree_discipline":"Engineering – Electrical &amp; Computer","degree_department":null,"school":null,"contributors":[],"advisors":["Hemmati, Hadi"],"committee_chairs":[],"committee_members":["Far, Behrouz Homayoun","Uddin, Gias"],"year":2021,"date_issued":"2021-01-22","date_published":"2021-01-22","updated_at":"2026-07-24T01:30:27Z","subjects":["Software Engineering","Software Testing","Machine Learning","Behaviour Analysis","Test Adequacy","Software Analysis"],"languages":["eng"],"rights":["University of Calgary graduate students retain copyright ownership and moral rights for their thesis. You may use this material in any way that is permitted by the Copyright Act or through licensing that has been assigned to the document. For uses that are not allowable under copyright legislation or licensing, you are required to seek permission."],"rights_urls":[],"identifier_entries":[{"key":"dc:identifier.doi","label":"DOI","values":["http://dx.doi.org/10.11575/PRISM/38591"],"render_values":[{"text":"http://dx.doi.org/10.11575/PRISM/38591","href":"http://dx.doi.org/10.11575/PRISM/38591","code":true}]}]},"links":{"outbound_url":"http://hdl.handle.net/1880/113023","outbound_label":"Handle","outbound_source":"dc:identifier.uri"},"metadata_groups":[{"id":"people","label":"People","entries":[{"key":"dc:contributor.advisor","label":"Advisor","values":["Hemmati, Hadi"]},{"key":"dc:contributor.committeemember","label":"Committee Member","values":["Far, Behrouz Homayoun","Uddin, Gias"]},{"key":"dc:creator","label":"Author","values":["Zangeneh, Soheila"]}]},{"id":"academic_context","label":"Academic Context","entries":[{"key":"dc:date","label":"Dc Date","values":["2021-02"]},{"key":"dc:date.accessioned","label":"Dc Date Accessioned","values":["2021-01-27T15:59:16Z"]},{"key":"dc:date.available","label":"Dc Date Available","values":["2021-01-27T15:59:16Z"]},{"key":"dc:date.issued","label":"Date","values":["2021-01-22"]},{"key":"dc:publisher.institution","label":"Dc Publisher Institution","values":["University of Calgary"]},{"key":"dc:type","label":"Dc Type","values":["master thesis"]},{"key":"thesis:degree_discipline","label":"Discipline","values":["Engineering – Electrical &amp; Computer"]},{"key":"thesis:degree_name","label":"Degree Name","values":["Master of Science (MSc)"]},{"key":"thesis:institution_name","label":"Thesis Institution Name","values":["University of Calgary"]}]},{"id":"subjects_keywords","label":"Subjects and Keywords","entries":[{"key":"dc:subject","label":"Dc Subject","values":["Software Engineering","Software Testing","Machine Learning","Behaviour Analysis","Test Adequacy","Software Analysis"]}]},{"id":"language_rights","label":"Language and Rights","entries":[{"key":"dc:language.iso","label":"Language (ISO)","values":["eng"]},{"key":"dc:rights","label":"Dc Rights","values":["University of Calgary graduate students retain copyright ownership and moral rights for their thesis. You may use this material in any way that is permitted by the Copyright Act or through licensing that has been assigned to the document. For uses that are not allowable under copyright legislation or licensing, you are required to seek permission."]}]},{"id":"identifiers","label":"Identifiers","entries":[{"key":"dc:identifier.doi","label":"DOI","values":["http://dx.doi.org/10.11575/PRISM/38591"]},{"key":"dc:identifier.uri","label":"Identifier URI","values":["http://hdl.handle.net/1880/113023"]}]},{"id":"additional","label":"Additional Metadata","entries":[{"key":"dc:description.abstract","label":"Abstract","values":["In software testing, test adequacy metrics are mostly based on the source code and ignore the dynamic behavior of the program. In this thesis, we demonstrate that code coverage metrics are not able to distinguish between a Failed and Passed behavior in most cases. Neural program embeddings have shown much promise recently for a variety of program analysis tasks. We propose a new embedding approach called Test2Vec with an attention layer for test representation in order to capture behavioral patterns of test cases. We used test execution traces including the input values as the training dataset and evaluated our approach on 93 real faulty versions of 4 open source Java projects. Our results show that Test2Vec can rank the failing test in the top 5, 10, and 20 tests, on average, 20.43%, 32.26%, and 44.09% of the times, while branch coverage and statement coverage can only distinguish the failing tests in 13% and 16% of cases, respectively."]},{"key":"dc:title","label":"Title","values":["Test2Vec: An Execution Trace Embedding for Behaviour Coverage Analysis of Test Cases"]}]}],"canonical_facts":{"dc:contributor.advisor":["Hemmati, Hadi"],"dc:contributor.committeemember":["Far, Behrouz Homayoun","Uddin, Gias"],"dc:creator":["Zangeneh, Soheila"],"dc:date":["2021-02"],"dc:date.accessioned":["2021-01-27T15:59:16Z"],"dc:date.available":["2021-01-27T15:59:16Z"],"dc:date.issued":["2021-01-22"],"dc:description.abstract":["In software testing, test adequacy metrics are mostly based on the source code and ignore the dynamic behavior of the program. In this thesis, we demonstrate that code coverage metrics are not able to distinguish between a Failed and Passed behavior in most cases. Neural program embeddings have shown much promise recently for a variety of program analysis tasks. We propose a new embedding approach called Test2Vec with an attention layer for test representation in order to capture behavioral patterns of test cases. We used test execution traces including the input values as the training dataset and evaluated our approach on 93 real faulty versions of 4 open source Java projects. Our results show that Test2Vec can rank the failing test in the top 5, 10, and 20 tests, on average, 20.43%, 32.26%, and 44.09% of the times, while branch coverage and statement coverage can only distinguish the failing tests in 13% and 16% of cases, respectively."],"dc:identifier.doi":["http://dx.doi.org/10.11575/PRISM/38591"],"dc:identifier.uri":["http://hdl.handle.net/1880/113023"],"dc:language.iso":["eng"],"dc:publisher.institution":["University of Calgary"],"dc:rights":["University of Calgary graduate students retain copyright ownership and moral rights for their thesis. You may use this material in any way that is permitted by the Copyright Act or through licensing that has been assigned to the document. For uses that are not allowable under copyright legislation or licensing, you are required to seek permission."],"dc:subject":["Software Engineering","Software Testing","Machine Learning","Behaviour Analysis","Test Adequacy","Software Analysis"],"dc:title":["Test2Vec: An Execution Trace Embedding for Behaviour Coverage Analysis of Test Cases"],"dc:type":["master thesis"],"thesis:degree_discipline":["Engineering – Electrical &amp; Computer"],"thesis:degree_name":["Master of Science (MSc)"],"thesis:institution_name":["University of Calgary"]},"updated_at":"2026-07-24T01:30:27Z"}