Testing is an infinite process of comparing the invisible to the ambiguous in order to avoid the unthinkable happening to the anonymous. - James Bach.
Tłumaczenie dokonane przez Piotrka, naszego czytelnika: "Testowanie jest niekończącym się procesem polegającym na porównywaniu tego, co niewidzialne do tego, co wieloznaczne - a wykonuje się je po to, aby coś, co jest niemożliwe do przewidzenia nie dotknęło tych, których nie znamy z imienia."
Głębsza analiza pokazuje, w jakim wypaczonym środowisku pracujemy i jak trudne jest nasze zadanie.
- Wiemy, że nigdy nie skończymy naszej pracy, ale ją zaczynamy i kontynuujemy.
- Kiedy dochodzimy do końca, wiemy jeszcze mniej niż na początku.
- Pomimo wielu testów większości zdarzeń w aplikacji i tak nigdy nie wykonamy.
- Specyfikacja, która ma nam mówić jak działa system w większości ma defekty i, zamiast rozwiązywać problemy, wprowadza jeszcze więcej zamieszania.
- Pomimo tego, że reprezentujemy "użytkownika", niewiele o nim nie wiemy i nie jesteśmy w stanie w pełni go zrozumieć.
-
Chociaż im dłużej testujemy oprogramowanie, tym więcej defektów powinniśmy znajdować, to tak naprawdę więcej z nich akceptujemy.
-
Chodzimy na kursy, które mają nam pokazać dobre praktyki i kiedy już się ich nauczymy, nikt nie pozwala nam ich wdrożyć.
-
Mamy głębokie przeświadczenie, że robimy rzeczy ważne, ale na końcu okazuje się, że nasza praca idzie na marne, bo akceptuje się niską jakość.
Mimo wszystko wiemy, że nasza praca ma sens i naszą rolą jest również przekonanie innych o wartości testowania.
[wersja wcześniejsza]
Nasze pierwsze tłumaczenie tej definicji było następujące: "Testowanie jest nieskończonym procesem porównywania niewidocznych niejednoznaczności w celu uniknięcia nieprzemyślanych zdarzeń dla anonimowych osób.".
Poprosiliśmy o propozycję lepszego tłumaczenia. Zareagował na to Piotrek, który wypunktował pomyłki, skomentował je i skorygował.
Oto fragmenty jego uzasadnienia.
1. "Testowanie jest nieskończonym procesem [...]"
Testowanie jest czynnością wykonywaną przez ludzi. Określenie "nieskończony" jest za mocne do określenia form aktywności ludzkiej. To, co nieskończone może funkcjonować również, gdy zniknie nasz gatunek. Gdy umieścimy w tym miejscu ostrożniejszy zwrot: "niekończący się", mamy możliwość domyślenia się, że jest to proces niekończący się dla nas. Uwaga ta jest tylko i wyłącznie stylistyczna na gruncie języka polskiego, gdyż, niewątpliwie, "infinite" znaczy również "nieskończony".
2. "[...] porównywania niewidocznych niejednoznaczności [...]
Tłumaczenie "porównywanie niewidocznych niejednoznaczności" zatraca opisany w oryginale podstawowy mechanizm testowania, w którym jedynie wskazano na kolejne niewiadome. W testowaniu zawsze mamy z jednej strony jakieś zjawiska, których natura nie jest nam do końca znana, ale ich widoczne przejawy zestawiamy z wzorcem, który znamy lepiej. Zdanie oryginalne powtarza ten schemat, dokładając jedynie dodatkowy komunikat: otóż wzorzec, który powinniśmy znać lepiej jest zazwyczaj wieloznaczny. Zatem zostajemy przez zdanie pouczeni, że po stronie, która z założenia powinna być jasna, pojawia się również niewiadoma - tylko, że dotyczy ona nie bezpośrednio wzorca, do którego porównujemy, a tego, która interpretacja posiadanego wzorca jest słuszna.
Gdy przetłumaczymy tak, jak jest obecnie, zrobi się zamęt.
3. "[...] w celu uniknięcia nieprzemyślanych zdarzeń dla anonimowych osób."
"The unthinkable" absolutnie nie oznacza "nieprzemyślanych zdarzeń". W ogóle nie ma w takim kontekście czegoś takiego jak "nieprzemyślane zdarzenia" (chyba, że odrzucimy precyzję - ale "zdarzenie" jest naprawdę pojęciem o ogromnej ogólności, nie łączy się samo w sobie z jakąś intencją człowieka). Nieprzemyślane mogą być czyny, decyzje, posunięcia. Zdarzenia zaś mogą być co najwyżej "nie do pomyślenia" bądź "niemożliwe do przewidzenia". No chyba, że mówimy np. o zdarzeniach, które autor zawarł w pisanej przez siebie fabule, ale ich nie przemyślał i są mało sensowne; ale przecież nie o to nam tu chodzi. (...)"