gdzie według ciebie może być dom błędów oprogramowania? Poprawnie, w oprogramowaniu. Ale gdzie dokładnie?
dlaczego zdarza się, że programy nie działają poprawnie? To bardzo proste-są tworzone i używane przez ludzi. Jeśli użytkownik popełni błąd, może to prowadzić do problemu w działaniu programu – jest on używany nieprawidłowo, co oznacza, że może nie zachowywać się zgodnie z oczekiwaniami.
błąd ludzki
błąd-to ludzkie działanie, które daje nieprawidłowy wynik.
jednak oprogramowanie jest projektowane i tworzone przez ludzi, którzy również mogą (i robią) popełniać błędy. Oznacza to, że istnieją wady samego oprogramowania. Nazywane są wadami lub błędami (oba oznaczenia są równoważne). Pamiętaj-oprogramowanie to coś więcej niż tylko kod.
wady lub błędy oprogramowania
wada, błąd – niedobór komponentu lub systemu, który może prowadzić do awarii niektórych funkcji. Defekt wykryty podczas wykonywania programu może spowodować awarię pojedynczego komponentu lub całego systemu.
podczas wykonywania kodu programu mogą pojawić się wady, które zostały osadzone nawet podczas jego pisania: program może nie robić tego, co powinien, lub odwrotnie – robić to, czego nie powinien i dochodzi do awarii.
awaria lub awaria oprogramowania
awaria lub awaria to rozbieżność między faktycznym wynikiem działania komponentu lub systemu a oczekiwanym rezultatem.
awaria programu może być wskaźnikiem obecności w nim wady.
tak więc błąd istnieje, gdy spełnione są jednocześnie trzy warunki:
- oczekiwany wynik jest znany;
- rzeczywisty wynik jest znany;
- rzeczywisty wynik różni się od oczekiwanego wyniku.
ważne jest, aby zrozumieć, że nie wszystkie błędy powodują awarie – niektóre z nich mogą nie objawiać się w żaden sposób i pozostać niezauważone (lub pojawiają się tylko w bardzo szczególnych okolicznościach).
awarie mogą być spowodowane nie tylko wadami, ale także warunkami środowiskowymi: na przykład promieniowanie, pola elektromagnetyczne lub zanieczyszczenie mogą również wpływać na działanie oprogramowania i sprzętu.
w sumie istnieje kilka źródeł wad, a zatem awarii:
- błędy w specyfikacji, projektowaniu lub wdrażaniu systemu oprogramowania;
- błędy użytkowania systemu;
- niekorzystne warunki środowiskowe;
- celowe szkody;
- potencjalne konsekwencje wcześniejszych błędów, warunków lub zamierzonych działań.
usterki mogą występować na różnych poziomach, a jakość systemu będzie bezpośrednio zależeć od tego, czy zostaną skorygowane i kiedy.
jakość-stopień, w jakim zestaw nieodłącznych cech spełnia wymagania.
jakość oprogramowania to zbiór cech oprogramowania, które odzwierciedlają jego zdolność do zaspokajania deklarowanych i domniemanych potrzeb. Wymóg jest ustaloną potrzebą lub oczekiwaniem. Zwykle zakładane lub wymagane.
w pierwszym przypadku wszystko zostało wykonane poprawnie i otrzymaliśmy produkt, który w pełni spełnia oczekiwania klienta i spełnia kryteria jakości.
w drugim przypadku błędy zostały popełnione już podczas kodowania, co doprowadziło do pojawienia się wad w gotowym produkcie. Ale na tym poziomie błędy są dość łatwe do wykrycia i naprawienia, ponieważ widzimy niezgodność.
trzecia opcja jest gorsza – tutaj popełniono błędy na etapie projektowania systemu. Można to zauważyć tylko poprzez przeprowadzenie dokładnej kontroli ze specyfikacją. Korygowanie takich wad również nie jest łatwe – musisz przeprojektować projekt produktu.
w czwartym przypadku wady zostały określone na etapie tworzenia wymagań; cały dalszy rozwój, a nawet testy poszły początkowo złą ścieżką. Podczas testów nie znajdziemy błędów-program przejdzie wszystkie testy, ale może zostać odrzucony przez Klienta. Dowiesz się więcej na ten temat w naszych internetowych klasach kontroli jakości i certyfikacji.
Ogólnie rzecz biorąc, istnieje pięć powodów pojawienia się wad w kodzie programu.
- brak komunikacji w zespole. Często wymagania biznesowe po prostu nie docierają do zespołu programistów. Klient rozumie, w jaki sposób chce zobaczyć gotowy produkt, ale jeśli jego pomysł nie zostanie odpowiednio wyjaśniony programistom i testerom, wynik może nie być taki, jak oczekiwano. Wymagania powinny być dostępne i zrozumiałe dla wszystkich uczestników procesu tworzenia oprogramowania.
- Nowoczesne oprogramowanie składa się z wielu komponentów, które są połączone w złożone systemy oprogramowania. Wielowątkowe aplikacje, architektura klient-serwer i rozproszona, wielowątkowe bazy danych-programy stają się coraz trudniejsze do napisania i utrzymania, a tym trudniejsza staje się praca programistów. A im trudniejsza praca, tym więcej błędów może popełnić osoba wykonująca ją.
- zmiany w wymaganiach. Nawet drobne zmiany w wymaganiach pod koniec rozwoju wymagają dużo pracy, aby wprowadzić zmiany w systemie. Zmienia się design i architektura aplikacji, co z kolei wymaga zmian w kodzie źródłowym i Zasadach interakcji modułów oprogramowania. Te ciągłe zmiany są często źródłem subtelnych defektów. Niemniej jednak, często zmieniające się wymagania we współczesnym biznesie są bardziej regułą niż wyjątkiem, więc ciągłe testowanie i kontrola ryzyka w takich warunkach jest bezpośrednią odpowiedzialnością działu zapewnienia jakości.
- słabo udokumentowany kod. Trudno jest utrzymać i zmodyfikować źle napisany i słabo udokumentowany kod. Wiele firm ma specjalne zasady pisania i dokumentowania kodu przez programistów. Chociaż w praktyce często zdarza się, że programiści są zmuszeni do szybkiego pisania programów, a to wpływa na jakość produktu.
- narzędzia programistyczne. Renderery, biblioteki, Kompilatory, Generatory skryptów i inne pomoce rozwojowe to często słabo działające i słabo udokumentowane programy, które mogą stać się źródłem wad w gotowym produkcie.