5 wskazówek, jak zapewnić wolne od błędów tworzenie oprogramowania

7

Czy Twoja aplikacja zawiera błędy? Oczywiście, że tak, ponieważ każdy dostępny program ma problemy, a historia wolnego od błędów oprogramowania to mit. Jednak nadal możliwe jest znaczne zminimalizowanie błędów, błędów i problemów z bezpieczeństwem, stosując kilka książkowych, ale praktycznych technik ograniczania.

Śledzenie błędów wiąże się z dużą dyscypliną, ponieważ wymaga zachęcania wszystkich do przestrzegania zasad. Szczególnie w startupach i branżach napędzanych kreatywnością zniechęcenie do wszelkiej nieformalnej komunikacji może być dość trudne. W rzeczywistości w wielu przypadkach ludzie nie określają „śledzenia błędów" jako najbardziej skoncentrowanej części projektu.

O co tak naprawdę chodzi w śledzeniu błędów?

Według Technopedia: „Śledzenie błędów to proces używany przez personel ds. kontroli jakości i programistów do śledzenia problemów z oprogramowaniem i ich rozwiązań”.

Dlatego system śledzenia błędów zarządza wszystkimi informacjami o zgłoszonych błędach i śledzi status każdego błędu. Na pewno widzisz potrzebę obszernych informacji podczas śledzenia problemów. Dostarczenie wystarczającej ilości danych wymaga nie tylko ogromnej ilości czasu, ale także bogatych umiejętności w zakresie tworzenia oprogramowania.

Klasyfikacja błędów

Istnieją trzy rodzaje błędów oprogramowania:

  • Nieprawidłowe specyfikacje
  • Wady implementacji
  • Brak specyfikacji

Każdy z tych typów błędów można łatwo sklasyfikować jako problem krytyczny (lub przeklasyfikować jako ulepszenie). Wspomniano wcześniej o niektórych wytycznych dotyczących reklasyfikacji, które są stosowane przez Sama Hatouma, założyciela Xolv.io.

  • Czy błędna specyfikacja jest dla nas stratą? Na przykład specyfikacja określa liczbę kliknięć śledzenia, podczas gdy należy śledzić wydatki. Reclassify Bug.
  • Czy wadę wykonania można pominąć? Na przykład czcionka internetowa jest instalowana, gdy powinna być osadzona w oprogramowaniu.
  • Czy brakująca specyfikacja oznacza nowe funkcje? Na przykład użytkownicy nie mogą udostępniać i edytować swoich danych profilowych w sieciach społecznościowych.

Stawka jest wysoka, aby menedżerowie produktu skutecznie klasyfikowali błędy, ponieważ zespół programistów jest poinstruowany, aby nadać priorytet błędom w stosunku do wszystkich innych prac. Deweloperzy nie będą działać ani nic innego, dopóki wszystkie błędy nie zostaną usunięte.

Tworzenie standardów jakości zespołu

Kiedy zespół projektowo-programistyczny decyduje, czy wirus aplikacji może zostać przeklasyfikowany jako ulepszenie, ten proces decyzyjny pośrednio określa standardy jakości zespołu. Na przykład właściciel marki, który kładzie nacisk na wysokiej jakości efekty wizualne, może mieć niską tolerancję na rozbieżności projektowe. Zamiast tego przeklasyfikowaliby te problemy jako błędy.

Spójny system reklasyfikacji pozwala na ciągłe dostosowywanie oczekiwań do rzeczywistości, przy jednoczesnym zachowaniu ustrukturyzowanego podejścia do realizacji, które stawia standardy jakości Twojego zespołu na pierwszym miejscu.

Awarie błędów

Ostatnie badania wskazują, że prawie 40 procent awarii systemu jest spowodowanych błędami oprogramowania, podczas gdy inne problemy z bezpieczeństwem i luki w zabezpieczeniach programów stanowią 60 procent, spowodowanych typową pamięcią i problemami związanymi ze współbieżnością. Redukcja błędów oprogramowania w aplikacji to najlepszy sposób na zwiększenie bezpieczeństwa, stabilności i niezawodności oprogramowania.

Wskazówki, jak zapewnić wolne od błędów tworzenie oprogramowania

Podczas opracowywania narzędzia rejestrującego SmartInspect programiści stosowali wiele metod, aby utrzymać wysoką jakość swojego systemu. Wspomniana wcześniej lista zawiera niektóre techniki, których używali.

1 Stworzenie przestrzeni do komunikacji

Wykrywanie i zgłaszanie błędów wymaga umiejętności identyfikowania istotnych informacji, które są następnie dodawane do każdego zgłoszenia problemu. Istnieje wiele narzędzi do śledzenia błędów i zapewniania jakości, takich jak Usersnap, które oferują możliwość automatycznego dołączania potrzebnych informacji. Niemniej jednak zawsze będzie miejsce na brakujące lub niezrozumiałe informacje, skutkujące potrzebą właściwej komunikacji.

