Cütlü test: müxtəlif test birləşmələrinin optimal əhatə dairəsinə nail olmaq

İnsan həmişə özünü əhatə etməyə çalışır keyfiyyətli şeylər. Gözəl və praktik paltar geyinin, təbii məhsullar yeyin, maşın sürün etibarlı maşın- Bu hamı üçün təbii istək deyilmi? IN bu siyahı və təhlükəsiz şəkildə daxil edə bilərik.

"keyfiyyət" nədir? proqram məhsulu"? Bu, nəzərdə tutulan vəzifələri yerinə yetirən və istifadəçi gözləntilərini təmin edən bir məhsuldur. Bu nəticəyə nail olmaq üçün hər hansı proqram əvvəlcə sınaqdan keçir və yalnız bundan sonra son istifadəçinin əlinə keçir. Test vaxt çərçivələri (hər hansı bir proses kimi) sonsuzluğa yaxınlaşmağa meylli olduğundan, prosesin səlahiyyətli dizaynına ehtiyacımız var. Və burada test dizaynı olmadan edə bilməzsiniz.

Test dizayneri - bu hansı heyvandır və onu nə ilə yeyirsiniz?

Test dizaynı– bu, əvvəllər müəyyən edilmiş keyfiyyət meyarlarına və sınaq məqsədlərinə uyğun olaraq test işlərinin (test işlərinin) tərtib olunduğu və yaradıldığı proqram təminatının sınaq prosesinin mərhələsidir. Müvafiq olaraq, test dizayneri məsuliyyətlərinə optimallığı təmin edən bir sıra test işlərinin yaradılmasını daxil edən bir işçidir. test əhatəsi tətbiqlər.

6. Domain Analiz Testi.
Bu texnika dəyişənin (və ya dəyişənlərin) mümkün dəyərlərinin diapazonunun alt diapazonlara (və ya domenlərə) bölünməsinə, sonra sınaq üçün hər bir domendən bir və ya daha çox dəyərin seçilməsinə əsaslanır. Bir çox cəhətdən domen testi ekvivalentlik siniflərinə bölmək və sərhəd dəyərlərini təhlil etmək haqqında bildiyimiz üsullarla üst-üstə düşür. Lakin domen testi sadalanan üsullarla məhdudlaşmır. Buraya həm dəyişənlər arasında asılılıqların təhlili, həm də yüksək risk daşıyan dəyişənlərin dəyərlərinin axtarışı daxildir (yalnız sərhədlərdə deyil).

7. Keys Testindən istifadə edin.
İstifadə nümunəsi iki və ya daha çox iştirakçı (adətən istifadəçi və sistem) arasında qarşılıqlı əlaqə ssenarisini təsvir edir. İstifadəçi ya şəxs, ya da başqa bir sistem ola bilər. Test edənlər üçün İstifadə Nümunələri test ssenariləri (sınaq nümunələri) yaratmaq üçün əla əsasdır, çünki onlar hər bir istifadəçi hərəkətinin yerinə yetirilməli olduğu konteksti təsvir edir. İstifadə halları, standart olaraq, sınaqdan keçirilə bilən tələblərdir, çünki onlar həmişə əldə edilməli olan məqsədi və buna nail olmaq üçün təkrar istehsal edilməli olan addımları göstərir.

Düşünməyə nə var, silkələmək lazımdır!

Məşhur tərifdə deyildiyi kimi, proqramlaşdırma yazmaq deyil, düşünməkdir . Müəllif tam əmindir ki, eyni şeyi sınaq haqqında da demək olar. Bəs niyə test dizaynerlərinə ehtiyacımız var? Bir ton əlavə sınaqdan istifadə edə bildiyiniz halda niyə təhlil və dizayna vaxt itirirsiniz?

Yuxarıdakı nümunələrdən aydın olur ki, dizayndan istifadə testlərin sayını əhəmiyyətli dərəcədə azaltmağa, həmçinin funksionallığın ən həssas və vacib sahələrinə diqqət yetirməyə imkan verir. Əbəs yerə deyil ki, indi bir çox şirkətlər nəinki ayrı-ayrı "test dizayneri" və ya "test analitiki" vəzifələrini təqdim edirlər, həm də onları xüsusi vəzifələrdə öyrədirlər.

Həqiqətən: onlayn mağazada mallar üçün ödəniş mexanizmi düzgün işləmirsə, məsələn, icazə formasının tam sınaq əhatə dairəsinin nə mənası var? Axı, tester 100 testlə 100 dəyəri yoxlayarkən, test dizayneri 10 testdə 1000 dəyəri necə yoxlamaq lazım olduğunu anlayacaq! Beləliklə, test dizaynına sərf olunan səylər testin keyfiyyətinə görə daha çox nəticə verəcəkdir.

Baxmayaraq ki, “cütlük” sözü artıq əvvəlki kimi məşhur olmasa da, bu test dizayn texnikasının nə olduğu sualı hələ də müsahibələrdə verilir. Bununla belə, bütün testçilər (həm müsahibəyə gələnlər, həm də onu aparanlar) suala aydın şəkildə cavab verə bilmirlər. Nə üçünümumiyyətlə kombinator üsullarına və xüsusən də cütlərə ehtiyacımız var (səhvlərin böyük əksəriyyəti atom parametr dəyərlərindədir və başqalarından asılı deyil). Bu sualın sadə cavabı, məncə, parametrlər arasında açıq və gizli asılılıqlar nəticəsində yaranan səhvləri tapmaqdır. üçün sadə hallar texnikaların əhəmiyyətli faydası olma ehtimalı azdır, çünki onlar əl ilə yoxlanıla bilər çox sayda parametrlər və onlar arasında mürəkkəb asılılıqlar varsa, testlərin sayı çox güman ki, əllə sınaq üçün çox böyük olacaq. Buna görə də, kombinator üsullarının (və müvafiq olaraq, parametrlərin birləşməsini yaradan alətlərin) əsas tətbiqi müəyyən qanunlara uyğun olaraq test məlumat dəstlərinin avtomatlaşdırılmış tərtibidir.

