xUnit - czyli testowanie na poziomie kodu

 

xUnit jest nabardziej rozpowszechnionym, i dostępnym w wielu językach, frameworkiem do testowania kodu. W dużym uproszczeniu jest to zbiór przypadków testowych, poukładanych w zestawy. Testerzy często obawiają się testowania kodu, nie mając świadomości możliwości tego relatywnie prostego i potężnego rozwiązania .

 

Współcześni testerzy szukają swojego miejsca w projekcie informatycznym. Z jednej strony nie chcą być spychani na sam koniec (przed wydaniem) procesu wytwarzania oprogramowania, a z drugiej bronią się przed wczesnym zaangażowaniem i testowaniem na poziomie kodu. Nie tylko metodyki miękkie wymagają od nas pracy z kodem.  Umiejętność (przynajmniej) czytania kodu niezbędna jest w modelu V testowania komponentowego. Dlaczego więc nie moglibyśmy zacząć używać narzędzi, które tak wielu programistów omija wymawiając się brakiem czasu? Dlaczego nie sięgnąć do źródeł testowania, do czasów kiedy między testem a debagowaniem nie było różnicy?

Jak w piosence, najtrudniejszy jest pierwszy krok.

Możecie wymawiać się brakiem znajomości kodowania, ale czy kiedyś spróbowaliście go poczytać? Od testerów nie wymaga się kodowania. Trzeba poznać jeden framework dla języka realizowanego projektu. W wielu z nich znajomość języka angielskiego jest wystarczająca do tego by zrozumieć, co robią poszczególne funkcje.

Przykład asercji dla mnożenia.

using NUnit.Framework;
 
 [TestFixture]
 public class ExampleTestOfNUnit
 {
   [Test]
   public void TestMultiplication()
   {
     Assert.AreEqual(4, 2*2, "Multiplication");
 
     Assert.That(2*2, Is.EqualTo(4), "Multiplication constraint-based");
   }
 }

Czytając ostatnią instrukcję w kodzie mamy (prawie) poprawne zdanie w języku angielskim: Oceń czy 2*2 jest równe 4.

Przy dobrze nazwanych zmiennych, funkcjach czy klasach testowanie kodu przestaje być trudne.

Możemy powiedzieć, że nie mamy środowiska, ale czy w Waszym projekcie nie ma kogoś kto mógłby Wam przygotować środowisko? Nie będzie to znacząco różne od środowiska programistycznego, więc nie powinno z tym być kłopotu.

 

Gdzie zacząć?

1. Nie uciekniecie od języka kodowania, więc musicie poznać:

  • jakie są słowa kluczowe w danym języku;
  • czym są zmienne, po co się je deklaruje i nadaje typy, oraz dlaczego muszą być "zabijane";
  • podstawowe instrukcje if, while, for itd.;
  • jak tworzy się i do czego służą funkcje;
  • czym są klasy;
  • do czego służą biblioteki;

Jak się tego nauczyć? Poproście swojego lidera, aby zorganizował wam wewnętrzny trening (nie więcej niż jeden dzień), albo porozmawiajcie bezpośrednio z programistą, aby wam to pokazał.

W ramach nauki poproście o konfigurację środowiska i dostęp do repozytorium kodu źródłowego (jeśli jeszcze nie macie).

2. Poznajcie framework xUnit dla waszego projektu.

3. Umówcie się z programistą na kodowanie - testowanie w parach. Na początku on pokaże jak pisze testy, potem zamienicie się miejscami i sami będziecie tworzyli kod przy jego pomocy.

 

Źródła.

http://en.wikipedia.org/wiki/NUnit

http://www.nunit.org/index.php?p=quickStart&r=2.6.1

http://cunit.sourceforge.net/

http://en.wikipedia.org/wiki/List_of_unit_testing_frameworks

http://www.xprogramming.com/testfram.htm

 

 

 

Najbliższe terminy szkoleń

 

29 stycznia-1 luty - Kraków

Zawód Tester


5 luty - Warszawa

Testerskie umiejętności miękkie


7-9 luty - Poznań

Dobry Kierownik Testów - Laboratorium

 

Partnerzy

Narzędzia testerskie