Change search
CiteExportLink to record
Permanent link

Direct link
Cite
Citation style
  • apa
  • ieee
  • modern-language-association-8th-edition
  • vancouver
  • Other style
More styles
Language
  • de-DE
  • en-GB
  • en-US
  • fi-FI
  • nn-NO
  • nn-NB
  • sv-SE
  • Other locale
More languages
Output format
  • html
  • text
  • asciidoc
  • rtf
Studying Test Flakiness in Python Projects: Original Findings for Machine Learning
KTH, School of Electrical Engineering and Computer Science (EECS).
2019 (English)Independent thesis Advanced level (degree of Master (Two Years)), 20 credits / 30 HE creditsStudent thesisAlternative title
Odeterministiska tester i Pythonprojekt : Originella resultat för maskininlärning (Swedish)
Abstract [en]

Flaky tests can fail or pass without any changes to the code under test. They can destroy developers trust in a test suite and if ignored lead to bugs in released code. This thesis performs an empirical study of the most popular open source Python projects on GitHub. 197 commits with keywords indicating test flakiness are manually inspected and categorized according to the root cause of their flakiness. The results are compared to previous studies of Java projects.

Two completely novel flakiness causes are found - precision and training (of a machine learning network). These two causes are almost entirely domain-specific to machine learning projects. Precision flakiness comes from an assertion with a too high or too low threshold. Training flakiness is caused by a faulty training setup of a machine learning network in a test. Most tests in Python projects are found to be flaky due to problems with asynchronous waiting, precision and network.

Abstract [sv]

Odeterministiska tester kan ge ett godkänt eller misslyckat resultat utan att koden som testas har förändrats. De kan förstöra utvecklares tillit till en testsamling och leda till buggar i produktionskod om de ignoreras. En empirisk studie av de mest populära Pythonprojekten med öppen källkod på GitHub genomförs. 197 commits med meddelanden som indikerar odeterminism inspekteras manuellt och kategoriseras enligt orsak till odeterminism. Resultaten jämförs med tidigare studier som fokuserat på Javaprojekt.

Två nya och originella orsaker hittas - precision och träning (av ett maskininlärningsnätverk). De här två orsakerna är nästan helt domänspecifika till maskininlärningsprojekt. Odeterminism på grund av precision beror på att ett testkrav (eng. assertion) hade en för hög eller för låg tröskel, som var omöjlig att nå varje gång testet utfördes. Odeterminism på grund av träning beror på att uppsättningen av träningen för ett maskininlärningsnätverk gjorts på ett felaktigt sätt. De vanligaste orsakerna till odeterminism i Pythontester identifieras som asynkron väntan (eng. asynchronous waiting), precision och nätverk.

Place, publisher, year, edition, pages
2019. , p. 58
Series
TRITA-EECS-EX ; 2019:593
National Category
Computer and Information Sciences
Identifiers
URN: urn:nbn:se:kth:diva-264459OAI: oai:DiVA.org:kth-264459DiVA, id: diva2:1373595
External cooperation
Attentec AB
Educational program
Master of Science in Engineering - Information and Communication Technology
Supervisors
Examiners
Available from: 2019-11-27 Created: 2019-11-27

Open Access in DiVA

fulltext(716 kB)4 downloads
File information
File name FULLTEXT01.pdfFile size 716 kBChecksum SHA-512
c08214a8dce3b7f4ddf1d4961c898624db8cdb57914f0e4810b04fdf4e660ed5a212a243f0464883ce185fe8966e360bd2e7d3113c1e2eb2bc7e520ce0d153d0
Type fulltextMimetype application/pdf

By organisation
School of Electrical Engineering and Computer Science (EECS)
Computer and Information Sciences

Search outside of DiVA

GoogleGoogle Scholar
Total: 4 downloads
The number of downloads is the sum of all downloads of full texts. It may include eg previous versions that are now no longer available

urn-nbn

Altmetric score

urn-nbn
Total: 12 hits
CiteExportLink to record
Permanent link

Direct link
Cite
Citation style
  • apa
  • ieee
  • modern-language-association-8th-edition
  • vancouver
  • Other style
More styles
Language
  • de-DE
  • en-GB
  • en-US
  • fi-FI
  • nn-NO
  • nn-NB
  • sv-SE
  • Other locale
More languages
Output format
  • html
  • text
  • asciidoc
  • rtf