CODEFUSION,  Software Engineering,  Testing

MCET-SEC 3: Oprogramowanie zarządzające testami

Moja firma, CODEFUSION, ma już dziewięć lat. Rozrastamy się jako organizacja. W momencie, kiedy piszę ten tekst(marzec 2019) jest nas czternaścioro. Jesteśmy firmą programistyczną założoną i prowadzoną przez programistów. Od samego początku jasnym dla nas było, że ta branża nie może być prowadzona tylko przez developerów. Wiedzieliśmy, że jednym z najważniejszych aspektów bycia fabryką kodu jest zatrudnianie dobrych testerów. Tak więc zatrudniliśmy kilku inżynierów odpowiedzialnych za jakość produktów, przy próbie zachowania proporcji 80 do 20(developerzy do
testerów). Kiedy rozpoczynali oni swoją pracę, bez problemu radzili sobie ze swoimi obowiązkami. Było nas naprawdę niewielu, więc wszystko było łatwe do zarządzania. Kiedy chcieliśmy komuś coś przekazać po prostu mu to mówiliśmy. Teraz już tak nie jest. Kiedy pracujemy dla niektórych z naszych klientów używamy TestRail i nasi pracownicy pokochali to narzędzie. Podobało im się ono do tego stopnia, że na własną rekę zaczęli szukać podobnej alternatywy, z której mogliby korzystać w innych naszych projektach. To był idealny moment dla mojej inicjatywy, którą nazwałem MCET-SET: nowoczesny, wydajny toolchain dla małych ale bystrych firm programistycznych. To spore wyzwanie, aby zbudować niezbyt kosztowny toolchain dla firm, które tak jak my korzystają z Windowsa . W tej serii artykułów opowiem historię o tym, jak buduję taki zestaw narzędzi.

Dzisiaj skupimy się na oprogramowaniu do zarządzania testami. Najprościej ujmując: owe narzędzia są to aplikacje do planowania, prowadzenia dokumentacji oraz przeprowadzania i tworzenia
raportów z procesu testowania oprogramowania. Kiedy Twoja firma osiąga pewną liczbę programistów i testerów jestem przekonany, że nie obejdziesz się bez takiego narzędzia. Kiedy jednym projektem zajmuje się wielu ludzi prosty log określający błąd zaczyna przekazywać zbyt małą ilość informacji. Ten czas dla Ciebie w końcu nadejdzie, więc zachęcam do towarzyszenia nam w poszukiwaniu odpowiedniego rozwiązania. Jak zwykle w tej serii artykułów zacznę od określenia co tak naprawdę jest istotne. W kwestii dobrego systemu zarządzania testami byłoby to:

–  Czy instalacja wewnętrzna(on premise) jest możliwa?

–  Czy rozwiązanie jest zintegrowane z AD?

–  Czy istnieje możliwość eksportu przepływu testów?(Na przykład do formatu PDF)

–  Czy planowanie testów jest zintegrowane? (Z kalendarzem lub osią czasu)

–  Czy posiada system liczenia metryk?

–  Czy jest zintegrowane z zewnętrznymi narzędziami CI/CD albo oprogramowaniem do śledzenia błędów?

–  Czy ma dobrą proporcję ceny do jakości?

–  Czy posiada łatwy i intuicyjny system kopii zapasowych?

–  Czy integruje jakąś racjonalną strategię utrzymania(najlepiej na Windows Server)?

Na podstawie powyższej listy nasi testerzy szukali odpowiedniego oprogramowania. Oto potencjalni kandydaci:

  1. TestCaseLab
  2. Test Collab
  3. TestRail
  4. PractiTest
  5. TestLink
  6. TestArena
  7. Kiwi TCMS
  8. Testopia

Do tego wyniki moich poszukiwań:

 

