Naszymi klientami są duże sieci handlowe, które oczekują rozwiązań dostosowanych i w sposób ciągły dostosowywanych do ich wymagań i zmian sposobu działania. Oczekują one, że używane przez nie rozwiązania informatyczne będą elastycznym narzędziem wspierającym ich działalność. Naszym celem jest realizowanie tych oczekiwań. Oznacza to jednak ciągłe modyfikacje naszego oprogramowania i konieczność szybkiego i częstego wdrażania nowych wersji. Przy takim trybie działania i złożoności oprogramowania (największe z naszych projektów zawierają ponad milion linii kodu i składają się z kilkunastu tysięcy plików źródłowych) niezbędne jest zapewnienie odpowiedniego procesu produkcji oprogramowania, nastawionego na weryfikowanie tworzonego kodu i automatyzację testów.
Proces tworzenia oprogramowania w naszej firmie pokazuje schemat zamieszczony poniżej. Najistotniejsze elementy tego procesu, mające na celu wyeliminowanie błędów w oprogramowaniu, w szczególności regresji polegającej na tym, że modyfikacja określonej funkcjonalności powoduje wystąpienie błędu w innym, z pozoru nie związanym z nią miejscu, to:
- audyt kodu źródłowego dodawanego do repozytorium przez analityka / programistę asystującego od początku realizacji zadania,
- programowanie testów jednostkowych przez programistów mających tworzyć kod weryfikowany przez te testy,
- programowanie testów automatycznych,
- codzienne automatyczne budowanie wersji z aktualnego kodu, automatyczne wykonywanie testów jednostkowych i automatycznych oraz analiza wyników i rejestracja wykrytych błędów,
- ręczne testy, w tym szczególnie testy nowych i zmodyfikowanych funkcjonalności.