You are viewing a single comment's thread from:
RE: "Delegator had no such ruleset" — historia pewnego błędu w WISE
Warto jakbyś jeszcze zrobił jakieś ELI5 na czym polegał błąd, bo dla dużej części osób to ciągle może być czarna magia :)
Warto jakbyś jeszcze zrobił jakieś ELI5 na czym polegał błąd, bo dla dużej części osób to ciągle może być czarna magia :)
Cóż. Sam błąd był prosty. Trudne było jego znalezienie. Niełatwo wyjaśnić działanie błędu bez wyjaśniania wewnętrznego mechanizmu działania wise ;) W skrócie: w momencie zmiany przetwarzania z operacji na transakcje — wyrażenie warunkowe if w miejscu odpowiedzialnym za wybór rulesetu do walidacji voteorderu powinno zostać zmienione, aby przystawało, ale nie zostało zmienione do końca, co spowodowało powstanie błędnego zlepka kodu, który zawsze zwracał prawdę. Ale nie to jest tutaj nauczką dla nas. Kod WISE jest pisany razem z ogromną ilością testów jednostkowych (ok 400). Staram się, aby cały kod był nimi pokryty. W tym miejscu jednak była luka. Nauczki są dwie: 1) dokładniejesze testy jednostkowe, 2) testy scenariuszowe. Im więcej testów, tym mniej potencjalnych błędów. Działają jak sito. Teraz trzeba tylko zmniejszyć oczka ;)
Wyciągnięty wniosek powinien być inny raczej: na nic zdają się testy jednostkowe bez testów integracyjnych :P