• Refine Query
  • Source
  • Publication year
  • to
  • Language
  • 72
  • 13
  • 7
  • 1
  • 1
  • Tagged with
  • 96
  • 96
  • 39
  • 33
  • 32
  • 30
  • 24
  • 22
  • 22
  • 21
  • 19
  • 17
  • 16
  • 15
  • 14
  • About
  • The Global ETD Search service is a free service for researchers to find electronic theses and dissertations. This service is provided by the Networked Digital Library of Theses and Dissertations.
    Our metadata is collected from universities around the world. If you manage a university/consortium/country archive and want to be added, details can be found on the NDLTD website.
71

Efektivní techniky pro měření výkonu programů / Efficient Techniques for Program Performance Analysis

Pavela, Jiří January 2020 (has links)
Tato práce představuje optimalizační techniky zaměřené na proces sběru výkonnostních dat v rámci výkonnostní analýzy a profilování programů v nástroji Perun.   Rozšíření architektury a implementace těchto nových optimalizačních technik v nástroji Perun (a převážně pak v jeho modulu Tracer) zlepšuje jeho škálovatelnost a umožňuje tak provádět výkonnostní analýzu i nad rozsáhlými projekty.   Zaměřujeme se především na zvýšení přesnosti sběru dat, redukci množství instrumentovaných bodů programu, omezení časové režie procesu sběru dat a výkonnostního profilování, snížení objemu sbíraných dat a velikosti výsledného výkonnostního profilu.   Optimalizace je dosažena pomocí aplikace statistických metod, množství technik statické a dynamické analýzy (případně jejich kombinací) a využitím pokročilých možností a schopností nástrojů SystemTap a eBPF.   Na základě vyhodnocení provedeného na dvou vybraných projektech a množství experimentů můžeme konstatovat, že se nám úspěšně podařilo dosáhnout značné optimalizace u téměř všech sledovaných metrik a kritérií.
72

Sledovaní současného stavu testovacích technik ve vybrané společnosti / Testing Techniques in Continuous Integration System

Shpak, Yuliia January 2020 (has links)
S vývojem informací, komunikací a technologií se moderní průmyslové řídicí systémy (ICS) potýkají čím dál více s otázkami automatického testováni pro zabezpečení stability a bezpečnosti systému. Z tohoto důvodu se testování stalo jednou z nejdůležitějších částí životního cyklu všech softwarů. V této diplomové práci budu zvažovat možnost využití stávajících zkušebních metod a nástrojů pro získání dostatečné jakosti a bezpečnosti softwaru v kontinuálních integračních systémech.
73

Hromadná orchestrácia v multirepo CI/CD prostrediach / Bulk Operation Orchestration in Multirepo CI/CD Environments

Víšek, Jakub January 2021 (has links)
Multirepo model přístupu ke správě a verzování zdrojového kódu, jež zahrnuje použití mnoha oddělených repozitářů verzovacích systémů, je poslední dobou často zmiňován v odborné literatuře. Jednou z jeho nevýhod je množství zdlouhavých, nezajímavých a repetitivních úkonů, které je nutno provádět při hromadných operacích tvořících transakce napříč těmito repozitáři. Multirepo repozitáře navíc umožňují využití široké škály technologií, což jen umocňuje riziko lidské chyby, ke které při ručně prováděných hromadných operacích může dojít. V rámci této práce je navrženo, implementováno a otestováno řešení pro automatizaci operací prováděných napříč množstvím repozitářů uspořádaných v multirepo modelu, což s nimi uživatelům zlepšuje zkušenost.
74

Proactive Mitigation of Deprecated API Version Usage : Utilizing continuous integration to automatically and proactively detect deprecated API version usage in microservice ecosystems

Nilsson, Eric January 2021 (has links)
The notion of change is one of the more pronounced challenges API developers face, since a change to published APIs means a change for its’ consumers. API Versioning is a commonly used strategy to mitigate the risks of changing APIs, however, the strategy introduces a possibility of having practically innumerable number of API versions published at once, all possibly used by different consumers, creating considerable overhead for API developers to manage. API Versioning and API version management are well-researched disciplines. Nevertheless, Yasmin et al. (2020) have identified a research gap in the support for API consumers to made aware of API deprecations in a proactive and automatic fashion. API Versioning in the context of microservices– which the literature seldom addresses– may serve as an interesting solution space for answering the call of Yasmin et al. (2020), due to the architecture’s strong ties to continuous integration– a practice concerned with automatically and proactively ensuring software quality. Concisely, this thesis is set out to answer Yasmin et al.’s (2020) call for research by utilizing the underexplored contextualization of microservices and continuous integration. Using a Design Science Research strategy, this thesis proposes a model detailing how deprecated RESTful web API version usage can be automatically and proactively detected in microservices using continuous integration. The model is subsequently proven to be instantiable via a proof of concept, designed for and situated at a national Swedish bank. Through a series of in-vitro simulations at the bank, the proof of concept is demonstrated to successfully being able to automatically and proactively detect deprecated RESTful web API version usage. An evaluation of the solution shows that the proof of concept– and by extent the model– fulfills the demarcated research objectives of automaticity, proactivity, generality, and autonomy. Thus, the proposed solution is determined to be both novel and useful, successfully answering the call of Yasmin et al. (2020) in the context of microservices and continuous integration.
75

