Debugowanie: Różnice pomiędzy wersjami

[wersja nieprzejrzana][wersja nieprzejrzana]
Usunięta treść Dodana treść
m drobne redakcyjne
m drobne redakcyjne
Linia 19:
Kolejnym etapem debugowania jest eliminacja wszystkich tych czynników, które nie przyczyniają się bezpośrednio do powstania błędu. Dotyczy to zarówno zbędnych kroków scenariusza interakcji, jak i ilości danych wejściowych, których nadmiar może utrudnić dotarcie do źródła problemu. Eliminacja niepotrzebnych czynników ułatwia śledzenie duplikatów i jest tak bardzo istotna dla postępu pracy w dojrzałych systemach, że niektóre zespoły nakłaniają testerów do upraszczania już znalezionych błędów zamiast zgłaszania nowych<ref>W czerwcu [[1999]] Erick Krock z zespołu Mozilli [http://www.mozillazine.org/articles/article635.html oferował nagrody] za upraszczanie zgłoszeń błędów.</ref>.
 
W przypadku istnienia metody samoczynnego wykonania programu i określenia wyniku jego uruchomienia, krok ten można w dużej mierze zautomatyzować. Dokonuje się tego przy pomocy [[Wyszukiwanie binarne|wyszukiwania binarnego]], ograniczając ilość danych tak długo, aż odjęcie żadnego z najmniejszych elementów wejścia nie spowoduje błędu wykonania<ref>{{Cytuj pismo |nazwisko= Zeller |imię= Andreas |nazwisko2= Hildebrandt |imię2= Ralph |tytuł=Simplifying and Isolating Failure-Inducing Input |czasopismo= IEEE Transactions on Software Engineering |oznaczenie= Luty 2002 |numer= 28 |strony=183-200 |url= http://www.st.cs.uni-sb.de/papers/tse2002/}}</ref>.
 
=== Identyfikacja przyczyny awarii ===
Linia 46:
 
=== Inne ===
Narzędzia śledzące alokację pamięci (np. ''Valgrind''[http://valgrind.org ''Valgrind'']) ułatwiają odnajdywanie fragmentów programu odwołujących się do zwolnionych i niezaalokowanych obszarów pamięci jak również umożliwiają lokalizowanie [[wyciek pamięci|wycieków pamięci]].
 
{{Przypisy}}
Linia 52:
== Bibliografia ==
# {{cytuj książkę |nazwisko= Zeller |imię= Andreas |tytuł= Why Programs Fail: A Guide to Systematic Debugging |url= http://www.whyprogramsfail.com |wydawca= Morgan Kaufmann |rok= 2005 |isbn = 1-55860-866-4 }}
# {{Cytuj pismo |nazwisko= Zeller |imię= Andreas |nazwisko2= Hildebrandt |imię2= Ralph |tytuł=Simplifying and Isolating Failure-Inducing Input |czasopismo= IEEE Transactions on Software Engineering |oznaczenie= Luty 2002 |numer= 28 |strony=183-200 |url= http://www.st.cs.uni-sb.de/papers/tse2002/}}
 
== Linki zewnętrzne ==