Тестілеудің негізгі мәселесі

Кіріспе

Қайырлы күн, Хабаровск тұрғындары. Дәл қазір мен финтех компаниясының QA жетекші бос орнына тест тапсырмасын шешіп жатыр едім. Толық бақылау парағы және электр шәйнегін сынауға арналған сынақ жағдайларының мысалдары бар сынақ жоспарын жасау бірінші тапсырманы тривиальды түрде шешуге болады:

Бірақ екінші бөлім сұраққа айналды: «Барлық тестерлер үшін олардың тиімдірек жұмыс істеуіне кедергі келтіретін қандай да бір проблемалар бар ма?»

Ең бірінші ойға келгені – тестілеу кезінде кездесетін барлық азды-көпті проблемаларды тізіп, ұсақ-түйектерді алып тастап, қалғандарын қорытындылау болды. Бірақ мен индуктивті әдіс «барлығына» емес, ең жақсы жағдайда, тестілеушілердің «көпшілігіне» ғана қатысты сұраққа жауап беретінін тез түсіндім. Сондықтан мен оған екінші жағынан, дедуктивті түрде қарауды жөн көрдім және осылай болды.

Анықтамалар

Жаңа мәселені шешкен кезде мен әдетте жасайтын бірінші нәрсе - оның не туралы екенін түсінуге тырысу және бұл үшін оны тудыратын сөздердің мағынасын түсінуім керек. Түсіну үшін негізгі сөздер мыналар:

  • мәселе
  • сынаушы
  • сынақшы жұмысы
  • сынаушы тиімділігі

Уикипедияға және ақылға жүгінейік:
Мәселе (көне грекше πρόβλημα) кең мағынада – зерттеуді және шешуді қажет ететін күрделі теориялық немесе практикалық мәселе; ғылымда – кез келген құбылыстарды, объектілерді, процестерді түсіндіруде қарама-қарсы позициялар түрінде пайда болатын және оны шешу үшін адекватты теорияны қажет ететін қарама-қайшылықты жағдай; өмірде мәселе адамдарға түсінікті түрде тұжырымдалады: «Мен нені білемін, мен қалай екенін білмеймін», яғни не алу керек екені белгілі, бірақ оны қалай жасау керектігі белгісіз. . Кеш келеді. лат. мәселе, грек тілінен. πρόβλημα “алға лақтырылған, алдына қойылған”; бастап προβάλλω «алға тастаңыз, алдыңызға қойыңыз; кінә».

Мұның мағынасы жоқ, шын мәнінде, «проблема» = «шешу қажет кез келген нәрсе».
Сынақшы - компонентті немесе жүйені тестілеуге қатысатын маман (біз түрлерге бөлмейміз, өйткені бізді барлық тестерлер қызықтырады), оның нәтижесі:
Сынақшының жұмысы — тестілеуге байланысты іс-шаралар кешені.
Тиімділік (лат. effectivus) – қол жеткізілген нәтиже мен пайдаланылған ресурстар арасындағы байланыс (ISO 9000: 2015).
Нәтиже - іс-әрекеттер (нәтиже) немесе оқиғалар тізбегінің (тізбегінің) сапалық немесе сандық түрде көрсетілген салдары. Ықтимал нәтижелерге артықшылық, кемшілік, пайда, жоғалту, құндылық және жеңіс жатады.
«Мәселе» сияқты, мағынасы аз: жұмыс нәтижесінде пайда болған нәрсе.
ресурс - адамның немесе адамдардың кез келген қызметін орындаудың сандық өлшенетін мүмкіндігі; қажетті нәтиже алу үшін белгілі бір түрлендірулерді қолдануға мүмкіндік беретін шарттар. Тестілеуші ​​тұлға болып табылады және өмірлік ресурстар теориясына сәйкес әрбір адам төрт экономикалық активтің иесі болып табылады:
ақша қаражаты (кіріс) жаңартылатын ресурс болып табылады;
энергия (өмірлік күш) ішінара жаңартылатын ресурс болып табылады;
уақыт тұрақты және негізі қалпына келмейтін ресурс болып табылады;
білім (ақпарат) - жаңартылатын ресурс, ол өсіп, жойылуы мүмкін адами капиталдың бөлігі[1].

