Testowanie polega bardzo często na tym, że sprawdza się ponownie - wielokrotnie, obsesyjnie - to, co działało wcześniej. Osobę, która przemalowawszy sufit w łazience, sprawdza, czy nadal funkcjonuje kuchenka w kuchni, uznalibyśmy za nieco zneurotyzowaną. Niestety, własnością "magicznego tworzywa", zwanego oprogramowaniem, jest to, że takie właśnie zależności mogą zaistnieć - liczne przykłady zna każdy programista, użytkownik czy administrator systemu z własnego doświadczenia. Dlatego nawet zmiany pozornie niewinne: dodanie jednej nowej funkcji, inna konfiguracja, nowa platforma sprzętowa, instalacja systemu w innym środowisku - wymagają ponownego przetestowania całości systemu. Ta czynność, zwana w dialekcie branżowym "funkcjonalnym testowaniem regresyjnym", jest piętą achillesową wielu projektów informatycznych.
Sprzymierzeńcem mogą być narzędzia. Tak jak istnieje oprogramowanie automatyzujące żmudną pracę urzędnika bankowego, tak istnieją też narzędzia automatyzujące żmudną pracę testera. Szczególną popularnością cieszą się od kilku lat programy typu "nagraj - odegraj" (capture - playback), pozwalające na automatyczne testowanie poprzez interfejs użytkownika. Takie narzędzia potrafią m.in. symulować pracę klawiatury i myszki, kontrolować poprawność tego, co pojawia się na ekranie i w bazie danych. Nietrudno wyobrazić sobie, jakim usprawnieniem może być automatyczne wykonanie wielu testów, na przykład przy wdrożeniu nowej wersji systemu bankowego lub podczas instalacji aplikacji w wielu oddziałach tego samego banku1.
Kontrola instalacji wodnej
pod ciśnieniem
Oprogramowanie stosowane przez banki jest zwykle wykorzystywane przez wiele osób jednocześnie. W szczególnym przypadku - banku internetowego - można mieć do czynienia z dziesiątkami czy wręcz setkami tysięcy jednoczesnych użytkowników systemu.
Każdy klient banku zna sytuację, kiedy załatwianie sprawy trwało dłużej niż by się chciało, bo pracownik banku kilkakrotnie długo oczekiwał na odpowiedź komputera. Każdy menedżer banku dobrze wie, jakie są koszty sytuacji, gdy niedostateczne osiągi (czasy odpowiedzi) systemu powodują, że jego pracownicy są w stanie obsłużyć, dajmy na to, tylko połowę liczby transakcji, jaką mogliby załatwić, mając do dyspozycji szybszy system. Jakie znaczenie ma dostępność i czas odpowiedzi dla aplikacji internetowej, nikomu nie trzeba tłumaczyć. Co grosza, każda efektowna awaria serwera dużego systemu internetowego zwykle stanowi wydarzenie na tyle medialne, że pisze o nim prasa...