Kombinator testləri yaratmaq üçün əksər alətlər nəticəni müvafiq avtotestlərə giriş kimi ötürülə bilən məlumat faylı şəklində verə bilər. Belə bir nümunə (PICT alətindən istifadə etməklə) aşağıda müzakirə olunacaq.

Nümunə 1. Seriya və pasport nömrəsi

İstifadəyə tabedir avtomatlaşdırılmış sınaq seriya və pasport nömrəsi üçün hərtərəfli müsbət testlər dəsti yarada bilərsiniz, çünki bu sahə üçün tələblər ciddidir - tam olaraq iki böyük hərflər Ukrayna əlifbası (Ґ, Ї, b istisna olmaqla) və 0-dan 9-a qədər altı rəqəm. Ümumilikdə (33-3) 2 *10 6 = 9*10 8 belə test olacaq. Bununla belə, nadir hallarda sahə tələblərinin bu qədər sərt olduğu hallar olur və hərtərəfli testin lazım olacağı ehtimalı azdır. Çox güman ki, hər bir mövqedə hər bir fərdi hərfin və hər bir fərdi nömrənin daxil olma imkanını yoxlamaq kifayətdir. Bu cür testlərin tərtib edilməsi vəzifəsi kombinator test aləti ilə asanlıqla həll edilə bilər:
SERIYA_1: A, B, C, D, E, E, E, F, Z, I, J, K, L, M, N, O, P, R, S, T, U, F, X, C, CH, W, SH, Y, I SERIYA_2: A, B, C, D, E, E, E, F, Z, I, J, K, L, M, N, O, P, R, S, T ,U,F,X,C,H,W,SH,Y,Y NUMBER_1: 0,1,2,3,4,5,6,7,8,9 NUMBER_2: 0,1,2,3,4 ,5,6,7,8,9 NUMBER_3: 0,1,2,3,4,5,6,7,8,9 NUMBER_4: 0,1,2,3,4,5,6,7,8 ,9 NUMBER_5: 0,1,2,3,4,5,6,7,8,9 NUMBER_6: 0,1,2,3,4,5,6,7,8,9 (SERIES_1, SERIES_2, NUMBER_1 , NUMBER_2, NUMBER_3, NUMBER_4, NUMBER_5, NUMBER_6) @ 1 Model 1
Ш 4 6 3 1 1 5 И Є 8 3 8 9 9 3 А Н 3 0 5 8 6 2 М С 4 3 4 1 3 1 И И 4 6 7 3 1 4 ГЦ 0 2 4 5 2 0

Mənfi testlər eyni şəkildə yaradıla bilər (PICT onları qeyd etməyə imkan verir xüsusi xarakter "~").
SERIYA_1: A, B, C, D, E, E, E, F, Z, I, J, K, L, M, N, O, P, R, S, T, U, F, X, C, CH, W, SH, Y, I SERIYA_2: A, B, C, D, E, E, E, F, Z, I, J, K, L, M, N, O, P, R, S, T ,U,F,X,C,H,Ş,Ş,Y,Y NÖMRƏSİ_1: 0,1,2,3,4,5,6,7,8,9,~A,~B,~C,~ D,~E,~F SAYI_2: 0,1,2,3,4,5,6,7,8,9,~A,~B,~C,~D,~E,~F SAYI_3: 0, 1,2,3,4,5,6,7,8,9,~A,~B,~C,~D,~E,~F SAYI_4: 0,1,2,3,4,5,6 ,7,8,9,~A,~B,~C,~D,~E,~F NUMARA_5: 0,1,2,3,4,5,6,7,8,9,~A,~ B,~C,~D,~E,~F SAYI_6: 0,1,2,3,4,5,6,7,8,9,~A,~B,~C,~D,~E, ~F Model 2
ZU 1 3 7 2 7 4 L Y ~B 7 3 2 7 9 A Є 8 8 2 0 ~A 8 Simulyasiya nəticələrinin bir hissəsi

Nümunə 2: Əlavə parametrdən istifadə edərək test əhatəsinin artırılması

Bəzən doğrulamalarla əlaqəli səhvlər istifadəçinin etibarsız məlumatları necə daxil etməsindən asılıdır: klaviaturadan (fiziki və ya ekranda), kontekst menyusu kopyala-yapışdır, isti düymələr, seçilmiş mətni sürükləmək. Məsələn, yanlış məlumat bu şəkildə daxil edilərsə, tez-tez mətnin sürüklənməsi və atılması müştəri tərəfi yoxlama ilə işlənmir. Giriş metodu modelə kimi daxil edilə bilər əlavə parametr və avtotestlər tərtib edərkən bunu nəzərə alın.
SERIYA_1: A, B, C, D, E, E, E, F, Z, I, J, K, L, M, N, O, P, R, S, T, U, F, X, C, CH, W, SH, Y, I SERIYA_2: A, B, C, D, E, E, E, F, Z, I, J, K, L, M, N, O, P, R, S, T ,U,F,X,C,H,W,SH,Y,Y NUMBER_1: 0,1,2,3,4,5,6,7,8,9 NUMBER_2: 0,1,2,3,4 ,5,6,7,8,9 NUMBER_3: 0,1,2,3,4,5,6,7,8,9 NUMBER_4: 0,1,2,3,4,5,6,7,8 ,9 NUMBER_5: 0,1,2,3,4,5,6,7,8,9 NUMBER_6: 0,1,2,3,4,5,6,7,8,9 INPUT: klaviatura, ekran düymələri , kontekst menyusu, surəti yapışdırın, sürüklə və burax Model 3
M L 0 8 0 8 5 9 klaviatura Y U 0 0 2 3 2 2 sürüklə və burax S Ch 5 3 6 2 1 0 ekran düymələri Y D 3 9 4 1 6 7 kontekst menyusu U Ş 9 9 0 7 4 4 kopyala yapışdır Simulyasiya nəticələrinin bir hissəsi

