Summary: | Testing code is a vital part at any software producing company, to ensure no faulty code slips through that could have detrimental consequences. At Ericsson, testing code before publishing is a very costly process which can take several hours. Currently, every single test is run for all submitted code. This report aims to address the issue by building a machine learning model that determines which tests need to be run, so that unnecessary tests are left out, saving time and resources. It is however important to find the failures, as having certain failures pass through into production could have all types of economic, environmental and social consequences. The result shows that there is great potential in several different types of models. A Linear Regression model found 92% of all failures within running 25% of all test categories. The linear model however plateaus before finding the final failures. If finding 100% of failures is essential, a Support Vector Regression model proved the most efficient as it was the only model to find 100% of failures within 90% of test categories being run. === Testning av kod är en avgörande del för alla mjukvaruproducerande företag, för att säkerställa att ingen felaktig kod som kan ha skadlig påverkan publiceras. Hos Ericsson är testning av kod innan det ska publiceras en väldigt dyr process som kan ta flera timmar. Vid tiden denna rapport skrivs så körs varenda test för all inlämnad kod. Denna rapport har som mål att lösa/reducera problemet genom att bygga en modell med maskininlärning som avgör vilka tester som ska köras, så onödiga tester lämnas utanför vilket i sin tur sparar tid och resurser. Dock är det viktigt att hitta alla misslyckade tester, eftersom att tillåta dessa passera till produktionen kan innebära alla möjliga olika ekonomiska, miljömässiga och sociala konsekvenser. Resultaten visar att det finns stor potential i flera olika typer av modeller. En linjär regressionsmodell hittade 92% av alla fel inom att 25% av alla test kategorier körts. Den linjära modellen träffar dock en platå innan den hittar de sista felen. Om det är essentiellt att hitta 100% av felen, så visade sig en support vector regressionsmodell vara mest effektiv, då den var den enda modellen som lyckades hitta 100% av alla fel inom att 90% alla test kategorier hade körts.
|