Əsas test məsələsi

Giriş

Salam, Habr izləyiciləri. Yaxınlarda bir fintech şirkəti üçün QA Lead vəzifəsinə test tapşırığını həll edirdim. İlk tapşırıq, elektrikli su çaydanı üçün tam test-planı, yoxlama siyahısı və test halları nümunələri tərtib etməkdir. Bu, asanlıqla həll oluna biləcək bir məsələdir:

Amma ikinci hissə sual oldu: “Testçilərin işini daha təsirli şəkildə idarə etmələrinə mane olan ümumi problemlər varmı?”

Ağlıma gələn ilk şey: test zamanı qarşılaşdığım nəzərəçarpan problemlərin siyahısını tərtib edin, kiçik məsələləri kənara qoyun, qalanlarını ümumiləşdirin. Ancaq tezliklə başa düşdüm ki, induktiv metod sualın “hamıya” aid olmadığını, ən yaxşı halda yalnız “çoxluğa” aid olduğunu cavablayır. Buna görə də deduktiv yanaşma ilə yanaşmağı qərara aldım və budur nəticə.

Təyin etmələr

Yeni bir tapşırıq həll edəndə, adətən, onun nədən ibarət olduğunu anlamağa çalışıram, bunun üçün də o sözlərin mənasını anlamaq lazımdır ki, onlar necə ifadə olunub. Aydınlaşdırılmalı olan əsas sözlər bunlardır:

  • problem
  • testçi
  • testçinin işi
  • testçinin işinin effektivliyi

Vikipediyaya və məntiqə müraciət edək:
Məsələ (Köhnə Yunan, πρόβλημα) geniş mənada - öyrənilməyi və həlli tələb edən mürəkkəb nəzəri və ya praktiki sualdır; elm sahəsində - hansısa hadisələrin, obyektlərin, proseslərin izahında əks tərəfdə duran mövqelərin qarşıdurması olan vəziyyətdir və onun həlli üçün adekvat nəzəriyyə tələb olunur; həyatda problem, insanlara anlaşılan bir şəkildə “nəyi bilirsiniz, necə edəcəyinizi bilmirəm” formasında ifadə olunur, yəni lazım olduğunu bildiyiniz, amma necə edəcəyinizi bilmədiyiniz şeydir. Latenin məsəlinin kökdən gəldiyini bilərik, yunan sözü πρόβλημα “irəlidə atılmış, əvvələ qoyulmuş” deməkdir; προβάλλω “irəlidə atmaq, özünə qoymaq; günahlandırmaq” deməkdir.

Çox başa düşülən deyil, əsasən, “məsələ” = “hər hansı bir şey, üzərində çalışılması gərəkən”.
Testçi — ixtisas sahəsindəki bütün testçiləri nəzərə alaraq (növələrlə fərqləndirmədən), komponentin və ya sistemin testində iştirak edən mütəxəssis, fəaliyyətinin nəticəsi olaraq:
Testçinin işi — test etməyə aid tədbirlər kompleksidir.
Təsirli (lat. effectivus) — əldə edilən nəticə ilə istifadə olunan resurslar arasındakı nisbət (ISO 9000:2015).
Nəticə — hadisələr silsiləsinin (zincirinin) nəticəsi (sonuc) və ya keyfiyyətcə ya da miqdarca ifadə olunan əlamətidir. Mümkün nəticələrə üstünlük, çətinlik, fayda, itki, dəyər və qələbə daxildir.
“Problemi” olduğu kimi: bir işin nəticəsində ortaya çıxan bir şey.
Resurs — insan və ya insanlar tərəfindən istənilən bir fəaliyyətin yerinə yetirilməsinə ölçülə bilən imkan; müəyyən transformasiyalar vasitəsilə istənilən nəticəni əldə etməyə imkan yaradan şərait. Testçi — insan, və həyat resursları nəzəriyyəsinə görə hər insan dörd iqtisadi aktivə sahibdir:
maliyyə (gəlir) — bərpa olunan resurs;
enerji (həyat qüvvəsi) — qismən bərpa olunan resurs;
vaxt — sabit və əsasən bərpa olunmayan resurs;
bilgi (informasiya) — bərpa olunan resurs, insan kapitalının bir hissəsidir, bu həm artırıla, həm də azaldıla bilər.[1].