Nümunə 3. Qərar vermə sistemləri üçün testlər, tələblərin təsdiqi

Qərar vermə sistemləri üçün bəzən hərtərəfli test nümunələri tərtib edilir ki, bu da daha sonra yalnız sınaq üçün deyil, həm də tələblərin təsdiqi üçün istifadə edilə bilər. Sistemin qaydalarını hər bir testə ardıcıl olaraq tətbiq etməklə, uyğun olmayan nəticələrin əldə edilib-edilmədiyini görə bilərsiniz.

Tələblərin doğrulanması testin çox vacib hissəsidir bu halda, çünki gizli ziddiyyətlər aşkar edilə bilər. Kombinator test yaratmaq aləti sizə təkcə testlər yaratmağa deyil, həm də daxil edilmiş məlumatlara qoyulan şərtləri təyin etməyə imkan verəcəkdir. Bu şərtlər mümkün məlumatlardan hər hansı birini əlçatmaz edirsə, alət bunu göstərəcək və bu, ardıcıllıq tələblərini diqqətlə yoxlamaq üçün siqnal kimi xidmət edə bilər.
YAŞ: 0-17, 18-21, 22-65, >=66 UŞAQLAR: Y, N SİQARET: Y, N İŞ: 0-5, 6-10, >=11 (YAŞ, UŞAQLAR, SİQARET, İŞ) @ 4 ƏGƏR = "0-17" SONRA<>">=11"; ƏGƏR =">=11" ONA = "0-17"; Model 4
Məhdudiyyətlər Xəbərdarlığı: Məhdudiyyətli məhdudiyyətlər. Çıxış aşağıdakı dəyərləri ehtiva etməyəcək WORK: >=11 Ziddiyyətli tələblərə alət cavabı

Bu modeldə WORK dəyərini kəsən ziddiyyətli tələblər var: >=11 və o, heç bir sınaqda görünmür. Təəssüf ki, alət hansı şərtlərin ziddiyyətə səbəb olduğu sualına cavab vermir, yalnız hansı dəyərin testlərdən çıxarıldığını göstərir. Bununla belə, bu məlumat bütün məhdudiyyətlər sırasından bu parametrə təsir edənləri müəyyən etmək və uyğunsuzluq üçün təhlil etmək üçün kifayət ola bilər.

Daha sonra səbəb-nəticə testinin dizayn texnikası üçün hərtərəfli testlər dəsti istifadə edilə bilər.

Nümunə 4. Konfiqurasiya testi üçün mühit parametrlərinin formalaşması

Kombinator test alətləri, həmçinin mümkün konfiqurasiyaların siyahısını yaratmağa imkan verir, sonra istifadənin populyarlığına görə sıralana bilər, uyğun olmayanları aradan qaldırır və s. Hər bir konfiqurasiya üçün bütün testləri yerinə yetirməyə ehtiyac yoxdursa, test məlumatlarının yaradılması üçün mühiti başqa bir parametr kimi əlavə etməklə onları seçilmiş mühitlər arasında bərabər bölə bilərsiniz (məlumatların daxil edilməsi metodu nümunəsində edildiyi kimi).
BROWSER: IE, Firefox, Chrome, Opera LANG: en, ru, ua ƏS: win, linux, android (BROWSER, LANG, ƏS) @ 1 ƏGƏR = "linux" SONRA<>"IE"; Model 5
IE Firefox və Opera və Linux Chrome ru android qazandı Simulyasiya nəticələri

SERIYA_1: A, B, C, D, E, E, E, F, Z, I, J, K, L, M, N, O, P, R, S, T, U, F, X, C, CH, W, SH, Y, I SERIYA_2: A, B, C, D, E, E, E, F, Z, I, J, K, L, M, N, O, P, R, S, T ,U,F,X,C,H,W,SH,Y,Y NUMBER_1: 0,1,2,3,4,5,6,7,8,9 NUMBER_2: 0,1,2,3,4 ,5,6,7,8,9 NUMBER_3: 0,1,2,3,4,5,6,7,8,9 NUMBER_4: 0,1,2,3,4,5,6,7,8 ,9 NUMBER_5: 0,1,2,3,4,5,6,7,8,9 NUMBER_6: 0,1,2,3,4,5,6,7,8,9 MÜHİT: IE ua qalib, Firefox və win, Opera və Linux, Chrome ru android Model 6

Nümunə 5. Çoxlu sayda məhdudiyyətləri nəzərə alaraq bir neçə testin tərtib edilməsi

