Temat: rozwój aplikacji pod testy automatyczne
TDD raczej niewiele wnosi od strony zespołu testów - to po prostu agile'owy sposób wytwarzania oprogramowania, w którym najpierw powstają testy z użyciem na przykład mocków do interfejsów tylko po to, żeby je można była najpierw zfailować a potem oprogramować komponenty tak, żeby przechodziło. Zdecydowanie bliżej warstwy projektowej systemu niż wymagań, które są podstawą do testów funkcjonalnych / systemowych.
Ułatwianie testowania istniejącego oprogramowania - wydaje mi się, że niezależnie od tego jak / co automatyzujemy, zależy od zakresu zmian, które mogą zostać wprowadzone.
Ułatwianie testowania nowego oprogramowania - jak najbardziej, jeżeli chodzi o GUI / frontend to:
Web-based - tutaj i tak jest łatwo bo markup HTML da się parsować na lewo i prawo. Gorzej, jak developerzy przesadzą z ilością client-script'u i powrzucają trochę embedded objects... Na początek proponuję
Web Accessibility initiative.
Java Swing / AWT - zasadniczo
http://java.sun.com/javase/technologies/accessibility/... i jesteśmy ustawieni. Java Access Bridge nawet nie jest wymagany jak korzysta się z maszyny 1.6 - jest odpowiednie API, nawet wystawia eventy do nagrywania :) Tak czy inaczej - customowe kontrolki mają mieć poimplementowane interfejsy Accessible. Jeżeli developerzy nie pomyśleli w ogóle o Accessibility, nie mamy JAB ani nic innego do pomocy, to zawsze można zaprzędz do roboty JNI i postawić własną maszynę Javy - to dla ambitnych.
Windows-based -
a) Kod niezarządzany (C++/MFC albo VB6) -
IAccessibility. Jak go nie ma to pozostają zwykłe Windowsowe kontrolki - działa dopóki ktoś nie wrzuca jakiś śmiesznych datagridów itp...
b) Kod zarządzany (.NET / Silverlight) - nic prostszego.
Managed Spy i gotowe. Aczkolwiek znowu uczulałbym developerów na IAccessible, dobrą praktyką jest to implementować, można wtedy używać nawet toporne toole do autmatyzacji, byle potrafiły wysyłac do aplikacji key stroke'y.
JVM by Microsoft - podobno jest jeszcze używane. Tutaj znowu kontrolki są zwykłymi Windowsowymi komponentami więc mamy takie możliwości jakie one nam je dają. Jerze developerzy wrzucają swoje - niech implementują IAccessible.
Flex -
Adobe też zrobiło postępy, osobiście się tym nie bawiłem to nie doradzę...
Z tego co widać wszystko powyższe ma jedną cechę wspólną, która nazywa się
Accessibility. Jak możecie lobbować za tym, żeby było to implementowane to walczcie do końca - opłaci się w przyszłości.