Qeyd etmək istəyirəm ki, bizim vəziyyətimizdə effektivliyin müəyyən edilməsi tam dəqiq deyil, çünki istifadə etdiyimiz bilik artdıqca effektivlik azalır. Buna görə də effektivliyi “əldə edilən nəticə ilə sərf olunan resurslar arasındakı nisbət” olaraq yenidən müəyyən edərdim. Onda hər şey düzgün olur: bilik işləyərkən israf edilmir, ancaq testçinin yeganə prinsipcə bərpa olunmayan resursu — vaxtının xərclərini azaldır.

Həll

Beləliklə, testçilərin işini pisləşdirən qlobal problemləri axtarırıq.
Testçinin işinə sərf olunan ən əhəmiyyətli resurs onun vaxtıdır (digərləri buna ya bir şəkildə bərabərləşdirilə bilər), və dəqiq effektivlik hesablaması üçün nəticəsi vaxtla birləşməlidir.
Bunun için, işlevselliği test eden bir sistemin canlılığını gözden geçirelim. Böyle bir sistem, bir testçinin yer aldığı bir projedir. Projenin yaşam döngüsünü kaba bir şekilde şu algoritmayla temsil edebiliriz:

  1. Gereksinimlerle çalışma
  2. Teknik gereksinimlerin oluşturulması
  3. İnkişaf
  4. Test
  5. Üretime çıkış
  6. Destek (a.1'e git)

Bu arada, proje tamamen alt projelere (özelliklere) geri dönüşümlü olarak ayrılabilir; bunların her birinin aynı yaşam döngüsüne sahiptir.
Bir proje açısından, gerçekleştirilme etkinliği, onun üzerinde geçirilen zamanla ters orantılıdır.
Böylece, bir projenin bakış açısına göre, testçinin maksimum etkinlik tanımına ulaşıyoruz: projenin test süresinin sıfır olduğu durumdur. Ancak tüm testçiler için genel bir sorun, bu sürenin asla ulaşılamamasıdır.

Bu durumda ne yapılmalı?

Sonuçlar oldukça açıktır ve uzun zamandır birçokları tarafından kullanılmaktadır:

  1. Geliştirme ve test süreçleri neredeyse aynı anda başlamalı ve sona ermeli (bu genellikle QA). İdeal olan, geliştirilen her işlevselliğin hazır olduğunda otomatik testlerle kapsandığı bir durumdur; bu, regresyon testi (mümkünse, ön-commit testleri ile) yoluyla organize edilmiştir. CI.
  2. Projedeki özellik sayısı (yani karmaşıklığı) arttıkça, yeni işlevselliğin eski işlevselliği bozmadığından emin olmak için daha fazla zaman harcamak zorunda kalırız. Dolayısıyla, proje daha karmaşık hale geldikçe, otomasyona olan ihtiyaç artar. regresyon testleri.
  3. Her seferinde bir hatayı üretime geçirdiğimizde ve kullanıcı bunu bulduğunda, projede 1. maddeden (bu durumda kullanıcı gereksinimleri ile) başlayarak yaşam döngüsünde ek zaman harcamamız gerekiyor. Çünkü hatayı atlama nedenleri genel olarak bilinmediğinden, tek bir optimizasyon yolu kalıyor: kullanıcılar tarafından bulunan her hata regresyon testine dahil edilmelidir ki, bir daha ortaya çıkmayacağından emin olalım.

Mənbə: habr.com

DDoS qoruması olan saytlara etibarlı hosting satın alın, VPS VDS serverlər 🔥 DDoS qoruması olan saytlara etibarlı hosting satın alın, VPS VDS serverlər | ProHoster