Əlbəttə ki, kombinator testi əl ilə həyata keçirilən testləri yaratmaq üçün də istifadə edilə bilər, lakin mənə elə gəlir ki, bu, yalnız çox sayda testlər olduqda edilməlidir. çox sayda yadda saxlamaq çətin olan məhdudiyyətlər. Şərtlərin mövcudluğuna görə, testlərin sayı məhdudlaşdırıla bilər, təbii ki, belə desək, alət onlara qoyulan bütün şərtlərə uyğun gələn bütün mümkün test məlumatlarını əldə etməyə imkan verəcəkdir. Bununla belə, testlər əl ilə də həyata keçirilə bilər.
YAŞ: 0-17, 18-21, 22-65, >=66 UŞAQLAR: 0, 1, 2, 3, 4, 5 SİQARET: Y, N İŞ: 0-5, 6-10, >=11 ƏGƏR = "0-17" SONRA<>">=11"; ƏGƏR = "0-17" ONA = 0; ƏGƏR = "18-21" SONRA< 2; IF >0 SONRA = "N"; ƏGƏR = ">=66" SONRA<>"0-5"; ƏGƏR = "0-17" OR = "18-21" SONRA = "0-5"; Model 6
22-65 2 N 0-5 18-21 1 N 0-5 >=66 2 N 6-10 22-65 4 N 6-10 22-65 5 N 6-10 22-65 3 N 6-10 >= 66 4 N >=11 22-65 5 N >=11 0-17 0 Y 0-5 >=66 3 N >=11 22-65 4 N 0-5 22-65 2 N >=11 18-21 0 Y 0-5 22-65 0 Y >=11 22-65 1 N 6-10 22-65 3 N 0-5 >=66 1 N >=11 0-17 0 N 0-5 >=66 0 Y 6 -10 >=66 5 N >=11 22-65 5 N 0-5 Simulyasiya nəticələri - 21 test

Cütlü sınaq-dən test məlumat dəstləri yaratmaq üçün bir texnikadır tam komplekt test işlərinin sayını əhəmiyyətli dərəcədə azaltmağa imkan verən sistemə məlumatların daxil edilməsi.

Cütlü testin mahiyyəti aşağıdakı kimi tərtib edilə bilər: sınaqdan keçirilmiş hər bir parametrin hər bir sınaqdan keçmiş dəyərinin ən azı bir dəfə bütün digər sınaqdan keçirilmiş parametrlərin hər bir sınaqdan keçirilmiş dəyəri ilə birləşdirildiyi məlumat dəstlərinin formalaşması.

Pairwise Testin əsas məqsədləri:

  • lazımsız çekləri çıxarın;
  • yaxşı sınaq əhatəsini təmin etmək;
  • müəyyən etmək ən böyük rəqəm minimum testlər dəstində səhvlər.

Nümunələrdən istifadə edərək cütlü testin mahiyyətinə daha yaxından nəzər salaq.

Misal 1

Təsəvvür edək ki, Bəli və ya Xeyr dəyərlərini qəbul edən A, B və C parametrlərimiz var. Maksimum miqdar Bu parametrlərin qiymətlərinin kombinasiyası 8-dir. Lakin ikili testdən istifadə edərkən dörd kombinasiya kifayətdir, çünki hamısı nəzərə alınır. mümkün cütlər parametrlər (A və B cütü, B və C cütü, A və C cütü):

Misal 2

Deyək ki, bir şəxs üçün hansısa dəyər (məsələn, vergi) onun cinsinə, yaşına və uşaqlarının olmasına görə hesablanır - biz üç alırıq. giriş parametri, hər biri üçün testlər üçün mümkün dəyərlərdən birini seçirik. Məsələn: cins – kişi və ya qadın; yaş - 25-ə qədər, 25-dən 60-a qədər, 60-dan yuxarı; uşaqların olması - bəli və ya yox. Hesablamaların düzgünlüyünü yoxlamaq üçün, əlbəttə ki, bütün parametrlərin dəyərlərinin bütün birləşmələrindən keçə bilərsiniz:

Mərtəbə Yaş Uşaqlar
1 adam25-ə qədəruşaqlar yoxdur
2 qadın25-ə qədəruşaqlar yoxdur
3 adam25-60 uşaqlar yoxdur
4 qadın25-60 uşaqlar yoxdur
5 adam60-dan yuxarıuşaqlar yoxdur
6 qadın60-dan yuxarıuşaqlar yoxdur
7 adam25-ə qədəruşaqlar var
8 qadın25-ə qədəruşaqlar var
9 adam25-60 uşaqlar var
10 qadın25-60 uşaqlar var
11 adam60-dan yuxarıuşaqlar var
12 qadın60-dan yuxarıuşaqlar var

Və ya bütün parametr dəyərlərinin birləşmələrini hamısı ilə yoxlamağa ehtiyac olmadığına qərar verə bilərsiniz, ancaq yalnız bütün unikal parametr cütlərinin yoxlanıldığından əmin olun. Məsələn, gender və yaş parametrləri nöqteyi-nəzərindən elə etməliyik ki, 25 yaşdan aşağı kişi, 25-60 yaş arası kişi, 60 yaşdan sonra kişi, eləcə də 25 yaşdan aşağı qadın, qadın yoxlanılır. 25 ilə 60 arasında, həmçinin 60-dan sonra qadın. Bütün digər parametr cütləri üçün də eyni şəkildə. Beləliklə, biz daha az dəyər dəstini əldə edə bilərik (onların bəziləri iki dəfə olsa da, bütün cüt dəyərləri ehtiva edir):

Mərtəbə Yaş Uşaqlar
1 adam25-ə qədəruşaqlar yoxdur
2 qadın25-ə qədəruşaqlar var
3 adam25-60 uşaqlar var
4 qadın25-60 uşaqlar yoxdur
5 adam60-dan yuxarıuşaqlar yoxdur
6 qadın60-dan yuxarıuşaqlar var