W niektórych scenariuszach testowych nie ma miejsca na tego rodzaju ujawnienie między programistami a testerami. Pytania typu: „Jak mogę skontaktować się z odpowiedzialnymi ekspertami?” lub „Czy można poprosić o opinię przez telefon lub e-mail?” należy odpowiedzieć na początku procesu śledzenia błędów.

Aby uniknąć nieporozumień w imieniu testerów i programistów, spróbuj doprowadzić wszystkich do tej samej strony i stworzyć kulturę zorientowaną na opinie, w której praca obu stron jest szanowana w ten sam sposób.

2 Trzymaj to jeden na jeden

Unikaj omawiania błędów na spotkaniu projektowym. Nie zrozum mnie źle. Nie ma nic złego w pracy zespołowej, powielaniu i naprawianiu błędów. Ale nie omawiajcie problemów podczas przedłużających się spotkań z całym gabinetem. Według Thomasa Pehama, blogera technologicznego w Usersnap.com, zgłaszanie błędów, a następnie omawianie ich w następnej fazie „ponownego testowania” jest dość powolnym podejściem.

W rzeczywistości o wiele bardziej wydajne jest utrzymywanie go jeden na jednego. Jak napisał Jegor w swoim artykule na temat 5 zasad śledzenia błędów, każdy raport o błędzie jest powiązany między dwiema osobami – specyfikatorem i osobą rozwiązującą problem. Bez względu na to, ile osób jest zaangażowanych w proces, istnieją tylko 2 główne obowiązki (z dwiema różnymi rolami) za rozwiązanie zgłoszonego problemu.

3 Zapewnij sobie poparcie swojego zespołu

Jeśli nie korzysta z niej cały zespół, dobra baza danych śledzenia błędów byłaby nieskuteczna. Najlepiej zacząć od zaangażowania wszystkich interesariuszy (obsługi klienta, zapewnienia jakości, kierowników projektów i programistów) do oceny narzędzi i podjęcia wspólnej decyzji; logowanie i usuwanie usterek w spójny sposób przy użyciu tego samego systemu.

Jeśli masz problem ze zachęceniem ludzi do współpracy, oto co możesz zrobić;

Dla programistów ustal zasady przyjmowania raportów o błędach za pośrednictwem indywidualnych baz danych, a nie w jakikolwiek inny sposób. Kiedy testerzy wysyłają Ci e-maile z opiniami, po prostu poproś ich, aby zamiast tego wrzucili raporty do systemu informacyjnego. Oprócz zapewnienia porządku, pomaga to również w raportowaniu, dostarczając wszystkich niezbędnych informacji i definiując niezbędne pola.

Innym sposobem na stworzenie bardziej wydajnego procesu jest zapewnienie kontroli jakości lub wsparcie weryfikujące błędy od klientów i dodanie dokładnych kroków w bazie danych, zanim programiści zostaną nawet powiadomieni. Skuteczne śledzenie problemów z oprogramowaniem jest jednym z najważniejszych aspektów posiadania niezawodnej i spójnej struktury zarządzania projektami.

  • Dobry debuger

Jeśli używasz systemów takich jak Visual Studio lub Delphi, masz już dostęp do niezwykle wydajnego debuggera, z którego powinieneś skorzystać. W przypadku środowiska skryptowego, w którym programiści często próbują eliminować błędy metodą prób i błędów, proces ten staje się nie tylko kłopotliwym sposobem identyfikowania i rozwiązywania problemów, ale jest również bardzo niebezpieczny, jeśli nie do końca rozumiesz swój kod i nie jesteś w stanie przejdź przez to za pomocą debuggera. Zrób sobie przysługę, kupując dobrą platformę do debugowania dla swojego zespołu — istnieją debuggery do prawie wszystkiego.

4 Dowiedz się, co oznacza „zamknięty” błąd

Czy kiedykolwiek brałeś udział w dyskusji na temat zamykania błędu? Cóż, gratulacje, byłeś w najgorszej możliwej sytuacji śledzenia błędów, jaka kiedykolwiek mogła mieć miejsce.

Jeśli znajdziesz się w dyskusji na temat „statusu błędu”, rozważ cofnięcie się i zadanie sobie następujących pytań:

  • Do kogo należy akceptacja wyników?
  • Jakie są kryteria akceptacji?
  • Kto jest odpowiedzialny za wydanie polecenia?

