QA nədir ? Software QA nədir ? Test nədir ? Proqram təminatının keyfiyyəti nədir ?

efaMetin
3 min readFeb 1, 2022

--

Birinci gəlin bundan başlayaq. Bu işi görən mütəxəssis necə adlanır ? Software Quality Assurance Engineer, yəni proqram təminatının keyfiyyətinə nəzarət mühəndisi. İndi isə getdiy )) Bundan sonra QA olaraq deyəcəyim, danışacağım şey əslində bir prosesdir. Keyfiyyət təminatı prosesi. Bu proses özü isə, yaradılan məhsulun və ya proqram təminatının gözlənilən keyfiyyət səviyyəsinə çatmasına kömək edir, köməkdən də başqa bunu təmin etməyə çalışır. Məncə, elə yazılarımızın əvvəlində bunu demək yerinə düşərdi ki, QA səhvlərin aşkarlanması, bugların üzə çıxarılması işinə baxmaqla yekunlaşmır ancaq. QA prosesi səhvlərin baş verməsinin, xətaların baş verməsinin qarşısını alacaq, almağa çalışacaq proseslər toplusudur. Bu prosesləri icra edəcək şəxslər isə Software QA Engineer-lərdir. Keyfiyyət təminatı işi başqa sahələrdə də var. Bunları da netdən araşdıra bilərsiniz. Bunu sırf ona görə deyirəm ki, linkedində filan, işinizi əlavə edəndə qarışıqlıq olmasın, nə yazacağınızı biləsiniz )

Belə olanda bir sual çıxa bilər ki ortaya, yaxşı bəs onda test nədir ? Test elə QA-dirmi ? QA və test proqram təminatının keyfiyyətinin artırılmasına xidmət edir hər ikisi. Amma bilməniz lazımdır ki, QA proqram təminatının hazırlanması müddətində başdan sona keyfiyyətin yaxşılaşdırılmasına xidmət edir və bunun üçün olan prosesdir. Test isə bu prosesin bir mərhələsidir. Yəni keyfiyyət təminatı üçün test də lazımdır. Belə deyə bilərik ki, QA-in məqsədi proqram təminatı hazırlanması müddətincə keyfiyyət ortaya qoymaqdır, testin məqsədi isə bir yazılımın gözləntilərə uyğun işləyib işləmədiyini yoxlamaq.

Netdə araşdırsanız görərsiniz ki, bu sual intervyuda verilən suallardan biridir. Ki bəs, QA və test arasında fərq nədir. Müsahibəni aparan şəxs, bu sualı verməklə namizəd fərqləri ayırd edə bilirmi deyə yoxlayır bəzən. Netdən də belə müsahibələrə hazırlaşıb gedənlər, suala standart bir cavab əzbərliyirlər gördüyüm qədəri ilə. Cavab da belədir ki, QA proaktivdir, test isə reaktiv. Bu standart əzbərlənmiş cavabla mən də rastlaşmışam. İstəyirəm biraz da bunu açıqlayım. Bu doğru cavabdır əslində. Ancaq çoxu zaman bunun nə oldugunu bilmədən bu cavab verilir hiss elədiyim qədər.

Proaktiv yanaşma olan QA, potensial problemlərin qarşısını almaq üçün strateji planlamalar aparır, standartlar qurur və proseslərin yaxşılaşdırılmasına fokuslanır. QA, inkişaf mərhələsinin başlanğıcından etibarən müxtəlif üsullardan (kod yoxlamaları, keyfiyyət standartları, proses təkmilləşdirmələri və s.) istifadə edərək keyfiyyəti artırmağa çalışır. Bu yanaşmanın məqsədi problemlərin yaranmamışdan önlənməsidir. Burada "proaktiv" sözü qabaqlayıcı, yəni problem baş vermədən öncə tədbir görən yanaşmanı ifadə edir.

Test isə daha çox reaktiv bir yanaşmadır, çünki bu mərhələdə proqram təminatı artıq müəyyən bir səviyyəyə çatmış olur. Test, mövcud proqramı yoxlamaq və mövcud xətaları tapmaq üçün tətbiq edilir. Bu reaktiv yanaşma ilə, test əslində QA prosesinin təmin etdiyi keyfiyyəti yoxlayan son bir zəmanət mexanizmi rolunu oynayır. "Reaktiv" sözünün mənası isə meydana gələn bir vəziyyətə cavab verərək hərəkət etmək, yəni vəziyyətə uyğun reaksiya göstərməkdir.

Qısacası, QA proqram təminatının inkişaf prosesində keyfiyyəti əvvəldən sona qədər nəzarətdə saxlayan bir yekə dairədir təsəvvür edin ki. Test isə bu dairə altında olan daha kicik bir dairə, doğrulama mərhələsidir. QA olmadan keyfiyyəti qoruyacaq standartlar eskik qala bilər, test olmadan isə hazırlanmış proqramın bu standartlara cavab verib-vermədiyi məlum olmaz.

Həəəə, bir də qaldı, bayaqdan keyfiyyət dediyimizin şeyin nə olması. Proqram təminatı üçün keyfiyyət nə sayılır yaxşı ?

Keyfiyyət, bir məhsulun və ya xidmətin tələblərə, gözləntilərə və müəyyən standartlara uyğun olduğunu ölçən bir göstəricidir. Bu göstərici, məhsulun performasını da ölçür, funksionallığın istəyə uyğun çalışıb çalışmadığını da ölçür, istifadəçi interfeysinin dizaynını da ölçür, UX prinsiplərini (gələcəkdə deyəcəm nədirsə) də ölçür. Bundan başqa proqram təminatının güvənliliyini, hər hansı məlumatların emal sürətini, yüklülük altında reaksiyasını, istifadəçilər üçün əlçətanlığını filan, və sair bu kimi şeyləri ölçür. Day bunla da bitir bu mövzu. Keyfiyyət də bildik nədir məncə.

Bu elə bir mövzudur ki, sadədir. Amma vacibdir. Bu mövzunun ardınca, kurs kimi, ardıcıllıq gözləyərək sizə Software QA Engineer olmağınız üçün bilməyiniz gərəkən mövzuları izah edib, yazıb paylaşacam. Bacardıqım qədər əlbəttə ki ). Çünki, online dərs keçmək və ya üz üzə izah etmək daha rahatdır məncə, nəyinki yazaraq izah etmək.

Gələn yazılaradək =)

--

--

No responses yet