Misal 3

İki var Opera brauzeri və Firefox. İki əməliyyat otağı var Windows sistemləri və Linux. Burada azaltmaq üçün heç bir şey yoxdur, çünki onlar 4 konfiqurasiyada birləşdirilə bilər:

Brauzer ƏS
1 OperaWindows
2 FirefoxLinux
3 OperaLinux
4 FirefoxWindows

Deyək ki, sayt iki dildədir: Rus (RU) və İngilis (EN). Tam təcrübə üçün həmin 4 konfiqurasiyanı 2-yə vuraq, yəni. hər iki dildə əvvəlki konfiqurasiyaları yoxlayın. Bəs niyə? Bunun əvəzinə ikili yanaşmadan istifadə edəcəyik və 8 konfiqurasiya əvəzinə yenidən 4 alacağıq:

Brauzer ƏS Dil
1 OperaWindowsRU
2 FirefoxLinuxRU
3 OperaLinuxEN
4 FirefoxWindowsEN

Bundan əlavə, sayt MySQL, Oracle və MSSQL-dən verilənlər bazası kimi istifadə edə bilər. Sadəcə ikili testdən istifadə edərək 7 konfiqurasiya əldə edirik (və 12 deyil - əvvəlki 4x3 və xüsusilə 24 = 2x2x2x3 deyil). Ancaq burada yenə də hər bir verilənlər bazasını digər parametrlərlə birlikdə yoxlamağın vacib olub-olmadığı barədə düşünməyə dəyər. Aydındır ki, yox. Məsələn, hər bir verilənlər bazasının hər bir dillə necə işlədiyinə baxmaq vacibdir. Beləliklə, məhdudiyyətlər tətbiq etməklə 7 əvəzinə 6 konfiqurasiya əldə edirik (3 əsas x 2 dil):

Brauzer ƏS Dil Verilənlər bazası
1 OperaWindowsRUMySQL
2 FirefoxLinuxENMySQL
3 OperaLinuxENMSSQL
4 FirefoxWindowsRUMSSQL
5 OperaLinuxRUOracle
6 FirefoxWindowsENOracle

Misal 4
Cütlü testin əsas prinsipi odur ki, əksər hallarda tam faktorial sınaq keçirməyə ehtiyac yoxdur (yəni, bütün parametrlərin bütün dəyərlərinin bir-birinə cavab verdiyi bütün konfiqurasiyaları təkrarlamaq). Və bu, çox vaxt resurs çatışmazlığı səbəbindən mümkün deyil. Buna görə də elan edilir ki, hər bir parametrin hər bir dəyəri bir-birinin parametrinin başqa bir dəyərinə ən azı bir dəfə cavab verdikdə proqram təminatının necə işlədiyini yoxlamaq kifayətdir.
Deyək ki, mətn prosessorunda Şrift pəncərəsi parametrləri üçün parametrlərin kombinasiyalarını sınamalısınız:

Tutaq ki, parametrlərin birləşməsi səbəbindən səhvlər mümkündür. Bütün dəyərləri əhatə etmək üçün neçə test lazımdır?
Sınaq üçün götürək aşağıdakı parametrlər və onların mənaları:

Parametr Dəyər 1 Dəyər 2 Dəyər 3 Dəyər 4
Şrift TTArial
Stil DaimikursivQalınQalın kursiv
Ölçü minnormalmaks
Rəng qaraqırmızı
Altı xətt üslubu heç biriyalnız sözlərbaşqa
üstü üstü haqqındaoff
İkiqat cızıq haqqındaoff
Üst yazı haqqındaoff
Subscript haqqındaoff
Kölgə haqqındaoff
Kontur haqqındaoff
Qabartma haqqındaoff
Oymaq haqqındaoff
Kiçik qapaqlar haqqındaoff
Bütün başlıqlar haqqındaoff
Gizli haqqındaoff

2 * 4 * 3 * 3 * 3 * 2^11 = 442 368.


Beləliklə, "Bütün cütlər" üsulu çeklərin sayını əhəmiyyətli dərəcədə azaltmağa imkan verir.

2. Alətlər

Tərtib tələb olunan birləşmələr data çox vaxt ən asan iş deyil, amma xoşbəxtlikdən onu həll etmək üçün bir çox vasitə var. müxtəlif səviyyələrdə keyfiyyət.

IN bu material alət hesab olunacaq PICT (Cütlü Müstəqil Kombinator Testi– Microsoft-dan ikili test aləti).

PICT, hərtərəfli kombinator parametrləri əhatə etmək üçün bütün test hallarını təmsil edən kompakt test parametrləri dəstini yaratmağa imkan verir.

Proqramla işləməyi nəzərdən keçirək. Komanda xəttindən PICT-i işə salın.


Proqram sadə bir giriş kimi qəbul edir mətn faylı model adlanan parametrlər və onların dəyərləri ilə və yaradılan test ssenariləri ilə.

Yuxarıda verilmiş 2-ci misaldan istifadə edərək proqramın işini nəzərdən keçirək. Bizdə aşağıdakı parametrlər və onların dəyərləri var: gender – kişi və ya qadın; yaş - 25-ə qədər, 25-dən 60-a qədər, 60-dan yuxarı; uşaqların olması - bəli və ya yox. Bütün mümkün dəyərləri nəzərdən keçirsək, onda ssenarilərin sayı 12 olacaq. Gəlin bir model yaradaq və proqramın hansı nəticə verdiyini görək.

Model:


