Szoftverhiba ( zsargon bug ) - olyan hibát jelent a programban vagy a rendszerben, amely miatt a program váratlan viselkedést produkál, és ennek eredményeként az eredmény. A legtöbb szoftverhiba a program fejlesztői által a forráskódban vagy a tervezésben elkövetett hibákból adódik. Néhány hiba a fejlesztői eszközök helytelen működése miatt is előfordulhat, például egy olyan fordító miatt, amely helytelen kódot generál.
A "szoftverhiba" kifejezést általában olyan hibákra használják, amelyek a program működésének szakaszában jelentkeznek, szemben például a tervezési vagy szintaktikai hibákkal. A hibára vonatkozó információkat tartalmazó jelentést hibajelentésnek is nevezik . A program összeomlását okozó kritikus problémáról szóló jelentést (angol összeomlási jelentés) nevezzük összeomlási jelentésnek ( eng . crash report ).
A szoftverhibák lokalizálása és kiküszöbölése a program tesztelése és hibakeresése során történik .
A „ megfoghatatlan műszaki hiba ” jelentésében a „bug” ( eng. bug ) szót jóval a számítógépek megjelenése előtt használták a távíró- és telefontársaságok alkalmazottai az elektromos berendezésekkel és rádiótechnikával kapcsolatos problémákkal kapcsolatban. 1878- ban Thomas Edison ezt írta [1] :
„Ez minden találmányommal így volt. Az első lépés az intuíció, ami villámcsapásként jön, majd nehézségek merülnek fel – a készülék nem hajlandó működni, és ekkor jelennek meg a „hibák” – így hívják ezeket az apró hibákat, nehézségeket –, és ehhez több hónapos alapos megfigyelés, kutatás, ill. erőfeszítést, mielőtt kereskedelmi siker vagy kudarc jönne.”
Eredeti szöveg (angol)[ showelrejt] Ez minden találmányomnál így volt. Az első lépés az intuíció, és egy kitöréssel jön, majd nehézségek merülnek fel – ez a dolog kiadja magát, és [ez van] a "Bugok" - ahogy az ilyen kis hibákat és nehézségeket nevezik - megmutatják magukat, és hónapokig tartó intenzív figyelés, tanulás. és munkára van szükség a kereskedelmi siker vagy kudarc minden bizonnyal eléréséhez.A második világháború alatt a hibákat a radarelektronika problémáira használták.
Az egyik változat szerint ezt a kifejezést először Grace Hopper alkalmazta egy szoftverhibára 1947. szeptember 9-én [2] , aki a Harvard Egyetemen dolgozott egy Harvard Mark II számítógéppel .. Miután a program hibáját a gép elektromechanikus reléjére vezette , egy égett lepkét talált a zárt érintkezők között. A megtalált rovart egy technikai naplóba ragasztották, és egy ironikus felirattal: " Az első tényleges bogarat találták " [3] .
Attól függően, hogy melyik szoftverfejlesztési szakaszban észlelték a hibát, a következők vannak:
Fontosság szerint:
Megjelenés időpontja szerint:
Hely és úti cél szerint:
A hiba jellegétől, a programtól és a végrehajtási környezettől függően a hiba azonnal megjelenhet, vagy fordítva - hosszú ideig észrevétlen marad (például 2038-as probléma ).
Ezenkívül a hiba sérülékenységként nyilvánulhat meg, amely lehetővé teszi a rendszerhez való jogosulatlan hozzáférést vagy egy DoS-támadást .
Egy program hibakereséséhez ( eng. debugging ) a szoftverfejlesztők speciális hibakereső programokat ( eng. debugger ) használnak. Például Windows operációs rendszeren használhatja a WinDbg programot a Microsoft Debugging Tools for Windows csomagból. A GNU/Linux és számos más UNIX-szerű operációs rendszer esetében létezik a GDB hibakereső (GNU Debugger).
A hibák nagy részét rendszerint a program fordításának és tesztelésének szakaszában végzik el. A hibák egy része azonban továbbra is bekerül a publikált verzióba, és a szoftver működése során megjelenik a végfelhasználók számítógépén. A szoftverek minőségének javítása érdekében speciális programokat használnak, amelyek célja a célalkalmazás hibáinak észlelése, a szükséges információk összegyűjtése a tünetekről, és az interneten keresztül jelentést küldenek a szoftver fejlesztőinek.
Például a dr . Watson , amely alapértelmezés szerint elkapja a felhasználói alkalmazások hibáit, és jelentést küld egy speciális Microsoft Serverre . Példaként említhetjük a Breakpad [4] és a CrashRpt [5] hasonló könyvtárakat is .