Randomness as a Cause of Test Flakiness / Slumpmässighet som en orsak till skakiga tester

Mjörnman, Jesper, Mastell, Daniel January 2021 (has links)
With today’s focus on Continuous Integration, test cases are used to ensure the software’s reliability when integrating and developing code. Test cases that behave in an undeterministic manner are known as flaky tests, which threatens the software’s reliability. Because of flaky test’s undeterministic nature, they can be troublesome to detect and correct. This is causing companies to spend great amount of resources on flaky tests since they can reduce the quality of their products and services. The aim of this thesis was to develop a usable tool that can automatically detect flakiness in the Randomness category. This was done by initially locating and rerunning flaky tests found in public Git repositories. By scanning the resulting pytest logs from the tests that manifested flaky behaviour, noting indicators of how flakiness manifests in the Randomness category. From these findings we determined tracing to be a viable option of detecting Randomness as a cause of flakiness. The findings were implemented into our proposed tool FlakyReporter, which reruns flaky tests to determine if they pertain to the Randomness category. Our FlakyReporter tool was found to accurately categorise flaky tests into the Randomness category when tested against 25 different flaky tests. This indicates the viability of utilizing tracing as a method of categorizing flakiness.
76

Tracing Integration Errors to Upstream Development Activities : An exploratory study

Andersson, Dennis, Artale, Jacques January 2023 (has links)
The Eiffel Protocol provides traceability downstream and upstream of all activities that transpire inside the CI/CD pipeline. The traceability achieved by the Eiffel Protocol comes with great benefits even though it does not cover all development activities as it pertains only to the CI/CD pipeline. Our research aims to explore the idea of extending the Eiffel Protocol to cover all activities and discuss what benefits could be seen, especially in the scope of reducing the number of integration failures. A literature study was first carried out to find the root causes of these failures. After the literature study, we conducted a focus group session to gather data about the potential benefits and problems of an extension, what analyses could be drawn, and how it can affect integration errors. Our results show that an extension is beneficial as analyses that can be made with the generated data can tackle some of the biggest issues found in software development teams, especially in larger organizations. The complexity, cost involved and the time needed to see a return on investment does however weigh it down. Thus, while it is beneficial it is not enough for organizations to consider it as a priority to integrate with their environments when thinking of the costs involved to do so. Further implementation solutions need to be researched before it shows its worth.
77

Webbapplikation för filtrering och visualisering av data : utvecklad med Pythonramverket Dash / Web application for data filtration and visualization : developed with the Python framework Dash

Blomqvist, Andreas, de Brun Mangs, William, Elfstrand, Tobias, Grahn, David, Holm, Hampus, Matstoms, Axel, Mersh, Jamie, Ngo, Robin, Wåtz, Christopher January 2023 (has links)
Denna rapport behandlar skapandet av en webbapplikation för filtreraring och visualisering av data i Pythonramverket Dash. Rapporten ger en översikt av gruppens arbetsmetodik och projektets utveckling. Webbapplikationen utvecklades inom kursen TDDD96 Kandidatprojekt i programvaruutveckling av nio studenter som studerar civilingenjör Datateknik och civilingenjör Mjukvaruteknik. Detta uppdrag fick projektgruppen av företaget Ericsson. Projektets resultat blev en fungerade webbapplikation efterfrågad funktionalitet. Resultatet och arbetsmetodiken, bland annat testdriven utveckling, diskuteras i rapporten med fokus på hur utvecklingsprocessen förbättrades. Rapportens slutsatser är att ramverket Dash lämpar sig för webbutveckling i ett mindre projekt, särskilt för datavisualisering, och att produkten skapar värde för kunden.
78

Real-Time Failure Event Streaming of Continuous Integration Builds / Realtidsströmning av Felhändelser i Kontinuerlig Integration