Modeli PICT-də istifadə edirik və 6 sınaq ssenarisi alırıq (12 əvəzinə):


Fərq o qədər də nəzərə çarpan deyil, lakin parametrlərin sayı və ya onların dəyərləri artdıqca getdikcə nəzərə çarpacaq.

Təsəvvür edək ki, sabit diskdə arakəsmələrin yaradılmasını sınamağa aid olan aşağıdakı test parametrlərimiz var (nümunə PICT təlimatından götürülüb):


7 * 7 * 2 * 3 * 8 * 2 = 4704

Onları ağlabatan müddətdə sınamaq çox çətin olacaq. Tədqiqatlar göstərir ki, mümkün dəyərlərin bütün cütlərinin sınaqdan keçirilməsi çox yaxşı əhatə dairəsi təmin edir və sınaq hallarının sayı məqbul diapazonda qalır. Məsələn, (İlkin, FAT) bir cüt və (10, yavaş) başqadır; bir test işi bir çox cütü əhatə edə bilər. Yuxarıdakı parametrlər dəsti üçün PICT cəmi 60 test işi yaradacaq:

Həmçinin, konsolda adi çıxış əvəzinə, birbaşa çıxışdan istifadə edə və MS Excel-də test hadisələrini saxlaya bilərsiniz:


Nəticədə yaradılacaq Excel faylı aşağıdakı məzmunla:

Lakin ən maraqlısı PICT-in belə ssenari yaratmaq imkanlarıdır. Onların hamısı istifadəçi təlimatında diqqətlə müzakirə olunur. Onlardan bəzilərini təqdim edirik:

  1. Dəyərlərin qruplaşdırıldığı sıranı təyin edə bilərsiniz. Varsayılan 2-ci sifarişdir və dəyər cütlərinin birləşmələrini yaradır (bu, ikili testi təşkil edir). Lakin siz 3-cü misal göstərə bilərsiniz və sonra cütlər deyil, üçlülər istifadə olunacaq. Sadə bir model üçün maksimum sifariş hamısının dəstini yaradan parametrlərin sayına bərabərdir mümkün variantlar.
  2. Parametrləri alt modellərə qruplaşdıra və onlara birləşmələr üçün ayrıca sifariş verə bilərsiniz. Müəyyən parametrlərin birləşmələrinin daha hərtərəfli sınaqdan keçirilməsi və ya digər parametrlərdən ayrı birləşdirilməsi lazım olduqda bu lazımdır.
  3. Siz şərtlər və məhdudiyyətlər yarada bilərsiniz. Məsələn, parametrlərdən birinin yalnız bir neçə digər parametrlər istədiyiniz dəyəri aldıqda müəyyən bir dəyər alacağını təyin edə bilərsiniz. Bu, lazımsız çeklərin yaradılmasını kəsməyə imkan verir.
  4. Mənfi test halları üçün birləşmələr yaratarkən etibarsız parametr dəyərlərini göstərə bilərsiniz.
  5. Ağırlıq əmsallarından istifadə edərək, proqrama kombinasiyalar yaradan zaman müəyyən dəyərlərə üstünlük verməsini söyləyə bilərsiniz.
  6. Minimum test işlərinin sayını əldə etmək üçün minimuma endirmə seçimindən istifadə edə bilərsiniz (hər dəfə azaldılmış sınaq sayından istifadə etməklə proqramı bir neçə dəfə işə salın).

Sonda demək istərdim ki, PICT kifayətdir lazımlı alətüçün sürətli yaradılması test məlumatlarının birləşmələri toplusu, xüsusən də bir-biri ilə güclü əlaqəsi olmayan çoxlu sayda parametrlər olduqda (bu, bütün mümkün variantları sınaqdan keçirməməyə imkan verir). Ancaq diqqətlə yaratmaq lazımdır tələb olunan model testin əhatə dairəsi qənaətbəxş olsun.

3. Pairwise testi harada və nə vaxt istifadə olunur?

Metod yalnız inkişafın gec mərhələlərində təsirli olur və ya əsas funksional testlərlə tamamlanır. Məsələn, əgər siz konfiqurasiya testini həyata keçirirsinizsə, o zaman ikili testdən istifadə etməzdən əvvəl əsas ssenarinin bütün proqramlarda işlədiyinə əmin olmalısınız. əməliyyat sistemləri ah standart parametrlərlə (həyata keçirin Duman testi (Duman testi) və ya Təsdiqləmə Testi (Quraşdırmanın sınaqdan keçirilməsi)). Bu, gələcək səhvlərin lokallaşdırılmasını xeyli asanlaşdıracaq, çünki ikili sınaq zamanı bir test standart olmayan dəyərlərə malik çoxlu parametrləri ehtiva edir, onların hər biri uğursuzluğa səbəb ola bilər və bu halda onun lokallaşdırılması çox çətindir. Quraşdırma sınağı uğursuz olarsa, qoşalaşmış test metodundan istifadə etməyi dayandırmalısınız, çünki bir çox test uğursuz olacaq və hətta bir test istisna olmaqla, adətən bir neçə cütün itirilməsinə səbəb olur və metoddan istifadənin mənası itir.

Buna görə də, metod yalnız stabil funksionallıqda, mövcud testlər artıq effektivliyini itirdikdə istifadə edilməlidir.

Beləliklə, Pairwise Testing test işlərinin hazırlanmasını optimallaşdırmaq üçün xüsusi üsuldur.

Pairwise Testing texnikasının mahiyyəti bütün dəyərlərin bütün birləşmələrini yoxlamaq deyil, bütün dəyərlər cütlərini sınaqdan keçirməkdir.

