5 wskazówek, jak zapewnić rozwój oprogramowania bez błędów
Opublikowany: 2017-10-24Czy Twoja aplikacja ma błędy? Oczywiście, że tak, ponieważ każdy dostępny program ma problemy, a historia oprogramowania wolnego od błędów to mit. Jednak nadal można znacznie zminimalizować błędy, błędy i problemy 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. Zwłaszcza w startupach i branżach napędzanych kreatywnie może być dość trudno zniechęcić do jakiejkolwiek nieformalnej komunikacji. W rzeczywistości w wielu przypadkach ludzie nie nazywają „śledzenia błędów” jako najbardziej skoncentrowaną częścią projektu.
Na czym tak naprawdę polega śledzenie błędów?
Według Technopedii: „ Śledzenie błędów to proces wykorzystywany przez personel ds. zapewnienia jakości i programistów do śledzenia problemów z oprogramowaniem i 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 wdrożenia
- Brak specyfikacji
Każdy z tych typów błędów można łatwo sklasyfikować jako problem krytyczny (lub przeklasyfikować jako ulepszenie). Wspomniano powyżej niektóre wytyczne dotyczące reklasyfikacji, które są używane przez Sama Hatouma, założyciela Xolv.io.
- Czy nieprawidłowa specyfikacja powoduje stratę? Na przykład stany specyfikacji śledzą liczbę kliknięć, podczas gdy powinny śledzić wydatki Reclassify Bug.
- Czy można zaniedbać wadę wdrożenia? Na przykład czcionka internetowa jest instalowana, gdy powinna być osadzona w oprogramowaniu.
- Czy brak specyfikacji oznacza nowe funkcje? Na przykład użytkownicy nie mogą udostępniać i edytować danych swojego profilu w sieciach społecznościowych.
Menedżerowie produktu stawiają sobie wysokie wymagania, aby skutecznie klasyfikować 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.
Formowanie standardów jakości zespołu
Kiedy zespół projektowy i programistyczny decyduje, czy wirus aplikacji może zostać przeklasyfikowany jako ulepszenie, ten proces decyzyjny domyślnie określa standardy jakości zespołu. Na przykład właściciel marki, który kładzie nacisk na wysokiej jakości wizualizacje, 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 dostarczania, które stawia standardy jakości Twojego zespołu na pierwszym miejscu.
Błędy błędów
Ostatnie badania pokazują, że prawie 40 procent awarii systemu jest spowodowanych błędami oprogramowania, podczas gdy inne problemy bezpieczeństwa i luki w programach stanowią 60 procent, spowodowane typowymi problemami związanymi z pamięcią i współbieżnością. Ograniczenie 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ć rozwój oprogramowania bez błędów
Podczas opracowywania narzędzia do logowania SmartInspect programiści zastosowali wiele metod, aby utrzymać wysoką jakość swojego systemu. Wspomniana powyżej lista zawiera niektóre z zastosowanych przez nich technik.
1. Stworzenie przestrzeni do komunikacji
Wykrywanie i zgłaszanie błędów wymaga umiejętności identyfikowania odpowiednich 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, co spowoduje konieczność 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 mogę poprosić o informację zwrotną 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 zebrać wszystkich na tej samej stronie i stworzyć kulturę zorientowaną na informacje zwrotne, w której praca obu stron jest szanowana w ten sam sposób.
2. Trzymaj to jeden na jednego
Unikaj omawiania błędów na spotkaniu projektowym. Nie zrozum mnie źle. Nie ma nic złego w pracy zespołowej, odtwarzaniu i naprawianiu błędów. Ale nie rozmawiaj o problemach podczas długich spotkań z całym gabinetem. Według Thomasa Pehama, blogera technicznego z Usersnap.com, zgłaszanie błędów, a następnie omawianie ich w kolejnej fazie „ponownych testów” jest dość powolnym podejściem.
Rzeczywiście, o wiele bardziej wydajne jest utrzymywanie go jeden na jednego. Jak napisał Jegor w swoim artykule o 5 zasadach ś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 dwoma różnymi rolami) za rozwiązanie zgłoszonego problemu.
3. Zapewnij sobie wpisowe od swojego zespołu
Jeśli cały Twój zespół z niego nie korzysta, dobra baza danych do śledzenia błędów byłaby nieskuteczna. Najlepiej zacząć od zebrania wszystkich interesariuszy (obsługi klienta, zapewnienia jakości, kierowników projektów i programistów) do oceny narzędzi i wspólnego podjęcia decyzji; logowanie i usuwanie usterek w spójny sposób przy użyciu tego samego systemu.
Jeśli masz problemy z pozyskaniem ludzi na pokład, oto, co możesz zrobić;
Dla programistów określ prawo akceptowania raportów o błędach za pośrednictwem poszczególnych baz danych, a nie jakiejkolwiek innej metody. Gdy testerzy wysyłają Ci e-maile z informacją zwrotną, po prostu poproś ich, aby zamiast tego wrzucili raporty do systemu informacyjnego. Oprócz tego, że wszystko jest uporządkowane, pomaga to również w raportowaniu, dostarczając wszystkie niezbędne informacje i definiując niezbędne pola.
Innym sposobem na stworzenie bardziej wydajnego procesu jest zapewnienie kontroli jakości lub wsparcie weryfikacji błędów od klientów i dodanie dokładnych kroków w bazie danych, zanim deweloperzy zostaną powiadomieni. Skuteczne śledzenie problemów z oprogramowaniem jest jednym z najważniejszych aspektów posiadania niezawodnej i spójnej struktury zarządzania projektami.
- Dobry debugger
Jeśli korzystasz z systemów takich jak Visual Studio lub Delphi, masz już dostęp do niezwykle wydajnego debuggera, którego powinieneś użyć. 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 nie tylko staje się kłopotliwym sposobem identyfikacji i rozwiązywania problemów, ale jest również bardzo niebezpieczny, jeśli nie rozumiesz w pełni swojego kodu i nie jesteś w stanie go przejdź przez to za pomocą debugera. Zrób sobie przysługę, kupując dobrą platformę do debugowania dla swojego zespołu – istnieją debugery 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 „stanu błędu”, rozważ cofnięcie się i zadanie sobie następujących pytań:
- Czyja jest odpowiedzialność za akceptację wyników?
- Jakie są kryteria akceptacji?
- Kto odpowiada za wydanie zamówienia?
Spójrz na znaczenie słowa „zamknięty”. W większości zespołów programistycznych błąd jest zamykany przez osobę, która go naprawiła. Peham zaleca zamknięcie zgłoszenia błędu przez osobę, która zgłosiła problem. Gdy programista przedstawi rozwiązanie pewnego błędu, zgłaszający powinien zostać poproszony o zamknięcie raportu. Zapewniłoby to, że informacja zwrotna jest wystarczającym rozwiązaniem dla zamieszania programowego.
5. Maszyny wirtualne
Aby przetestować oprogramowanie pod kątem błędów w wielu różnych systemach operacyjnych i środowiskach, jak to możliwe, powinieneś używać maszyn wirtualnych z narzędziami takimi jak Virtual PC lub inne dostępne oprogramowanie do wirtualizacji. Dzięki tej metodzie można zaoszczędzić mnóstwo czasu, ponieważ można łatwo kopiować, udostępniać i resetować maszyny wirtualne, co pozwala na testowanie oprogramowania we wszystkich rodzajach konfiguracji.
Zawsze lepiej jest tworzyć różne standardowe obrazy dla wszystkich regularnie testowanych systemów operacyjnych i umieszczać je na serwerze plików. Gdy 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 i tak dalej.
To nie jest nowa koncepcja
Kiedy Hatoum wymyślił tę koncepcję, dowiedział się, że pomysł na oprogramowanie Zero-Bug nie jest nowy. 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 lub jako obecnie znany jako „Lockheed Martin”, gdzie poinformowano, że osiągnęli „54-procentową redukcję defektów w sprzęcie podczas audytu rządowego”.
Początkowo technika Zero-Defect była stosowana w przemyśle lotniczym w latach 60-tych, a następnie w przemyśle motoryzacyjnym w latach 90-tych. Istnieje wiele podobieństw między przemysłem produkcyjnym a dostarczaniem oprogramowania.
Na przykład popularna zwinna metoda zarządzania Kanban wywodzi się z Toyota Production System. Mówi nam to zasadniczo, ż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.
Jednak ekstremalny koszt spełnienia standardu jest jedną z głównych krytyki podejścia Zero-Defect. A jeśli zostanie zaimplementowany niepoprawnie, może to być rzeczywiście prawdą. W podejściu Zero-Bug, Hatoum bezpośrednio poradził sobie z tym problemem poprzez przeklasyfikowanie błędów do funkcji i znaczące ulepszenia, co pozwoliło kontrolować koszty 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 zaksięgować 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 ćwiczenie klasyfikacyjne zostanie zakończone, zanim zaczną zgniatać błędy; mogą zacząć, gdy tylko kilka błędów zostanie sklasyfikowanych. Zespół nie może rozpocząć pracy nad żadnymi innymi pozycjami w backlogu, dopóki wszystkie pozycje nie zostaną „uwolnione od błędów” lub przeklasyfikowane. To właśnie ta zasada zmusza menedżerów produktu do prawidłowego nadawania priorytetów nowym pracom.
Podsumowując
Każdy zgłoszony błąd w projekcie wymaga dodatkowego czasu na naprawienie. Śledzenie błędów wymaga zatem duż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 podczas zgłaszania wszelkiego rodzaju przeszkód technicznych lub bezpieczeństwa.