Біздің жағдайда тиімділік анықтамасы мүлдем дұрыс емес екенін атап өткім келеді, өйткені біз неғұрлым көп білімді пайдалансақ, соғұрлым тиімділік төмендейді. Сондықтан мен тиімділікті «қол жеткен нәтижелер мен жұмсалған ресурстар арасындағы арақатынас» ретінде қайта анықтайтын едім. Сонда бәрі дұрыс: білім жұмыс кезінде босқа кетпейді, бірақ ол сынақшының бірден-бір түбегейлі қалпына келтірілмейтін ресурсының - оның уақытының шығындарын азайтады.

шешім

Сонымен, біз тестілеушілердің жұмысының тиімділігін төмендететін жаһандық мәселелерін іздейміз.
Тестілеушінің жұмысына жұмсалатын ең маңызды ресурс – оның уақыты (қалғанын бір жолмен қысқартуға болады) және тиімділікті дұрыс есептеу туралы айтуымыз үшін нәтижені де уақытқа қысқарту керек. .
Ол үшін сынақшы өз жұмысы арқылы өміршеңдігін қамтамасыз ететін жүйені қарастырыңыз. Мұндай жүйе құрамына тестілеуші ​​кіретін жоба жатады. Жобаның өмірлік циклін шамамен келесі алгоритммен көрсетуге болады:

  1. Талаптармен жұмыс
  2. Техникалық шарттарды қалыптастыру
  3. Даму
  4. Тестілеу
  5. Өндіріске шығару
  6. Қолдау (1-тармаққа өту)

Бұл жағдайда бүкіл жобаны рекурсивті түрде ішкі жобаларға (мүмкіндіктерге), өмірлік циклі бірдей бөлуге болады.
Жоба тұрғысынан алғанда, оған аз уақыт жұмсалған сайын, оны жүзеге асыру тиімдірек болады.
Осылайша, біз жоба тұрғысынан тестілеушінің максималды мүмкін тиімділігін анықтауға келеміз - бұл тестілеу уақыты нөлге тең болғанда жобаның күйі. Барлық тестерлер үшін ортақ мәселе - бұл уақытқа қол жеткізе алмау.

Мұнымен қалай күресуге болады?

Қорытындылар өте айқын және көптеген адамдар ұзақ уақыт бойы қолданды:

  1. Әзірлеу мен тестілеу бір уақытта басталуы және аяқталуы керек (бұл әдетте кафедрамен жасалады QA). Идеал нұсқа - әзірленіп жатқан барлық функционалдылық дайын болғанға дейін автотесттермен қамтылып, регрессияға (және, мүмкін болса, алдын ала тапсыруға) жүйеленген тестілеудің қандай да бір түрін пайдалана отырып ұйымдастырылған кезде. CI.
  2. Жобада неғұрлым көп мүмкіндіктер болса (ол соғұрлым күрделірек), жаңа функцияның ескіні бұзбауын тексеруге соғұрлым көп уақыт жұмсалады. Демек, жоба неғұрлым күрделі болса, соғұрлым автоматтандыру қажет регрессиялық тестілеу.
  3. Өндірістегі қатені жіберіп алған сайын және пайдаланушы оны тапқан сайын, 1-тармақтан бастап жобаның өмірлік циклін өтуге қосымша уақыт жұмсауымыз керек (Талаптармен жұмыс, бұл жағдайда пайдаланушылар). Қатені жіберіп алудың себептері әдетте белгісіз болғандықтан, бізде бір ғана оңтайландыру жолы қалды - пайдаланушылар тапқан әрбір қате оның қайта пайда болмайтынына сенімді болу үшін регрессиялық тестілеуге қосылуы керек.

Ақпарат көзі: www.habr.com

пікір қалдыру