Çox keçməmiş (yaşa və öyrən) mən “cütlü test” anlayışı ilə rastlaşdım (birbaşa “cütlü test” kimi tərcümə edəcəyəm, amma ingiliscə termindən istifadə etməyi üstün tuturam) maraqlandım və anlamaq qərarına gəldim. bu nədir. Bu uh… texnikanın necə işlədiyini tez başa düşdükdən sonra dərhal onun istifadəsinin səbəbləri və mənası ilə bağlı suallarım oldu və ötən gün nəhayət onlara cavab tapmağa başladım. Bütün bunlar haqqında yazmaq qərarına gəldim (uzundu, amma daha qısa olmadı:().


Dərhal deyim ki, mən bu mövzu ilə bağlı məlumatların əksəriyyətini Patrick Schroeder ilə birlikdə Michael Bolton və James Baxın məqalələrindən topladım və kəşfiyyat testi mövzusunda mənim üçün əhəmiyyətli insanlar. Digər tərəfdən, bu müəlliflər üçün tipik bir şəkildə (mənə elə gəlir ki,) məqalələr qeyd-şərtsiz tərifləmir, ayıq şəkildə qiymətləndirməyə çalışır. bu texnika, skeptik mən və suallarım üçün tam olaraq lazım olan şey idi.

1. Bu nədir?

Cütlü testlər haqqında yazmağa başladığım üçün, yəqin ki, bu texnikanın mahiyyətinin nə olduğunu izah etməyə çalışmalıyam. Bunu aydın və düzgün izah edə biləcəyimə əmin deyiləm, amma yenə də çalışacağam :)

Beləliklə, cüt test test məlumat dəstlərini yaratmaq üçün bir texnikadır. Mahiyyəti, məsələn, belə formalaşdırmaq olar: sınaqdan keçirilmiş hər bir parametrin hər bir sınaqdan keçmiş dəyərinin ən azı bir dəfə bütün digər sınaqdan keçirilmiş parametrlərin hər bir sınaqdan keçirilmiş dəyəri ilə birləşdirildiyi məlumat dəstlərinin formalaşması. Çox aydın görünmür (və bunun doğru olduğu fakt deyil), buna görə də bir nümunə ilə izah etməyə cəhd edə bilərsiniz :)

Deyək ki, bir şəxs üçün bəzi dəyər (vergi) onun cinsinə, yaşına və uşaqların varlığına görə hesablanır - biz üç giriş parametri alırıq, hər biri üçün testlər üçün müəyyən bir şəkildə dəyərlər seçirik. Məsələn: cins - kişi və ya qadın; yaş - 25-ə qədər, 25-dən 60-a qədər, 60-dan yuxarı; uşaq sahibi olmaq - bəli və ya yox. Hesablamaların düzgünlüyünü yoxlamaq üçün, əlbəttə ki, bütün parametrlərin dəyərlərinin bütün birləşmələrindən keçə bilərsiniz:

mərtəbə yaş uşaqlar
1 adam 25-ə qədər uşaqlar yoxdur
2 qadın 25-ə qədər uşaqlar yoxdur
3 adam 25-60 uşaqlar yoxdur
4 qadın 25-60 uşaqlar yoxdur
5 adam 60-dan yuxarı uşaqlar yoxdur
6 qadın 60-dan yuxarı uşaqlar yoxdur
7 adam 25-ə qədər uşaqlar var
8 qadın 25-ə qədər uşaqlar var
9 adam 25-60 uşaqlar var
10 qadın 25-60 uşaqlar var
11 adam 60-dan yuxarı uşaqlar var
12 qadın 60-dan yuxarı uşaqlar var

Və ya qərar verə bilərsiniz ki, biz bütün parametr dəyərlərinin hamısı ilə birləşməsini istəmirik, sadəcə olaraq bütün unikal parametr cütlərini yoxladığımızdan əmin olmaq istəyirik. Yəni, məsələn, cins və yaş parametrləri baxımından biz əmin olmaq istəyirik ki, biz 25 yaşdan aşağı kişini, 25-60 yaş arası kişini, 60 yaşdan sonra kişini, eləcə də 25 yaşdan aşağı qadını, qadını dəqiq yoxlayırıq. 25 ilə 60 arasında və s. 60-dan sonra qadın. Və bütün digər cütlər üçün eynidir. Və bu yolla biz daha kiçik dəyər dəstləri əldə edə bilərik (onlarda iki dəfə olsa da, bütün dəyər cütləri var):

mərtəbə yaş uşaqlar
1 adam 25-ə qədər uşaqlar yoxdur
2 qadın 25-ə qədər uşaqlar var
3 adam 25-60 uşaqlar var
4 qadın 25-60 uşaqlar yoxdur
5 adam 60-dan yuxarı uşaqlar yoxdur
6 qadın 60-dan yuxarı uşaqlar var

Bu yanaşma təqribən ikili sınaq texnikasının mahiyyətini təşkil edir - biz bütün dəyərlərin bütün birləşmələrini yoxlayırıq, lakin biz bütün dəyərlər cütlərini sınaqdan keçiririk.

2. Bunun nəyi yaxşıdır?

Cütlü test haqqında danışarkən, bu, çox vaxt bütün mümkün dəyərlər kombinasiyalarının axtarışı ilə müqayisə edilir və cütlü testin əsas üstünlüklərindən biri ondan ibarətdir ki, ondan istifadə etməklə daha az sayda test əldə edilir. test dəstləri bir çox hallarda sadəcə mümkün olmayan tam axtarışdan daha çox məlumat.

