Chcę napisać aplikację, której można używać do nagrywania płyt CD (muzyki). Wiem, że i tak powinienem to przetestować na prawdziwych płytach CD, ale nie chcę tego robić za każdym razem, gdy dokonam małej zmiany. Ale chcę wiedzieć i przetestować, czy odpowiednie dane zostaną spalone, więc nie dostaniesz uszkodzonych płyt CD.
Korzystam z biblioteki, która udostępnia API tylko do bezpośredniego nagrywania na dysk fizyczny; nie pozwala na zapis na obrazie dysku (co byłoby znacznie łatwiejsze do przetestowania).
Jak mogę to przetestować bez marnowania płyt CD i czasu na każdą zmianę / kilka zmian, które wprowadzę?
Odpowiedzi:
Prosta odpowiedź jest często najlepsza: płyty CD wielokrotnego zapisu?
Aby zaoszczędzić czas, pisz stosunkowo małe pliki. Co jakiś czas rób tylko większe pliki.
źródło
Jeśli korzystasz z systemu Linux, powinieneś być w stanie skonfigurować „urządzenie cd”, które jest tylko nazwanym potokiem. Twój interfejs API zapisuje na „urządzeniu”, a drugi podłączasz do programu, który pozwala zobaczyć, co robi / przekonwertować go na obraz dysku. Wiele opcji. Zobacz ten artykuł, aby uzyskać informacje na temat nazwanych potoków.
Odpowiedź Kevina jest o wiele łatwiejsza IMO.
źródło
Napisz tyle testów, ile możesz, używając próbnego interfejsu API biblioteki. Pozwala to przetestować kod w jednostkach. To pokazuje, że twój kod działa w sobie, zakładając, że biblioteka działa tak, jak powinna.
W pewnym momencie będziesz musiał przeprowadzić testy integracyjne, które faktycznie korzystają z biblioteki. Ale chodzi o to, że masz już poziom zaufania do własnego kodu, zanim przejdziesz do tego punktu. Testy integracji często wymagają więcej czasu i zasobów, jak widzieliście. Tak dokładne testy jednostkowe pozwalają nie polegać całkowicie na testach integracyjnych.
źródło
O jakich testach konkretnie mówisz?
Czytając „Nie chcę tego robić za każdym razem, gdy wprowadzam małą zmianę” w twoim pytaniu, wyobrażam sobie, że mówisz o testowaniu jednostkowym .
Później dodajesz, że korzystasz z interfejsu API odpowiedzialnego za wypalanie danych na dyskach CD. Jeśli ten interfejs API zostanie przetestowany i poprawnie udokumentowany, nie musisz zajmować się faktycznym procesem nagrywania danych na dysku CD i nie musisz go testować. W tym przypadku masz do czynienia z testami integracyjnymi , których nie musisz robić „za każdym razem, gdy [wprowadzasz] małą zmianę” .
źródło
WTP,
Ponieważ chcesz przetestować swoje oprogramowanie (nie interfejs API ani rejestrator), jak wskazał Chris, niezbędna byłaby makieta interfejsu API.
Niezawodny rejestrator „ISO” do testowania integracji powinien umożliwiać zautomatyzowanie testowania zawartości dysku CD poprzez analizę pliku .iso.
Właściwie wypalenie dysku CD lub DVD nie przyniosłoby rozstrzygających wyników, ponieważ nie można ustalić, czy przyczyną błędu jest wadliwa płyta CD, wadliwa nagrywarka czy błąd oprogramowania, chyba że chcesz wykonać statystyki jakości, rejestrując wiele kopii ta sama płyta (której najwyraźniej nie masz).
Powodzenia!
źródło