Błąd (informatyka)

Błąd w oprogramowaniu to problem z kodem w programie komputerowym, który sprawia, że nie działa on prawidłowo. Mogą one powodować niedogodności dla użytkownika i mogą spowodować awarię lub zawieszenie się komputera. Większość programów komputerowych ma błędy. Program, który ma dużą liczbę błędów (lub ewentualnie jeden lub kilka poważnych błędów) jest określany jako buggy.

Większość błędów jest spowodowana złym programowaniem przez dewelopera, ale czasami mogą one być spowodowane przez problemy z kompilatorem. Kiedy błędy zostaną znalezione, ludzie wysyłają raporty o błędach do dewelopera, aby poinformować go o nich i pozwolić im je naprawić.

Czasami ludzie mówią, że ich komputer ma błąd, gdy coś jest z nim nie tak. Problem jest zazwyczaj spowodowany przez wirusa komputerowego, który zainfekował ich komputer i sprawia, że jest powolny lub robi różne rzeczy.

Niektóre błędy są nieszkodliwe, na przykład wiele gier wideo błędnie pozwala obiektom poruszać się przez ściany. Inne błędy są poważniejsze, na przykład błąd w systemie nawigacyjnym, który powoduje eksplozję samolotu.



Rodzaje błędów

Przepełnienie bufora

Przepełnienie bufora występuje wtedy, gdy program zapisuje lub odczytuje z obszaru pamięci, do którego nie powinien mieć dostępu.

Przepełnienie arytmetyczne

Przepełnienie arytmetyczne ma miejsce, gdy liczba zawarta w zmiennej zostanie zwiększona ponad najwyższą liczbę, na jaką pozwala zmienna. Zazwyczaj powoduje to powrót liczby do zera.

Nieskończona pętla

Nieskończona pętla ma miejsce, gdy program wchodzi w pętlę (seria instrukcji, która jest powtarzana wiele razy) i nie ma możliwości wyjścia z pętli. Może to spowodować zawieszenie się programu.

Błędy zaokrągleń

Jeśli zmienna zmiennoprzecinkowa nie ma wystarczającej precyzji, liczba przechowywana w niej może być niedokładna. Może to powodować różne problemy w zależności od rodzaju programu, na przykład może to spowodować, że program nawigacyjny będzie nawigował do niezamierzonego miejsca lub zniekształcony dźwięk w programie do nagrywania dźwięku.

Podział przez zero

Dzielenie przez zero jest niepoprawną operacją matematyczną. Jeśli program podzieli liczbę całkowitą przez zero, ulegnie awarii. W Linuksie, komunikat wyświetlany podczas wystąpienia tego błędu to "wyjątek zmiennoprzecinkowy", nawet jeśli liczby zmiennoprzecinkowe nie były zaangażowane. Matematyka zmiennoprzecinkowa czasami pozwala na dzielenie przez zero. Zazwyczaj skutkuje to specjalną wartością "not a number".

Problemy z przycinaniem

W grach wideo problemy z przycięciami, zwane również problemami z wykrywaniem kolizji, występują, gdy obiekt przechodzi przez barierę (taką jak ściana, podłoga lub sufit), przez którą nie miał przechodzić. Jest to bardzo częsty błąd występujący w wielu grach wideo. Może się to zdarzyć na przykład w Doom 2, gdy zmiażdżony potwór zostaje wskrzeszony przez arcywilka. Problemy z przycięciami mogą być często wykorzystywane jako taktyka oszczędzająca czas w speedrunach, na przykład w Super Mario 64 możliwe jest pominięcie chodzenia po spiralnych schodach w zamku poprzez przeskakiwanie przez sufit.

Błędy bezpieczeństwa

Błędy w zabezpieczeniach to błędy, które pozwalają intruzowi albo uzyskać dostęp do komputera, albo spowodować awarię komputera. Spowodowanie awarii komputera jest nazywane atakiem typu denial-of-service. Błędy bezpieczeństwa są uważane za szczególnie ważne do naprawienia, ponieważ mogą pozwolić intruzom na kradzież ważnych informacji, takich jak numery kart kredytowych lub hasła. Przykłady błędów bezpieczeństwa to Heartbleed i Shellshock.



Misbugs

Misbug to błąd, który został wykorzystany jako funkcja. Przykładem może być błąd w telefonie z systemem Android, który pozwala użytkownikom na uzyskanie dostępu root.



Błędy sprzętowe

Niektóre błędy mają wpływ na sprzęt (fizyczne części komputera), a nie na oprogramowanie. Na przykład, uruchomienie instrukcji lock cmpxchg8b eax na starych procesorach Pentium spowodowałoby, że procesor przestałby działać aż do ponownego uruchomienia. Ponieważ błędy sprzętowe są fizycznymi wadami projektowymi, nie mogą być poprawione przez aktualizację oprogramowania, chociaż może być możliwe obejście (ukrycie) błędu przez aktualizację oprogramowania.



Pytania i odpowiedzi

P: Co to jest błąd w oprogramowaniu?


O: Błąd w oprogramowaniu to problem z kodem w programie komputerowym, który powoduje, że nie działa on poprawnie.

P: Jakie są konsekwencje błędu w oprogramowaniu?


O: Błąd oprogramowania może powodować niedogodności dla użytkownika i może spowodować awarię lub zawieszenie się komputera.

P: Czy wszystkie programy komputerowe mają błędy?


O: Tak, większość programów komputerowych zawiera błędy.

P: Co to jest wadliwy program?


O: Program z błędami to taki, który ma dużą liczbę błędów lub ewentualnie jeden lub kilka poważnych błędów.

P: Kto jest odpowiedzialny za większość błędów w programach komputerowych?


O: Większość błędów jest spowodowana złym programowaniem przez programistę, ale czasami mogą one być spowodowane problemami z kompilatorem.

P: Co robią ludzie, gdy znajdą błąd w programie komputerowym?


O: Po znalezieniu błędu ludzie wysyłają raporty o błędach do programisty, aby poinformować go o błędzie i pozwolić mu go naprawić.

P: Co ludzie mają na myśli mówiąc, że ich komputer ma błąd?


O: Kiedy ludzie mówią, że ich komputer ma błąd, zwykle mają na myśli, że coś jest z nim nie tak, co zwykle jest spowodowane wirusem komputerowym, który zainfekował ich komputer i spowalnia go lub robi różne rzeczy.

AlegsaOnline.com - 2020 / 2023 - License CC3