Podczas wykładu na studiach podyplomowych, które prowadzę, jeden z uczestników zadał mi pytanie o to, jak się testuje sztuczną inteligencję. Na tak postawione pytanie jest jedna odpowiedź: “to zależy”. Jest wiele rozwiązań podpadających pod kategorię “sztuczna inteligencja”. Jest też wiele momentów, w których słowo testowanie pojawia się w kontekście sztucznej inteligencji.
W ramach uczenia sieci neuronowych występuje proces testowania nauczanej sieci. Proces ten jest dobrze opisany w metodach uczenia sieci i testerzy oprogramowania (nawet ci z certyfikatami ISTQB) niewiele mają z nim wspólnego. W związku z tym, że wykład był o testowaniu oprogramowania, to pytanie mojego studenta raczej należałoby przeformułować, na “jak się testuje oprogramowanie zawierające sztuczną inteligencję”.

Takie przeredagowanie pytania powoduje, że łatwiej jest je ugryźć. “Oprogramowanie zawierające sztuczną inteligencję” musi realizować jakieś funkcje, musi mieć interfejsy UI albo API, tak jak każde inne oprogramowanie. Musi spełniać jakieś wymagania. Wobec tego do “testów AI” można zastosować techniki i metodyki znane testerom z innych projektów.

Tyle teoria, a jak jest w praktyce. W praktyce, oprócz elementów, które można znaleźć w innych rozwiązaniach software’owych, takich jak serwisy i GUI, pojawiają się elementy, których w zasadzie nie było w innych projektach, na przykład moduły przygotowujące dane do uczenia sieci neuronowych. One też muszą być przetestowane. Testowanie tych modułów podobne jest do testowania zasilania hurtowni danych.

Jak widać, jeżeli potraktujemy sztuczną inteligencję jako czarną skrzynkę, jako jeden z modułów aplikacji, to testowe oprogramowania zawierającego AI nie różni się specjalnie od tego, co testerzy już wcześniej robili.
Jak rozważamy temat testowania i AI, to pojawia się pytanie, czy można sztuczną inteligencję wykorzystać w testowaniu jako narzędzie? A to zupełnie osobna historia.