UML būsenų modelio taikymas programų testavimui

Autor: Krivickaitė, Greta
Přispěvatelé: Bareiša, Eduardas
Jazyk: litevština
Rok vydání: 2013
Předmět:
Popis: Programinės įrangos testavimas gali užimti iki 50% projekto laiko, tad yra automatizuojamas. Norint generuoti automatinius būsenų testus, reikia turėti testavimo atvejus ir metodą įvertinti gautų rezultatų teisingumo įvertinimui. Šiame darbe yra aprašoma, kaip galima generuoti automatinius testus taikant UML būsenų modelį. UML būsenų modeliu galima modeliuoti klases dinaminiu požiūriu, nusakant galimas objekto būsenas ir perėjimus tarp jų. Yra siūloma, testavimo atvejų generavimui naudoti būsenų diagramose aprašytus perėjimus ir jų apribojimus, o šių sekų rezultatų įvertinimui taikyti būsenoms nurodytas sąlygas, kurias turi tenkinti objektas esant toje būsenoje. Tokiu principu buvo suprojektuotas ir realizuotas įrankis, leidžiantis generuoti automatinius testus, kur nereikėtų keisti realizuotų klasių struktūros, kadangi būsenų sąlygoms tikrinti būtų naudojama refleksija, o kviečiamų metodų sekų generavimui taikomas Deikstros algoritmas, leidžiantis aplankyti visas būsenas ir kelius. Be to, testuojamų metodų kvietimui, būtų taikoma ribinių reikšmių analizė, kad būtų padengiama kuo daugiau kodo ir aptinkama daugiau klaidų. Taip pat, buvo ištirta kiek kodo padengia ir kiek neteisingų programos realizacijų aptinka tokiu būdu sugeneruoti testai. Buvo nustatyta, kad tokiu būdu galima padengti net 100 % kodo ir aptikti visus mutantus, tačiau yra svarbu, kad būsenų modelis nusakytų visas galimas sistemos būsenas ir perėjimus tarp jų.
Software testing can take up to 50 % of the project time. Thus, testing process is being automated. In order to generate automatic tests, you need to have test cases and a method to evaluate results of those test cases. This work describes how is it possible to generate automatic tests using UML state machine model. UML state machine model allows to model dynamic behaviour of a class/system, by defining possible object‘s states and transitions among them. It is being proposed to use transitions and their constraints for test cases generation and use constraints specified in states for evaluations of results of test cases. By using such technique, a tool was designed and realized allowing to generate automatic tests, where checking of constraints is done by using reflection, which does not require altering of already created classes, nor revealing of any fields of classes. Also, to generate test cases Deijkstra’s algorithm is used, which allows visiting all states and transitions. Moreover, boundary value analysis is used to generate test data for tested methods invocation, allowing to cover more code and detect more defects. Also, this tool and technique was evaluated to check how much code it is possible to cover and how many incorrect program realizations tests are able to detect. It was determined that there is a possibility to cover 100 % of code and detect all incorrect program realizations. However, with the intent to achieve this, it is very important that state chart model would describe all possible system’s states and transitions.
Databáze: OpenAIRE