Generator testów losowych

Generatory testów losowych (często w skrócie RTG lub ISG dla Generatora strumienia instrukcji lub Generatora sekwencji instrukcji) to rodzaj oprogramowania komputerowego , który jest używany do weryfikacji funkcjonalnej mikroprocesorów . Ich podstawowe zastosowanie polega na dostarczaniu bodźca wejściowego do testowanego urządzenia .

W środowisku symulacji / weryfikacji stanowiska testowego symulator przetwarza dane wejściowe utworzone przez RTG, a monitory pokrycia mogą służyć do sprawdzenia, czy generator prawidłowo testuje projekt.

Zakres generatorów testów losowych obejmuje zarówno proste skrypty i sparametryzowane makra , które można utworzyć w ciągu kilku tygodni, jak i w pełni funkcjonalne systemy wymagające rozbudowanego oprogramowania. Generatory testów losowych są najczęściej tworzone przez organizacje projektujące.

Generatory oparte na tabelach

Generatory testów oparte na tabelach to najprostsze dostępne RTG. Stworzenie takich generatorów można wykonać stosunkowo szybko, a wymagania konserwacyjne są często niskie. architekturze zestawu instrukcji projektu i przechowywanie jej w relacyjnej bazie danych do późniejszego wykorzystania. Ze względu na swoją uproszczoną naturę generatory tabelaryczne mogą być używane przez mniej wykwalifikowany personel do tworzenia interesujących testów. Te generatory mają jednak wadę, ponieważ ich implementacja jest generalnie ograniczona do prostych architektur. Użycie na bardziej złożonych ISA może spowodować niemożność dotarcia przypadki narożne lub tworzyć złożone scenariusze. Generatory oparte na tabelach mogą czasami generować nieprawidłowe testy.

Generatory statyczne

Generatory statyczne są podobne do generatorów opartych na tabelach, z wyjątkiem tego, że większość instrukcji, operandów i selekcji danych znajduje się w złożonym kodzie proceduralnym . Generatory statyczne są w stanie generować bardziej losowe zachowanie niż generatory oparte na tabelach, ale nadal mają problemy z trafieniem w wiele przypadków narożnych. Ponadto poziom umiejętności wymagany do stworzenia i utrzymania takiego narzędzia gwałtownie wzrasta po osiągnięciu tego poziomu zaawansowania.

Generatory dynamiczne

Generatory dynamiczne zawierają znaczną wiedzę na temat testowanej architektury. Zwiększają zdolność mniej wykwalifikowanych użytkowników do generowania złożonych testów, które mogą trafiać w trudno dostępne przypadki narożne bez potknięcia się o subtelne pułapki programistyczne. Ta dodatkowa wiedza, elastyczność i łatwość obsługi znajdują odzwierciedlenie w bardziej złożonym generatorze, w związku z czym koszt stworzenia i utrzymania generatora jest większy niż w przypadku generatorów stołowych lub statycznych.

Linki zewnętrzne