TestCase-Lab Test Collab Test-Rail Practi-Test TestLink Test-Arena Kiwi TCMS Testopia
Instalacja Wew. Nie Tak Tak Nie Tak Tak Tak Tak
AD/LDAP Nie Tak Tak Tak Tak Nie Nie Tak
Eksport csv,      pdf csv,    xml csv, xml,  xls xlsx csv,    xml Nie Nie csv,    xml
Plano- wanie Tak Tak Tak Tak Tylko plano- wanie Tak Tak Tylko plano- wanie
Metryki Tak Zaaw. Zaaw. Tak Tak Tak Tak Mało zaaw.
Narzędzia Tak Duży wybór Duży wybór Dobre wsparcie Dobre wsparcie Mały wybór Słaby wybór B. mały wybór
Cena /jakość Mała, 28$/m Dobra, darmowa Drogo! Niska, 35$/m Dobra, darmowa Niezła, darmowa Niezła, darmowa Niezła, darmowa
Backup Chmura Chmura Chmura Chmura DB DB DB DB
Instalacja Chmura Chmura Chmura Chmura PHP+DB PHP+DB Python+DB Perl+DB

Ostatecznie wybraliśmy TestLink. Instalacja nie była tak płynna jak możnaby się tego spodziewać. Windows nie jest neutralną platformą dla PHP. Zacząłem z konfiguracją PHP na IIS(CGI).phpinfo() poszło gładko ale wtedy zaczęło się to co zwykle. Miałem działające rozszerzenie do PostgreSQL ale nie działało – brakowało mu pewnych zależności. Przypuszczam, że C++ redistributable ale nie jestem pewien. Poddałem się i spróbowałem zaatakować problem z innej strony. Miałem kiedyś krótki epizod z Bitnami. To pewien produkt, który łączy fragmenty programów Open Source’owych w paczki, które potem łatwo zainstalować. Bitnami miał już zdefiniowaną paczkę Testlink (Apache + PHP + MySQL + TestLink). Jednak moje poprzednie doświadczenia z bitnami nie można określić jako 100% pozytywne.. Pamiętam, że dawno temu byłem w stanie zainstalować samo zawierający się SVN server, który po jednej lub dwóch aktualizacjach przestał działać i przyjmować jakiekolwiek kolejne łatki. Jeśli nie chcesz stawiać maszyny wirtualnej na dokerze musisz wziąć paczkę Bitnami taką jaka jest – bez narzekania. Instalacja przebiegła sprawnie, zacząłem z paczką WAMP (PHP, MySQL and Apache) i dodałem moduł TestLink dla WAMP. To było dziecinnie proste. Konfiguracja SSLa była trochę bardziej pokręcona(jak zwykle). Paczka Bitnami ma już w sobie certyfikat dla dwóch przypadków. Szybkie wyszukiwanie w konfigu zaowocowało odnalezieniem pięciu miejsc, w których certyfikaty/kluczowe pliki były przechowywane(dwa dla WAMPa, dwa dla TestLonka I jeden dla Bitnami – po cookolwiek on jest). Jeśli chcesz być pewien(tak jak ja) zmień wszystkie cztery. Zadziała ;). Konfiguracja LDAP znów przyniosła ze sobą kilka problemów. Dostęp AD jest ustawiony w pliku TestLink’a config.inic.php. Nie działał zaraz po instalacji. Musiałem włączyć logowanie błędów w PHP(bezpośrednio w pliku config.inic.php) I wyśledzić problem.

error_reporting(E_ALL);
ini_set(‚display_errors’, ‚on’);

Jak się okazało rozszerzenie LDAP PHP nie było aktywowane w pliku php.ini(extension=php_ldap.dll). Mimo, że nieaktywny, plik był obecny i nie brakowało mu żadnych zależności, więc zadziałał.

Tak więc TestLink jest gotowy. Wydaje mi się, że zostawię go na Bitnami tak długo jak będzie dało się instalować mu aktualizacje!

Dodaj komentarz

Twój adres email nie zostanie opublikowany. Pola, których wypełnienie jest wymagane, są oznaczone symbolem *