Wikia

Wikia Polska

Komentarze5

Quality Blitz - Zgniatanie bugów

Pomyślcie przez chwilę nad wszystkimi dostępnymi na Wikii narzędziami umożliwiającymi wymianę informacji. Mamy edytory, czat, galerie obrazów, kategorie, fora, komentarze, strony dyskusji, a to jedynie początek. Aby to wszystko mogło zadziałać, mnóstwo kodu - PHP, JavaScript, AJAX, HTML czy MySQL - jest udoskonalane każdego dnia przez inżynierów z zespołu technicznego Wikii.

Niestety nie jest to proste. Czasami niewielkie zmiany mogą mieć poważne konsekwencje. Brak pojedynczego przecinka czy średnika może spowodować, że obszerny blok kodu nie będzie działał jak powinien. Innym razem, jakiś użytkownik zwróci naszą uwagę na na problem z funkcjonowaniem jednego z rozszerzeń, o którym nie pomyśleliśmy wcześniej. Przykładowo, rozszerzenie <tabber> wewnątrz znaczników <tabview></tabview> nie działało. Takiego wykorzystania obu rozszerzeń po prostu nigdy nie rozważaliśmy, dlatego kod nie działał jak powinien.

Szukanie i rozwiązywanie bugów

Zawsze gdy jakaś część kodu nie działa jak należy, mówimy o błędzie oprogramowania lub (w żargonie informatycznym) o "bugu". Wikia niestety nie jest odporna na pojawianie się bugów. Dzisiaj chciałbym opowiedzieć o tym jak Wikia reaguje na znalezione bugi i o zakończonym niedawno maratonie mającym na celu rozwiązanie możliwie wielu z nich.

QualityBlitzBlogPost-1.png

Rzut okiem na nasz system zgłaszania błędów.

Utrzymanie równowagi między pracą nad nowymi rozszerzeniami a rozwiązywaniem istniejących błędów może być trudnym zadaniem. Zawsze staramy się rozwiązać każdy udokumentowany problem, jednak z uwagi na rozmiary Wikii, niektóre bugi czekają na rozwiązanie nieco dłużej niż inne. Aby łatwo zidentyfikować, które z problemów domagają się szybkiego rozwiązania, korzystamy z systemu priorytetyzowania bugów w zależności od tego jak bardzo utrudniają pracę na wiki, czy istotnie wpływają na funkcjonalność, ilu użytkowników ma z nimi problem i jakie grupy użytkowników dotykają nieprzyjemności z ich powodu.

Co kilka miesięcy wszyscy inżynierowie odkładają na jakiś czas pracę nad nowymi rozszerzeniami i skupiają się wyłącznie na rozwiązywaniu bugów. Te okresy nazywamy "Quality Blitz".

W ostatnim Quality Blitz, który trwał od zakończenia okresu świątecznego do ostatniego tygodnia podzieliśmy się na 5 zespołów, przy czym każdy pracował nad odrębnym zestawem bugów dla konkretnej grupy rozszerzeń. W efekcie nasi inżynierowie rozwiązali 154 bugi!

Statystyka wygląda nieźle, ale co w zasadzie składa się na proces rozwiązania jednego buga? Poniżej droga do rozwiązania jednego z bugów, nad którym pracowaliśmy w ciągu ostatniego Quality Blitz - od zgłoszenia do rozwiązania.

Rzut okiem na proces rozwiązywania bugów

Jesienią, jeden z użytkowników poprzez Specjalna:Kontakt zwrócił uwagę na problem pojawiający się w lokalnej nawigacji. Dodając do MediaWiki:Wiki-navigation tekst "Places" nawigacja wyświetlała "Miejsca na tej wiki ". Bert razem z użytkownikiem, który zgłaszał problem, zidentyfikował buga, potwierdził, zrobił zrzut ekranu i zakolejkował na liście problemów dla zespołu technicznego.

QualityBlitzBlogPost-2.png

Bert przesłał zrzut ekranu problemu. Zrzuty ekranu bardzo pomagają nam zobaczyć na czym polega problem.

Inny członek zespołu Wikii, Kirkburn, ustalił, że problem spowodwany jest istnieniem komunikatu systemowego MediaWiki:Places, który był automatycznie konwertowany w nawigacji na swoją zawartość.

Nasz zespół techniczny w końcu ustalił, że są 3 możliwe rozwiązania - stworzyć wyjątek dla rozszerzenia Places, aby komunikaty z niego były traktowane inaczej w nawigacji, zmienić nazwę komunikatu systemowego MediaWiki:Places lub zmienić sposób, w jaki komunikaty systemowe interpretowane są przez nawigację wiki. Ostatnia opcja wymagała poświecenia największej ilości czasu, jednak wydawała się najkorzystniejsza w długim okresie i została dodana do listy bugów na najbliższy Quality Blitz. Zdecydowano, że najlepszym sposobem rozwiązania problemu będzie pozostawienie automatycznej konwersji komunikatów jedynie na karcie "Na Wiki". Pozostałe karty nie będą przekształcać komunikatów w ich zawartość.

Jeden z inżynierów Wikii, Sebastian, wziął na siebie to zgłoszenie, dokonał koniecznych zmian w kodzie, przetestował każdy krok zmiany w zamkniętym obszarze testowym, zwanym "devbox", po czym przesłał zmianę kodu do naszego repozytorium kodu. Gdy zmiana weszła w życie, zgłoszenie zostało oznaczone jako rozwiązane i skierowane z powrotem do pracownika zgłaszającego problem (w tym wypadku Berta) aby potwierdził działanie rozwiązania i zamknął zgłoszenie.

Inne rozwiązane bugi

Poniżej kilka innych błędów, którymi zajmowaliśmy się podczas ostatniego QualityBlitz:

  • Komunikat pytający o potwierdzenie opuszczenia okna edytora pojawiał się nawet gdy nie dokonano żadnych zmian na stronie.
  • Opcja "Tekst źródłowy" dla użytkowników nie posiadających odpowiednich uprawnień nie powodowała wyświetlania się pomocnych komunikatów o braku uprawnień.
  • Opcja "Drobna zmiana" pojawiała się także podczas tworzenia nowej strony. Z kolei edycje wpisów na blogach nie dawały się oznaczyć jako drobne.
  • Kolejność podświetlanych opcji przy wykorzystaniu klawisza tabulacji w trakcie edycji została zmieniona.
  • Użytkownicy, którzy w swojej nazwie użytkownika mieli przecinek, nie mogli wysyłać/otrzymywać prywatnych wiadomości na czacie.

Możecie dowiedzieć się więcej o rozwiązywanych bugach śledząc wpisy o cotygodniowych aktualizacjach technicznych. Ponadto, Wikia nie jest w stanie rozwiązać problemów, jeśli nie są one zgłaszane. Największym sprzymierzeńcem w eliminowaniu bugów jest grupa kilku milionów użytkowników Wikii.

Dziękujemy za cierpliwość w trakcie gdy próbujemy połączyć oba światy: serwisu wolnego od bugów jak i pełnego ciekawych i przydatnych rozszerzeń pozwalających Waszym wiki rosnąć.

Więcej od Wikii

Losowa wiki