Yəqin ki, yuxarıdakı nümunəyə əsasən, bu texnika ilə bütün dəyərləri sadalamaq arasındakı fərqin o qədər də böyük olmadığı görünə bilər. Ancaq bu, yalnız belə kiçik sayda parametrlər və onların dəyərləri ilə olur və nə qədər çox olsa, fərq bir o qədər çox olur. Deyək ki, hər biri 2 dəyər ala bilən 50 parametr varsa, tam axtarış üçün 50-nin gücünə 2-yə bərabər bir sıra birləşmələr tələb olunacaq, yəni. 1 125 899 906 842 624 :) Və ikili testdən istifadə edərkən, yalnız on dörd kombinasiya ilə əldə edə bilərsiniz!

Yeri gəlmişkən, məlumatların lazımi birləşmələrini tərtib etmək çox vaxt asan məsələ deyil, amma xoşbəxtlikdən, onu həll etmək üçün müxtəlif səviyyəli keyfiyyət və (pulsuz) bir çox vasitə var :)

3. Niyə cütlüklər

Şəxsən mən bu texnika ilə tanış olanda dərhal sual yarandı - niyə məhz cütlər? Niyə üçlü dəyərlər və ya bir növ "dördlük sınağı" olmasın? Bu yanaşmanın, məsələn, hər hansı riyazi əsaslandırması varmı, yoxsa sadəcə olaraq havadan çıxarılıb?

Mən aşağıdakı izahatı tapa bildim: bir zamanlar bəzi real məlumatlardan istifadə edən kimsə tərəfindən aparılan təhlilə əsasən belə qənaətə gəlindi ki, əksər səhvlərin səbəbi ya fərdi dəyərlər, ya da dəyər cütlərinin birləşməsidir. (mənbə). Bu mülahizə, yəqin ki, cüt testin inkişafı üçün əsas yaratdı.

Prinsipcə, əsaslandırma az-çox ağlabatandır, çünki müəyyən araşdırmalar aparılıb. Lakin bu izahatdan da aydın olur ki, bu qayda unikal olaraq doğru deyil və bütün hallar üçün doğru olmayacaq. Bundan əlavə, "ən çox səhv" anlayışı haqqında düşünməyə dəyər :)

4. Onu necə və nə vaxt tətbiq etmək (olmamaq).

Əlbəttə ki, bu texnika uyğun olduğu hallarda dəqiq istifadə edilməlidir.

İndi, məsələn, sadəcə olaraq verilənlər bazasında saxlanılan müəyyən sayda müxtəlif sahələrə malik bir formamız varsa, bu texnikanın istifadəsi praktiki olaraq heç bir məna kəsb etmir, çünki məlumatlar bir-biri ilə qarşılıqlı əlaqə yaratmır ( nüanslar ola bilsə də, Necə bu məlumat verilənlər bazasında saxlanılır)! Və cütlü test, xüsusi olaraq istifadə edilməli olan bir texnikadır qarşılıqlı əlaqədə dəyərlər (qarşılıqlı olmayanlar üçün - çox vaxt olduqca sadədir ayrı çek parametrlərin hər biri).

Qarşılıqlı təsir göstərən parametrlər dedikdə, mən ilk növbədə nəticəyə təkcə öz fərdi dəyərləri ilə deyil, həm də bir-biri ilə birləşmələri ilə təsir edənləri nəzərdə tuturam. Yeri gəlmişkən, burada yaxşı nümunə qarşılıqlı əlaqə - məsələn, çoxsaylı əməliyyat sistemlərindən, brauzerlərdən və monitor qətnamələrindən test mühiti seçimlərinin müəyyən edilməsi.

Beləliklə, əgər problemin parametrləri bir-birinə təsir edərsə, o zaman belə görünür ki, ikili test həm səylərə, həm də işlərə qənaət edəcək gözəl həll olacaqdır. tam sınaq təmin edəcək. Ancaq əlbəttə ki, bu texnika kifayət qədər yüksək əhatə dairəsi təmin edir, lakin tam deyil - üç, dörd və ya daha çox parametrləri birləşdirərkən birdən bir səhv baş verərsə, ikili test kömək etməyə bilər (bu, şansınızdan asılıdır). Yaxşı mənada, cüt testdən istifadə etməzdən əvvəl parametr cütlərinin xüsusi kombinasiyalarının sınaqdan keçirilməsinin onun üçün uyğun olub-olmadığını müəyyən etmək üçün sınaqdan keçirilən tətbiqin təhlili aparılmalıdır.

Hər halda, ikili testi hərtərəfli sınaq ilə müqayisə etməsəniz, aydındır ki, hətta bu texnikanın istifadəsi kifayət qədər əmək tələb edir. Və digər hallarda, ən çox istifadə edilən bir neçə dəsti sınamaq daha yaxşı ola bilər real istifadəçilərçox səy sərf etmək və həqiqətən populyar kombinasiyaları ehtiva etməyən çoxlu yaradılan dəstləri sınaqdan keçirmək əvəzinə məlumat.

5. Bəs mən nə demək istəyirdim?

Əlbəttə ki, mən yalnız bir neçə və ya üç ad çəkdim, lakin ikili test texnikasından istifadə etməyə qərar verərkən nəzərə alınmalı olan çox sayda mülahizələr var - ən azı yuxarıda qeyd olunan məqalələrə istinad etməyə dəyər (onlar ümumiyyətlə dəyərlidirlər) bu mövzuya marağınız varsa oxuyun). Cütlük testi isə sadəcə digər alətlər kimi ağıllı istifadə etməyi tələb edən bir vasitədir.