Vyvíjíme převážně na platformách Java, JEE a v jazycích C/C++.
Zaujala Vás naše nabídka? Chcete se dozvědět více? Napište nám na
algomica@algomica.cz
JAK ZAČÍT S TESTOVÁNÍM?
Tento článek je určen všem, které zajímá, jak se testování dělá, jak zajistit, aby bylo přínosné a jak tuto nezbytnou součást softwarového vývoje s úspěchem svěřit externí firmě.
Získání dokumentace
Kdykoliv začínáme projekt na testování softwaru (ať už jde o automatizované či manuální testování), nejdříve potřebujeme získat kvalitní popis testovaného softwaru - dokumentaci. To vypadá jednoduše, přece každý ví, jak jeho softwarový produkt má fungovat, že? Přesto se obvykle ukáže, že software se vytváří na základě množství implicitních a nedokumentovaných předpokladů, protože lidé, kteří software vyvíjí, považují tyto předpoklady za natolik zřejmé, že je nepovažují za nutné v dokumentech zmínit. To má při externím testování za následek doplnění "zřejmých" informací do dokumentace a tím její výrazné zkvalitnění.
Testeři se stávají nedílnou součástí týmu
Než dáme dohromady všechnu dokumentaci, můžeme přemýšlet o strategii testování: Jak můžeme rozdělit funkcionalitu do skupin, abychom je mohli testovat odděleně? Jaké jsou závislosti mezi jednotlivými částmi softwaru? Jaké testy můžeme automatizovat a u kterých to naopak nemá smysl? Jak můžeme upravit software tak, aby se dal lépe testovat a daly se lépe analyzovat chyby v něm? Jak budeme tyto chyby reportovat a sledovat jejich opravy? Ale počkat – neměli jsme se bavit o strategii testování? Tak proč nám někdo mluví o sledování chyb a testovatelnosti našeho software? Ale ano, správně - toto je fáze přípravy projektu před tím, než začne jakékoliv skutečné testování. To je doba, kdy testovací tým potřebuje vstoupit do prostoru, který byl až dosud výhradním územím vývojářů, tedy do vývojového procesu. Je to skutečně nezbytné - testeři potřebují sdělit vývojářům, co od nich potřebují a jak nastavit komunikaci.
Bez vůle ke spolupráci to opravdu nejde
Testování je o spolupráci na vývoji software a nelze ho pojmout jako soupeření mezi testery a vývojáři. To je velice důležité: pokud tester najde problém (pravděpodobně chybu někoho z programátorů), cílem je tento problém dokumentovat a posléze opravit, nikoliv ukazovat na něčí chyby. Tester může ohlásit chybu mnoha způsoby, např. "Hele, už to zase nefunguje", ale i rozumněji "Funkcionalita X způsobí pád programu, pokud při zapnutí nastavení A". Podobně programátor může vrátit úder výrokem "Opraveno" a nebo poněkud informativnějším sdělením "Upravil jsem DLL, prosím nainstalujte si novou verzi a restartujte aplikaci". Jak vidíte, je to hlavně o spolupráci.
Základ efektivní komunikace
Spolupráce znamená především dobrou komunikaci. Jak mohou tester, vývojář a manažer komunikovat o nalezeném problému, když nesedí vedle sebe? Obzvláště pokud tu máme stovky nalezených chyb? A co když tu máme celé týmy programátorů a testerů? Myslíte, že se to dá zvládnout přes emaily? Nebo máte pocit, že tabulka ve sdíleném souboru Excelu to vyřeší? Asi byste měli zvážit instalaci nástroje na sledování chyb - vytvořit projekty, vložit uživatele a přiřadit jim příslušné role, nastavit kategorie chyb a jejich závažnosti, priority řešení. A můžeme začít testovat.
Plánování testování
Ve skutečnosti to zase tak jednoduché není. Jako u každého jiného projektu i pro testování potřebujete nějaký plán. Potřebujete znát požadovaný rozsah, časová omezení, jaké budete potřebovat zdroje a jaký máte rozpočet. To nás přivádí zpět ke strategii: teď, když jsme úspěšně nastavili komunikaci, potřebujeme určit, jak rozdělit funkcionalitu, kolik budeme potřebovat testů, které budeme automatizovat, jaké budou fáze, kdy testovat opravené chyby atd. Celé to může být ještě zamotanější, pokud testovaný produkt je například serverová aplikace založená na databázi, která v produkčním prostředí obsahuje gigabajty cenných historických dat. V takových případech musíte uvažovat nejen o funkčním testování, ale také o zátěžových testech, testování bezpečnosti a spolehlivosti.
Testování v Algomice
Testování softwaru může být velice komplexní úloha, která vyžaduje určité zkušenosti a vhodné nástroje. V Algomice disponujeme obojím. Úspěšně jsme dokončili několik testovacích projektů, včetně projektů na automatizované testování. Máme zázemí vhodných nástrojů (bugtracking servery, vlastní frameworky pro automatizované testování).
V případě zájmu či dotazů nás neváhejte kontaktovat!