Seifert, Felix January 2022 (has links)
An application build describes compiling and linking the source code of a developed application to libraries and executables. A Continuous Integration (CI) build executes such a build after the source code has been changed and tries to integrate the changes into the existing application. Such CI builds are executed automatically and include automated software tests, which give the developer the assurance that the changes are technically correct. When the time between the discovery of a test failure and the notification to the developer about it is too long, the development process will be impacted negatively and the beneficial effects of CI decrease. Even though several companies already have CI systems that display all events of a single CI build on a terminal during runtime, bigger applications often involve several CI builds in a single CI pipeline to integrate code changes. Observing the events of these CI builds during runtime might require concurrent monitoring of several different terminals. This thesis overcomes this issue by developing a Proof of Concept (PoC) which streams the test failures of a whole CI pipeline in real-time to the developer. To show the feasibility of real-time failure event streaming of CI builds, the PoC is implemented within Spotify’s CI for clientfacing applications. The issues highlighted by this initial PoC will help to refine the whole CI practice. Furthermore, the faster feedback cycles realised by this PoC will lead to a productivity, efficiency and happiness increase for the involved developers and, eventually, higher quality of the developed software. / Ett applikationsbygge beskriver kompilering och länkning av källkod för en utvecklad applikation till bibliotek och körbara filer. Ett Kontinuerlig Integrerings (CI)-bygge kör en sådan bygge efter att källkoden har ändrats och försöker integrera ändringarna i den befintliga applikationen. Sådana CIbyggen exekveras automatiskt och inkluderar automatiserade mjukvarutester, som ger utvecklaren en försäkran om att ändringarna är tekniskt korrekta. När tiden mellan upptäckten av ett testfel och meddelandet till utvecklaren om det är för lång kommer utvecklingsprocessen att påverkas negativt och de fördelaktiga effekterna av CI minskar. Även om flera företag redan har CIsystem som visar alla händelser av ett enskilt CI-bygge i en terminal under körning, involverar större applikationer ofta flera CI-byggen i en och samma CI-pipeline för att integrera kodändringar. Att observera händelserna i dessa CI-byggen under körning kan kräva jämlöpande övervakning av flera olika terminaler. Den här avhandlingen övervinner detta problem genom att utveckla en PoC som strömmar testfelen för en hel CI-pipeline i realtid till utvecklaren. För att visa genomförbarheten av strömning av felhändelser i realtid av CIbyggnader implementeras PoC i Spotifys CI för klientvända applikationer. De problem som lyfts fram av denna första PoC kommer att bidra till att förfina hela CI-praxisen. Dessutom kommer de snabbare återkopplingscyklerna som realiseras av denna PoCatt leda till ökad produktivitet, effektivitet och glädje för de inblandade utvecklarna och, så småningom, högre kvalitet på den utvecklade mjukvaran.
79

Continuous Integration for Embedded Software with Modular Firmware Architecture / Kontinuerlig Integration för Inbäddad Programvara med Modulär Firmware-Arkitektur

Segatz, Fabian January 2023 (has links)
Continuous Integration (CI) techniques are widely adopted in web and application development but have received limited attention in the embedded software domain. This thesis investigates the application of CI techniques in embedded software development through a case study at Cobolt AB, a company specializing in optoelectronics. The study aims to identify suitable CI techniques, assess implementation efforts, and evaluate the impact of CI adoption in this domain. A CI service is implemented using Jenkins as the automation server, following an iterative development and deployment process. The service incorporates multi-target compilation, automated unit testing, test reporting, visual CI feedback, and trunk-based development. These techniques prove effective for embedded software with a modular firmware architecture. However, automated system testing encounters limitations due to the need for manual interaction with hardware targets. Challenges encountered during implementation, such as learning CI tools, managing build tool dependencies, and addressing manual input requirements for system testing, are overcome through iterative implementation, distributed build architecture, and selective test automation. Developers’ resistance to CI adoption diminishes as they experience the positive impact of the CI service. CI adoption in the embedded domain brings benefits such as fast bug detection, increased developer motivation, higher confidence in code quality, and encouragement for standardization n. No noticeable negative impacts are observed. Future research should focus on integrating hardware-in-the-loop simulation systems for comprehensive automated system testing, exploring validation on multiple hardware targets, and studying the vertical scaling capabilities of distributed build architectures with Jenkins. / Kontinuerlig integration (CI) tekniker används i stor utsträckning inom webboch applikationsutveckling, men har fått begränsad uppmärksamhet inom inbyggd programvarudomän. Denna avhandling undersöker tillämpningen av CI-tekniker inom inbyggd programvaruutveckling genom en fallstudie vid Cobolt AB, ett företag specialiserat på optoelektronik. Studien syftar till att identifiera lämpliga CI-tekniker, bedöma implementeringsinsatser och utvärdera effekten av CI-användning inom detta område. En CI-tjänst implementeras med Jenkins som automatiseringsserver, efter en iterativ utvecklings- och distribueringsprocess. Tjänsten inkluderar kompilering för flera målenheter, automatiserad enhetstestning, testrapportering, visuell CI-återkoppling och utveckling baserad på huvudgrenen. Dessa tekniker visar sig vara effektiva för inbyggd programvara med en modulär firmware-arkitektur. Dock begränsas automatiserad systemtestning av behovet av manuell interaktion med hårdvarumål. Utmaningar som uppstår under implementeringen, såsom att lära sig CIverktyg, hantera byggverktygsberoenden och hantera manuella indatakrav för systemtestning, övervinner genom iterativ implementering, distribuerade byggarkitekturer och selektiv testautomatisering. Utvecklarnas motstånd mot CI-användning minskar när de upplever de positiva effekterna av CI-tjänsten. CI-användning inom inbyggd programvaruutveckling medför fördelar som snabb upptäckt av fel, ökad utvecklar motivation, högre förtroende för kodkvalitet och främjande av standardisering. Inga märkbara negativa effekter observeras. Framtida forskning bör fokusera på att integrera hårdvaru-i-loop simulering för omfattande automatiserad systemtestning, utforska validering på flera hårdvarumål och studera de vertikala skalningsmöjligheterna hos distribuerade byggarkitekturer med Jenkins.
80