Spójrz na znaczenie słowa „zamknięty”. W większości zespołów programistycznych błąd jest zamykany przez osobę, która naprawiła błąd. Peham zaleca zamknięcie raportu o błędzie przez osobę, która zgłosiła problem. Gdy programista przedstawi rozwiązanie określonego błędu, zgłaszający powinien zostać poproszony o zamknięcie zgłoszenia. Zapewniłoby to, że informacja zwrotna jest wystarczającym rozwiązaniem dla zamętu w oprogramowaniu.

5 maszyn wirtualnych

Aby przetestować oprogramowanie pod kątem błędów w możliwie wielu różnych systemach operacyjnych i środowiskach, należy używać maszyn wirtualnych z narzędziami takimi jak Virtual PC lub inne dostępne oprogramowanie do wirtualizacji. Dzięki tej metodzie możesz zaoszczędzić mnóstwo czasu, ponieważ możesz łatwo kopiować, udostępniać i resetować maszyny wirtualne, co pozwala testować oprogramowanie na wszystkich rodzajach konfiguracji.

Zawsze lepiej jest utworzyć różne standardowe obrazy dla wszystkich regularnie testowanych systemów operacyjnych i umieścić je na serwerze plików. Jeśli potrzebujesz bardzo specyficznej konfiguracji, aby coś przetestować, możesz zacząć od jednego z obrazów podstawowych bez instalowania systemu operacyjnego, wymaganego oprogramowania i sterowników itd.

Nie jest to nowa koncepcja

Kiedy Hatoum wymyślił tę koncepcję, przekonał się, że idea oprogramowania Zero-Bug nie jest nowa. W rzeczywistości istnieje od lat sześćdziesiątych, podobnie jak wiele zapomnianych filozofii starej szkoły.

Legendarny ekspert ds. jakości, Phillip Crosby, wymyślił termin Zero-Defect podczas pracy w firmie Martin Company lub obecnie znanej jako „Lockheed Martin”, gdzie według doniesień osiągnięto „redukcję defektów sprzętu o 54% w ramach kontroli rządowej”.

Początkowo technika Zero-Defect była stosowana w produkcji lotniczej w latach 60-tych, a następnie została zastosowana w produkcji samochodowej w latach 90-tych. Istnieje wiele podobieństw między przemysłem wytwórczym a dostarczaniem oprogramowania.

Na przykład popularna modalność zwinnego zarządzania Kanban wywodzi się z Systemu Produkcyjnego Toyoty. Zasadniczo mówi nam to, że możemy łatwo przyjrzeć się tym procesom produkcyjnym w poszukiwaniu inspiracji technicznych w tworzeniu oprogramowania lub aplikacji, a Zero-Bug jest jedną z tych inspiracji.

Ekstremalny koszt spełnienia standardu jest jednak jedną z głównych krytyki podejścia Zero-Defect. A jeśli zostanie to nieprawidłowo zaimplementowane, może to rzeczywiście być prawdą. W podejściu Zero-Bug, Hatoum bezpośrednio zajął się tym problemem poprzez reklasyfikację błędów do funkcji i znaczących ulepszeń, umożliwiając kontrolowanie kosztów poprzez standardy jakości zespołu.

Zacznij dzisiaj

Jako użytkownicy technologii i programiści możesz zacząć przeglądać wszystkie istniejące usterki i klasyfikować je za pomocą wspomnianego systemu. Jeśli uważasz, że masz setki tysięcy problemów, może to być dobry moment, aby je nadrobić i zacząć od nowa. Nie martw się, zawsze możesz przenieść błędy z archiwów do bieżącej domeny, jeśli zajdzie taka potrzeba.

Zespół programistów niekoniecznie musi czekać, aż całe zadanie klasyfikacyjne zostanie zakończone, zanim zacznie zgniatać błędy; mogą zacząć, gdy tylko kilka błędów zostanie sklasyfikowanych. Zespół nie może rozpocząć pracy nad żadnymi innymi elementami z rejestru, dopóki wszystkie elementy nie zostaną „uwolnione od błędów” lub przeklasyfikowane. To właśnie ta zasada zmusza menedżerów produktu do prawidłowego ustalania priorytetów nowych prac.

Podsumowując

Każdy zgłoszony błąd w projekcie wymaga dodatkowego czasu na naprawę. Śledzenie błędów wymaga zatem doskonałych umiejętności komunikacyjnych od osób śledzących błędy, a także wrażliwości od tych, którzy je naprawiają. Dzięki wyżej wymienionym hackom śledzącym Twój zespół może starać się być bardziej produktywny, zgłaszając wszelkiego rodzaju przeszkody techniczne lub związane z bezpieczeństwem.

Comments are closed, but trackbacks and pingbacks are open.

Ta strona korzysta z plików cookie, aby poprawić Twoje wrażenia. Zakładamy, że nie masz nic przeciwko, ale możesz zrezygnować, jeśli chcesz. Akceptuję Więcej szczegółów