Witam,
Chciałem zadać kilka pytań doświadczonym developerom/inżynierom odnośnie wymagań software oraz unit testów.
Obecnie pracuję w międzynarodowym projekcie. Cały team składa się z 6 mniejszych teamów zlokalizowanych na różnych kontynentach.
Z doświadczenia zauważyłem, że co kraj(team) to inne podejście. W związku z tym chciałbym od was usłyszeć kilka odpowiedzi. Oto one:
- Jak dokładne muszą być wymagania software zlokalizowane w SRS?
- Kto jest winny za niski współczynnik pokrycia kodu? Developer czy tester?
- Jakie wartości progowe z reguły przyjmuje się za odpowiednie? Wiem, że to zależy od klienta ale jak sami wiemy, 100% pokrycie nie odzwierciedla bezbłędnego kodu. Czasem jest wręcz nieosiągalne 100%, gdy mamy uniwersalny kod dla kilku projektów.
- Czy SRS powinien opisywać wszystkie zewnętrzne interfejsy modułu?
- Czy SRS powinien opisywać wszystkie funkcje lokalne dla modułu (wejścia, wyjścia dla 100% pokrycia)?
Ostatnie dwa pytania są dla mnie ważne. Czytając różne książki i fora internetowe odnoszę wrażenie, że opis powinien być ogólny.
Problem tkwi w tym, że testerzy proszą o nowe wymagania, które pokryją braki (pokrycie funkcji, decyzji, rozgałęzień). W takim wypadku, idąc ich tokiem myślenia, SRS powinien być bez mała jak design (opisany w funkcji każdy if, else, switch case, etc - mam na myśli wszystkie ścieżki). Czy tak faktycznie ma to wyglądać? Jeżeli SRS ma nie zawierać opisu od deski do deski każdej funkcji w module, to jak nazywa się dokument który do robi?