Istnieje wiele podejść do testowania oprogramowania, a zależność pomiędzy testowaniem a pracą programisty może się bardzo różnić w zależności od zespołu. Podobnie, ile testów na dany API lub komponent zasługuje, to ostatecznie decyzja o czasie/budżecie. W sposób abstrakcyjny, choć niezależnie od procesu SDLC, powiedziałbym, że naprawdę gruntowne testowanie API powinien obejmować co najmniej następujące elementy:
Dokumentacja
dokumentacja API powinna być częścią ostatniej partii, a prawdopodobnie powinien być początkowo napisane przez zespół deweloperski, a nie testowy. Zespół testujący musi upewnić się, że dokumentacja jest odpowiednia (jakie "odpowiednie" środki będą się różnić w zależności od docelowej grupy odbiorców) i zapewnia wystarczające informacje do interakcji z interfejsem API.
testowanie Discovery
Grupa test powinien ręcznie wykonywać zestaw połączeń udokumentowanych w API (np sprawdzeniu, że dany zasób wystawiony przez API mogą być tworzone, liście, zaktualizowane i usunięte odpowiednio). Może się to zdarzyć za pośrednictwem klienta wiersza poleceń (np. cURL dla interfejsu API HTTP), za pośrednictwem biblioteki opakowującej API lub za pomocą lekkiego klienta skryptowego.
Testy użyteczności
Testy użyteczności ocenia, czy API jest funkcjonalny i przyjazny z punktu widzenia klienta (zazwyczaj programista), który będzie go używał, aby zbudować coś. Czy API integruje się dobrze z platformami, do których jest przeznaczony? Czy jest spójny i na rozsądnym poziomie abstrakcji? Zasadniczo, czy to ma sens?
testowania zabezpieczeń
wymogów bezpieczeństwa określonych dla API? Jaki rodzaj uwierzytelnienia jest wymagany i jakie struktury uprawnień mogą mieć zastosowanie? Czy wrażliwe dane są zawsze szyfrowane, przesyłane przez HTTPS lub oba? Czy są sposoby, w jakie ludzie mogą uzyskać dostęp do rzeczy, których nie powinni?
Automatyczne testowanie
Na ogół testowanie API powinny zakończyć się do stworzenia zestawu skryptów lub narzędzia, które można wykorzystać, by ćwiczyć regularnie API i zgłaszania błędów przy minimalnej interwencji człowieka.
Sądzę, że CRUDing, o którym wspomniałeś w testach wykrywania, dotyczy tylko interfejsów API REST. – Renaud