Original title:
Výkon softwaru jako faktor při agilních metodách vývoje
Translated title:
Performance Awareness in Agile Software Development
Authors:
Horký, Vojtěch ; Tůma, Petr (advisor) ; Rabiser, Rick (referee) ; Koziolek, Anne (referee) Document type: Doctoral theses
Year:
2018
Language:
eng Abstract:
[eng][cze] Broadly, agile software development is an approach where code is frequently built, tested and shipped, leading to short release cycles. Extreme version is the DevOps approach where the development, testing and deployment pipelines are merged and software is continuously tested and updated. In this context our work focuses on identifying spots where the participants should be more aware of the performance and offers approaches and tools to improve their awareness with the ultimate goal of producing better software in shorter time. In general, the awareness is raised by testing, documenting, and monitoring the performance in all phases of the development cycle. In this thesis we (1) show a framework for writing performance tests for individual components (e.g. libraries). The tests capture and codify assumptions about the performance into runnable artifacts that simplify repeatability and automation. For evaluation of the performance tests we (2) propose new methods, which can automatically detect performance regressions. These methods are designed with inherent variation of performance data in mind and are able to filter it out in order to detect true regressions. Then we (3) reuse the performance tests to provide the developers with accurate and up-to-date performance API documentation that steer them...Za agilní metody vývoje softwaru jsou obecně považovány přístupy, kdy jsou programy často sestavovány, testovány a nasazovány. Výsledkem je tak kratší vývojový cyklus. Přístupy typu DevOps pak dovádí tuto koncepci do extrému, kdy jsou setřeny rozdíly mezi vývojovým a produkčním prostředím a nasazený software průběžně aktualizují. V tomto kontextu se tato práce zaměřuje na nalezení míst, kde by jednotliví účastníci měli mít větší povědomí o výkonu vyvíjeného softwaru. Práce nabízí přístupy a nástroje jak toto povědomí zvýšit; hlavním cílem je vytvářet lepší (rychlejší) software v kratším čase. Zlepšení je dosaženo pomocí testování, dokumentace a sledování výkonu během všech fází vývoje software. V této práci ukážeme (1) nástroje pro psaní testů výkonu pro jednotlivé komponenty (např. knihovny). Tyto testy zachycují a kodifikují předpoklady o výkonu a převádí je do spustitelných entit, které zjednodušují automatizaci a opakovatelnost. Pro vyhodnocení testů výkonu jsme (2) navrhli nové metody které dokáží automaticky nalézt regrese. Tyto metody jsou navrženy tak, aby braly v úvahu variabilitu dat pocházejících z měření výkonu softwaru a dokázaly odlišit skutečné regrese od šumu. Testy výkonnosti pak také (3) zužitkujeme pro vytvoření aktuální a přesné API dokumentace výkonu, která vývojářům usnadní psaní...
Keywords:
agile software development; automated software testing; performance evaluation; performance testing; software documentation; agilní metody vývoje softwaru; automatizované testování softwaru; softwarová dokumentace; testování výkonu; vyhodnocování výkonnosti
Institution: Charles University Faculties (theses)
(web)
Document availability information: Available in the Charles University Digital Repository. Original record: http://hdl.handle.net/20.500.11956/104405