Experimental Research on a Continuous Integrating pipeline with a Machine Learning approach : Master Thesis done in collaboration with Electronic Arts

Sigurdardóttir, Sigrún Arna January 2021 (has links)
Time-consuming code builds within the Continuous Integration pipeline is a common problem in today’s software industry. With fast-evolving trends and technologies, Machine Learning has become a more popular approach to tackle and solve real problems within the software industry. It has been shown to be successful to train Machine Learning models that can classify whether a code change is likely to be successful or fail during a code build. Reducing the time it takes to run code builds within the Continuous Integration pipeline can lead to higher productivity in software development, faster feedback for developers, and lower the cost of hardware resources used to run the builds. To answer the research question: How accurate can success or failure in code build be predicted by using Machine Learning techniques on the historical data collection? The important factor is the historical data available and understanding the data. Thorough data analysis was conducted on the historical data and a data cleaning process to create a dataset suitable for feeding the Machine Learning models. The dataset was imbalanced, favouring the successful builds, and to balance the dataset the SMOTE method was used to create synthetic samples. Binary classification and supervised learning comparison of four Machine Learning models were performed; Random Forest, Logistic Regression, Support Vector Machine, and Neural Network. The performance metrics used to measure the performance of the models were recall, precision, specificity, f1-score, ROC curve, and AUC score. To reduce the dimensionality of the features the PCA method was used. The outcome of the Machine Learning models revealed that historical data can be used to accurately predict if a code change will result in a code build success or failure. / Den tidskrävande koden bygger inom pipeline för kontinuerlig integration är en vanlig faktor i dagens mjukvaruindustri. Med trender och teknologier som utvecklas snabbt har maskininlärning blivit ett mer populärt tillvägagångssätt för att ta itu med och lösa verkliga problem inom programvaruindustrin. Det har visat sig vara framgångsrikt att träna maskininlärningsmodeller som kan klassificeras om en kodändring sannolikt kommer att lyckas eller misslyckas under en kodbyggnad. Genom att förbättra och minska den tid det tar att köra kodbyggnader i den kontinuerliga integrationsrörledningen kan det leda till högre produktivitet inom mjukvaruutveckling och snabbare feedback för utvecklare. För att svara på forskningsfrågan: Hur korrekt kan förutsäga framgång eller misslyckande i kodbyggnad med hjälp av Machine Learning-tekniker för historisk datainsamling? Den viktiga faktorn är den tillgängliga historiska informationen och förståelsen för data. Noggrann dataanalys utfördes på historiska data och en datarengöringsprocess för att skapa en datamängd lämplig för matning av maskininlärningsmodellerna. Datauppsättningen var obalanserad och för att balansera användes uppsättningen SMOTE-metoden. Med binär klassificering och övervakad inlärningsjämförelse gjordes fyra maskininlärningsmodeller, Random Forest, Logistic Regression, Support Vector Machine och Neural Network. Prestandamätvärdena som används för att mäta prestandan hos modellerna är återkallelse, precision, f1-poäng och genomsnittlig ROCAUC-poäng. För att minska dimensionaliteten hos funktionerna användes PCA-metoden. Resultatet av modellerna avslöjar att de med god noggrannhet kan klassificeras om en kodändring misslyckas eller lyckas baserat på den datamängd som skapats från historiska data som används för att träna modellerna.

Page generated in 0.1173 seconds