Czy każdy może podać sugestie dotyczące narzędzi, których można użyć do tworzenia mutacji w programie Java na poziomie kodu źródłowego (bez kodu bajtowego)? Muszę zasiać mój kod źródłowy błędami. Wolałbym aplikację z GUI, jeśli taki istnieje.Jak mogę przeprowadzić test mutacji mojego programu Java?
Odpowiedz
Kiedy wziąłem klasę inżynierii oprogramowania na testowanie na GMU, we used Mu Java, dla jednego z rozdziałów. HTH
Dzięki! Próbowałem też, ale to nie działa dla mnie. @Averride adnotacja powoduje wyjątki .. – damluar
Jest to technika używana przez narzędzie pokrycia testu open source Jester. Spojrzenie na jego źródło może być pomocne, jeśli nie jesteś w stanie znaleźć odpowiedniego narzędzia i chcesz je zbudować samodzielnie.
Znalazłem narzędzie do testowania mutacji PIT, które bardzo lubię. Z MuJava mam wyjątki spowodowane adnotacjami @Override. Wydaje się, że nie obsługuje "Java 5/6".
Dobry przegląd PIT tutaj: http://dev.theladders.com/2013/02/mutation-testing-with-pit-a-step-beyond-normal-code-coverage/ –
Jeśli wymóg jest naprawdę dla kodu źródłowego mutacji następnie opcje Jestem świadomy są
Jester - Zapewnia ograniczoną liczbę operatorów mutacji, które są dość niestabilne. Jeff Offutt opisał to jako bardzo drogi sposób na zastosowanie testów branżowych. Uważam jednak, że możliwe jest zdefiniowanie własnych operatorów, więc prawdopodobnie nie jest to w pełni sprawiedliwe.
Mu Java - Nie obsługuje Java 5
Judy - Nie wiem zbyt wiele o tym innym niż to, że istnieje
Lawa - Brzmi dość proste i nie sądzę, że obsługuje Java 5
Z odpowiedzi poniżej widzę, że teraz używasz PIT. Myślę, że to naprawdę świetny wybór (napisałem to, może mieć pewne odchylenie), ale jest to system mutacji kodu bajtowego.
Tu jest punktem odniesienia:
MμClipse JUnit 3 obsługuje tylko i nie jest już aktualizowany. Jester, jak dla niego, jest pracochłonny i wymaga skomplikowanej konfiguracji; plus nie jest już utrzymywany. Najlepsze narzędzie jakie można znaleźć to Javalanche I had wrote a entire article about this !
"Ma to małe zastosowanie w realnym świecie". Zdecydowanie się nie zgadzam, kontraktuję się w bardzo dużej firmie medialnej w Wielkiej Brytanii, a PIT (http://pitest.org/) jest niezwykle przydatny do testowania mutacji. Większość kompilacji CI jest ustawiona na niepowodzenie bez 85% pokrycia testowania mutacji PIT. Odp: "zastępowanie niektórych losowych znaków ..." Mutacja nie musi tego oznaczać. Mutacje PIT są ograniczone do zmian kompilowanych.
Jak radzisz sobie z odpowiednimi mutacjami, jeśli potrzebujesz 100% pokrycia mutacji? – henry
Ramy mutacji głównych (Major's website) zapewniają zintegrowany kompilator mutator i analizator mutacji dla testów JUnit.
Mutator Major jest zintegrowany z kompilatorem Java 7.Zapewnia kilku operatorów mutacji i obsługuje dwie opcje mutacji kodu źródłowego:
- generowania i osadzić wszystkie mutanty podczas kompilacji
- wytworzenia mutantów i eksportowych zmutowane pliki źródłowe
- 1. Jak mogę przeprowadzić test jednostkowy GC?
- 2. Jak przeprowadzić test urządzenia stanu?
- 3. jak przeprowadzić test urządzenia dla delegata NSURLConnection?
- 4. Jak przeprowadzić test jednostkowy kontrolera JSON?
- 5. Jak przeprowadzić test jednostkowy dyrektywy kątowej
- 6. Jak przeprowadzić test NSCoding na urządzeniu?
- 7. Jak przeprowadzić dobry test porównawczy wydajności?
- 8. Czy mogę przeprowadzić test NUnit w losowej kolejności?
- 9. Jak przeprowadzić test jednostkowy Regulator kątowy za pomocą $ scope. $ On?
- 10. Wywołanie mutacji GraphQL z innej mutacji?
- 11. Jak mogę uruchomić inną aplikację w panelu mojego programu C#?
- 12. Jak przeprowadzić test jednostki, która zużywa usługę sieciową?
- 13. Jak przeprowadzić test jednostkowy za pomocą jaśminu i przeglądać?
- 14. Dlaczego wydajność mojego programu Java spada znacząco po uruchomieniu?
- 15. Generowanie Java JaxB, Jak mogę uzyskać bigDecimal z mojego xsd?
- 16. Jak mogę w java dodać stacktrace do mojego wydruku debugowania
- 17. Jak zmienić katalog roboczy dla mojego programu?
- 18. Snoop nie rozpoznaje mojego programu
- 19. W jaki sposób mogę utworzyć diagram przepływu mojego programu?
- 20. obsługi błędów w mutacji
- 21. Test aplikacji Java w różnych lokalizacjach
- 22. Uruchamianie programu java z innego programu java
- 23. Jak mogę wywołać metodę mutacji, trzymając odwołanie do siebie?
- 24. Jak mogę przeprowadzić migrację SSL z Tomcat do Apache HTTPD?
- 25. Ramka zawsze na szczycie mojego programu tylko
- 26. Jak mogę uruchomić test przed wygenerowaniem podpisanego apk?
- 27. Wyjątek "Próba mutacji powiadomień"
- 28. Zmienne mutacji GraphQL
- 29. Jak wykorzystać jak najwięcej pamięci RAM dla mojego programu?
- 30. GHCi nie może znaleźć modułów mojego programu
ten ma niewielki zastosowanie w realnym świecie – Bohemian
Po prostu zastąpienie niektórych losowych znaków przez innych może zrobić, ale w większości przypadków będzie to letal (tzn. Wynikowy program nie będzie możliwy do kompilacji, jeśli nie trafiłeś ciągu znaków lub komentarza, lub wymieniono go na szczęście). –
"Ma to małe zastosowanie w realnym świecie" to kiepska wymówka. Kiedy opracowano matematykę tensorową, topologiczną lub matematyczną, miały one bardzo "mało praktyczne zastosowanie na świecie". To interesujące pytanie. Mutacja kodu ma bardzo realne zastosowania na świecie. –