Bug nədir?
Bug (Azərbaycan dilində — "xəta" və ya "proqram səhvi") — proqram təminatının gözlənilən nəticədən fərqli, yanlış və ya qeyri-adekvat davranış göstərməsinə səbəb olan kod səhvidir. Bug adətən proqramçının kodu yazarkən buraxdığı səhv nəticəsində yaranır və proqramın düzgün işləməsinə mane olur.
Sadə desək: bir proqramdan gözlədiyiniz nəticə ilə real aldığınız nəticə fərqlidirsə, deməli orada bug var.
"Bug" sözünün mənşəyi
Maraqlıdır ki, "bug" sözü kompüter tarixindən əvvələ gedib çıxır — mexaniki cihazlarda arıza yaradan həşəratları təsvir etmək üçün istifadə olunub. 1947-ci ildə Harvard Universitetində Mark II kompüterində baş verən nasazlığın səbəbi kimi real bir güvə (böcək) tapılması bu terminin kompüter elmində məşhurlaşmasına səbəb olan tarixi hadisə kimi bilinir.
Bug, Error, Defect və Fail arasındakı fərq
Bu dörd termin tez-tez qarışdırılır, amma hər birinin öz mənası var:
- Error (Səhv): İnsan (proqramçı) tərəfindən edilən səhvdir. Məsələn, kod yazarkən sintaksis səhvi buraxmaq və ya lazım olmayan yerdə səhv işarə qoymaq.
- Bug / Defect (Xəta / Qüsur): Error-un nəticəsində kodda yaranan real problemdir — gözlənilən nəticə ilə real nəticə arasındakı fərqdir. "Bug" və "Defect" demək olar eyni mənanı daşıyır; fərq isə çox vaxt kim tərəfindən tapıldığındadır — istifadəçi tapırsa adətən "bug", proqramçı özü tapırsa "defect" adlandırılır.
- Fail (Uğursuzluq): Bug-ın nəticəsində istifadəçinin qarşılaşdığı real, gözlənilməz nasazlıqdır — proqramın funksional tələbləri qarşılaya bilməməsidir.
Nümunə: "Əlaqə" səhifəsində e-poçt sahəsini boş buraxıb "Göndər" düyməsini kliklədikdə, sistem "E-poçt daxil edilməyib!" mesajı verməlidir. Əgər əvəzinə "Mesaj göndərildi!" mesajı görünürsə — deməli, proqramda bug var, çünki gözlənilən nəticə ilə real nəticə fərqlənir.
Bug Severity və Bug Priority
Bug tapıldıqdan sonra onun nə qədər ciddi olduğunu və nə vaxt düzəldiləcəyini müəyyən etmək lazımdır:
Severity (Ciddilik dərəcəsi) — bug-ın sistemin işləməsinə nə dərəcədə təsir etdiyini göstərir. Adətən 4 səviyyəyə bölünür:
- Low (Aşağı) — sistemin işinə demək olar təsir etmir, kosmetik problemlərdir.
- Minor (Kiçik) — kiçik funksional problemlər, əsas iş axınına təsir etmir.
- Major (Böyük) — əsas funksionallığa ciddi təsir edir.
- Critical (Kritik) — sistemin tamamilə işləməməsinə səbəb olur.
Priority (Prioritet) — bug-ın nə qədər tez düzəldilməli olduğunu göstərir (biznes baxımından aciliyyəti). Diqqət edin: Severity yüksək olsa da, Priority aşağı ola bilər (məsələn, nadir hallarda baş verən kritik bug), və ya əksinə.
Bug-ların həyat dövrü (Bug Lifecycle)
- Aşkar etmə (Discovery) — bug testçi və ya istifadəçi tərəfindən tapılır.
- Qeydiyyat (Reporting) — bug bir "bug tracker" sistemində sənədləşdirilir (addımlar, gözlənilən/real nəticə, screenshot və s. ilə).
- Təsnifat (Triage) — Severity və Priority təyin olunur.
- Düzəliş (Fix) — proqramçı kodu düzəldir.
- Yenidən test (Retest) — düzəlişin doğru işlədiyi yoxlanılır.
- Bağlama (Close) — bug rəsmi olaraq "həll olundu" statusuna keçir.
Bug Tracker sistemləri
Şirkətlər bug-ları izləmək və idarə etmək üçün xüsusi proqramlardan istifadə edir:
- Jira — ən geniş yayılmış layihə və bug idarəetmə sistemi.
- Bugzilla — açıq mənbəli bug tracking sistemi.
- Trello — daha sadə layihələrdə bug izləmək üçün istifadə oluna bilər.
- GitHub Issues — kod repozitoriyaları ilə birbaşa inteqrasiya olunmuş bug izləmə sistemi.
Bug-ların növləri
- Sintaksis bug-ları — kodun qrammatik qaydalarına zidd yazılması nəticəsində yaranır.
- Məntiqi (Logic) bug-lar — kod işə düşür, amma nəticə yanlışdır (məsələn, riyazi əməliyyatda səhv).
- Runtime bug-ları — proqram işlədiyi zaman baş verir (məsələn, mövcud olmayan fayla müraciət).
- Kompatibillik bug-ları — proqram müəyyən cihaz və ya brauzerdə fərqli işləyir.
Nəticə
Bug — proqram təminatı sahəsində qaçılmaz bir hadisədir; demək olar hər bir mürəkkəb proqramda bug-lar mövcud olur. Vacib olan bug-ların vaxtında aşkar edilməsi, düzgün təsnif edilməsi və effektiv şəkildə düzəldilməsidir. Bu proses, keyfiyyətli proqram təminatının əsasını təşkil edir və QA (Quality Assurance) mühəndislərinin əsas iş sahəsidir.
İstəyirsiniz ki, bu biliyi praktikaya keçirib real nəticələr əldə edəsiniz? IT və Kompüter Mühəndisliyi kursumuzla addım-addım öyrənməyə başlayın. Ətraflı məlumat üçün linkə keçid edin: IT və Kompüter Mühəndisliyi kursu
Tez-tez verilən suallar
Bug nədir? Bug — proqram təminatının gözlənilən nəticədən fərqli, yanlış davranış göstərməsinə səbəb olan kod səhvidir. Adətən proqramçının kodu yazarkən etdiyi səhv nəticəsində yaranır.
Bug ilə Error arasında fərq nədir? Error insan (proqramçı) tərəfindən edilən səhvdir (məsələn, sintaksis səhvi). Bug isə həmin səhvin nəticəsində kodda yaranan real problemdir — gözlənilən nəticə ilə real nəticə arasındakı fərqdir.
