Specifikace softwarového projektu OpenTCM

Název: OpenTCM
Vedoucí: Mgr. Vladan Majerech, Dr. (Vladan.Majerech at mff.cuni.cz)
Řešitelé:
    Ondřej Hanslík
    Luděk Hlaváček
    Martin Hlavatý
    Martin Káldy
    Marek Neťuka

Úvod

Projekt OpenTCM si klade za cíl vytvořit open source informační systém pro podporu procesů při testování. Název OpenTCM je zkratkou ze slov Open Source Test Case Management. Požadavky na funkčnost byly konzultovány s firmou Sun Microsystems a předpokládá se reálné nasazení systému v této firmě (po drobných úpravách). V současné době je v této firmě používán produkt TCM, který je ovšem špatně dokumentovaný a těžko se upravuje, což vedlo k požadavku na kompletní přepsání celého systému a tedy i ke vzniku projektu OpenTCM.


Definice pojmů

Build = Verze produktu, která splňuje předem specifikovanou podmnožinu požadavků. Zpravidla se jedná o zkušební sestavení produktu určené pro testy.

Consolidation = Konsolidace. Množina produktů tvořící jeden logický celek. Například OpenSolaris či OpenOffice.org.

Produkt = Program, který je vyvíjen nebo testován.

Test Assignment = Přiřazení testovací úlohy konkrétnímu testerovi. Součástí jsou i informace o testovací platformě a jazykové mutaci.

Test Case = Testovací úloha (TC). Postup testování jedné konkrétní vlastnosti systému - včetně vstupních dat a očekávaného výstupu.
Test Report = Agregované výsledky testovacích úloh. Zpravidla obsahuje počet provedených testovacích úloh, počet nalezených chyb, počet testerů, ...
Test Result = Výsledek testovací úlohy. Buď indikace chyby, informace o přeskočení testu nebo zpráva o úspěchu + další informace (datum a čas, délka, poznámky).
Test Scenario = Testovací scénář (TS). Seznam (logicky souvisejících) testovacích úloh. Zpravidla slouží pro otestování komplexnější funkcionality systému.

Uživatelé a role
Uživatelé se dají rozdělit na dvě základní skupiny. První tvoří zaměstnanci firmy Sun Microsystems (respektive lidé mající přístup do vnitřního firemního informačního systému), druhá skupina je tvořena dobrovolníky z řad open source komunity.
Existuje 6 základních uživatelských rolí - Administrátor, Manažer produktu, Technický vedoucí, Tvůrce testovacích případů, Tester a Host. Role jsou ve vzájemné inkluzi. Toto rozdělení uživatelů odpovídá současné praxi, ale v rámci systému práv a rolí v OpenTCM může dojít k rozdělení nebo naopak ke sloučení některých rolí.

Host (Guest) - smí si prohlížet výsledky testování (reporty). Nesmí nic zapisovat.
Tester (SQA) - smí totéž co Host a navíc smí ukládat výsledky testů (které mu byly přiřazeny).
Tvůrce testovacích případů (SQE) - smí totéž co Tester a navíc může vytvářet nové testovací případy (TCs) a testovací scénáře (TSs).
Technický vedoucí (Technical lead) - smí totéž co SQE a navíc přiřazuje testovací scénáře (či případy) jednotlivým testerům.
Manažer produktu (MGR) - smí totéž co Technický vedoucí a navíc může vytvářet nové buildy (viz. definice pojmů)
Administrátor - smí provést libovolnou akci, kterou OpenTCM podporuje.

Detaily

Projekt bude implementován v jazyce Java a bude dostupný pod některou z Open Source licencí (konkrétní licence bude vybrána až v pozdějších fázích projektu tak, aby byla kompatibilní se všemi použitými knihovnami a frameworky). Použití jiných programovacích (skriptovacích) jazyků není vyloučeno. Uživatelské rozhraní bude webové a bude lokalizováno do angličtiny a češtiny. Veškerá dokumentace bude v anglickém jazyce, s výjimkou dokumentů určených pro vnitřní potřebu týmu (například analýza rizik), které budou v češtině.
Funkce systému můžeme rozdělit do pěti základních skupin:

Administrace

Nejdůležitější funkcí administračního subsystému je správa produktů a konsolidací. Uživatel s dostatečným oprávněním bude moci přidávat, měnit a mazat produkty a konsolidace (a přiřazovat produkty do konsolidací).

Další velmi důležitou sekcí je správa uživatelů. Autentizace uživatelů bude probíhat za pomoci uživatelského jména a hesla. Heslo se bude uchovávat v zahashované podobě. Každý uživatel si bude moci změnit své heslo a údaje (s výjimkou přihlašovacího jména) u svého uživatelského účtu, administrátor bude moci změnit hesla i údaje (kromě přihlašovacího jména) u všech účtů.


Správa testovacích scénářů (TS) a buildů
Systém bude u každého produktu uchovávat seznam plánovaných buildů. Uživatel s rolí Technical Leader bude moci specifikovat, které testovací scénáře se mají u každého buildu provést. Manažer produktu bude moci přidávat, měnit a mazat buildy (u svého produktu).

OpenTCM bude umožňovat vytváření, editaci a mazání testovacích úloh a jejich sdružování do testovacích scénářů.


Test Assignment Maintenance
K základním funkcím systému patří přidělování testovacích úloh jednotlivým testerům. Uživatel s dostatečným oprávněním může specifikovat, na jaké platformě má být test proveden, kdo je odpovědný za jeho provedení a jaká je priorita tohoto úkolu. Stejný TC (případně TS) může být přidělen různým testerům pouze za předpokladu, že se bude lišit platforma, na které mají být testy provedeny.


Funkce poskytované testerům

Jedná se o funkce sloužící pro podporu procesu testování. Systém umožní testerům zjistit, které testovací úlohy jim byly přiděleny a na jakých platformách mají testy provádět. Dále bude možné ukládat výsledky testování (Test Result). 

 

Vytváření a prohlížení reportů
Další velmi důležitou součástí systému bude generování dokumentů agregujících výsledky testování (tzv. reportů). Každý uživatel bude moci zjistit, kolik testů bylo dokončeno a s jakým výsledkem, jaká byla produktivita jednotlivých testerů, kolik testovacích úloh nebylo dokončeno, kolik jich bylo přeskočeno, ...



Návrh seznamu použitých technologií

Tento seznam je předběžný a může být kdykoliv změněn.

DB: MySQL 5.X

ORM: Hibernate

UI: Struts 2 + JSF

Ostatní: Spring 2.0 (+ EJB 3.0)


Odhad náročnosti
Odhad velikosti (90% konfidenční interval): 25 - 60 KSLOC.
Odhad byl vytvořen metodou "Standardních komponent" v kombinaci s fuzzy logikou (str. 153-159: Steve McConnell - Odhadování softwarových projektů, Computer Press 2006)

Předpokládaný termín dokončení
Březen 2008 (9 měsíců od data zahájení)

Návrh základního rozdělení zdrojů

Uživatelské rozhraní - Martin Káldy, Ondřej Hanslík
Logika aplikace - Luděk Hlaváček, Marek Neťuka
Persistence dat - Martin Hlavatý