Кіріспе

Бағдарламалық жасақтаманы сынау әдісі Іздестірулік тестілеу - бағдарламалық жасақтаманы сынау әдісі, ол қысқаша бір мезгілде оқыту, сынақ жобалау және сынақ орындау ретінде сипатталады. 1984 жылы терминді енгізген Cem Kaner, зерттеулік тестілеуді "проект бойына қатар жүретін өзара қолдаушы іс-шаралар ретінде тестпен байланысты оқытуды, тест дизайнын, тестті орындауды және тест нәтижелерін түсіндіруді қарастыру арқылы жеке тестілеушінің жұмысының сапасын үздіксіз оңтайландыруға арналған жеке еркіндігі мен жауапкершілігін атап көрсететін бағдарламалық қамтамасыз етуді тестілеу стилі" деп анықтайды. Бағдарламалық жасақтаманы сынақтан өткізген кезде, тестілеуші тәжірибе мен шығармашылықпен бірге жаңа жақсы сынақтарды шығаратын нәрселерді үйреніп алады. Іздестіру тестілеуі көбінесе қара қорапты тестілеу әдісі ретінде қарастырылады. Оның орнына, оны зерттегендер оны кез-келген сынақ техникасына, даму процесінің кез-келген кезеңінде қолдануға болатын сынақ әдісі деп санайды. Негізгі мәселе - бұл тест техникасы немесе сыналатын немесе қаралатын нәрсе емес; бастысы - тестілеушінің танымдық қатысуы және тестілеушінің уақытын басқару жауапкершілігі.

Тарих

Іздестіруді әрқашан да тәжірибелі тестілеушілер жүргізген. 1990 жылдардың басында ad hoc деген сөз жиі ұқыпсыз және абайсыз жұмыс деген мағынаны білдірді. Нәтижесінде, тест әдістемесі бойынша топ (қазір олар өздерін Контекстті басқару мектебі деп атайды) "барлау" терминін қолданып, скриптісіз тестілеуге қатысы бар басым ойлау процесін атап көрсетуге және тәжірибені үйретуші тәртіпке айналдыруға тырысты. Бұл жаңа терминологияны алғаш рет Cem Kaner өзінің "Компьютерлік бағдарламалық жасақтаманы сынау" кітабында жариялады және "Програмдық жасақтаманы сынаудан алынған сабақтар" кітабында кеңейтті. Зерттеулік тестілеу кез келген басқа интеллектуалдық іс-әрекет сияқты тәртіпті болуы мүмкін.

Сипаттама

Іздестіру тестілеуі бағдарламалық жасақтаманың қалай жұмыс істейтінін анықтауға және қиын және оңай жағдайларды қалай шешетіні туралы сұрақтар қоюға бағытталған. Сынаудың сапасы сынаушының сынақ жағдайларын ойлап табу және ақауларды табу шеберлігіне байланысты. Сынаушы өнім мен түрлі сынақ әдістері туралы неғұрлым көп білсе, соғұрлым жақсы сынақ болады. Қосымша түсіндіру үшін еркін стильдегі зерттеулік сынақты оның антитезалық скриптті сынағымен салыстыруға болады. Соңғы қызметте сынақ жағдайлары алдын ала жобаланады. Бұл жеке қадамдар мен күтілетін нәтижелерді қамтиды. Бұл сынақтарды кейіннен сынақшы жүргізеді, ол нақты нәтижелерді күтілетін нәтижелермен салыстырады. Іздестіру сынақтарын жүргізген кезде, күтулер ашық. Кейбір нәтижелерді алдын ала болжап күтуге болады, ал басқалары мүмкін емес. Тестілеуші өнімді және оның мінез-құлқын конфигурациялайды, жұмыс істейді, бақылайды және бағалайды, нәтижені сыни түрде зерттейді және қате болуы мүмкін ақпаратты (бір адамға өнімнің құндылығына қауіп төндіретін) немесе мәселені (тестілеу жұмысының сапасына қауіп төндіретін) хабарлайды. Шын мәнінде, тестілеу әрқашан зерттеу және сценарийлік тестілеудің үйлесімі болып табылады, бірақ контекстке байланысты екеуіне де бейімделеді. Канер мен Джеймс Маркус Бахтың айтуынша, зерттеулік тестілеу әдістемеден гөрі ой қалпы немесе "тестілеу туралы ойлау тәсілі" болып табылады. Олар сонымен қатар, ол аздап зерттеу (біршама түсініксіз немесе анық емес скриптпен жасалған сынақ) -дан жоғары зерттеу (еркін үлгідегі зерттеу сынағы) -ға дейінгі континуумды кесіп өтеді дейді. Іздестірулік тестілеуді құжаттау барлық жүргізілген сынақтарды құжаттаудан бастап, тек қателерді құжаттауға дейін жетеді. Жұптық тестілеу кезінде екі адам бірге тест жағдайларын жасайды; біреуі оларды орындайды, ал екіншісі құжаттарды жасайды. Сессияға негізделген тестілеу - зерттеулік тестілеуді аудитке алу және кең ауқымда өлшеу үшін арнайы жасалған әдіс. Іздестіруші тестілеушілер жиі құралдарды, оның ішінде экранды түсіру немесе бейне құралдарды зерттеу сессиясының жазбасы ретінде немесе қызығушылық тудыратын жағдайларды тез жасауға көмектесетін құралдарды, мысалы, Джеймс Бахтың Perlclip.

Пайдасы мен кемшіліктері

Іздестіруші тестілеудің басты артықшылығы - дайындықтың аз болуы, маңызды қателер тез анықталады және орындау кезінде бұл тәсіл сценарийлі тестілеуді орындаудан гөрі интеллектуалды ынталандыруға бейім. Тағы бір маңызды артықшылық - тестілеушілер алдағы уақыттағы тестілеуді басқару үшін алдыңғы нәтижелердің нәтижелері негізінде дедуктивті ойлауды қолдана алады. Оларға назар аудару немесе одан да бай мақсатты ортаны зерттеуге көшу үшін сценарийлі тестілердің ағымдағы сериясын аяқтауға тура келмейді. Бұл ақылмен қолданғанда, қателерді тезірек анықтауға мүмкіндік береді. Тағы бір артықшылығы - бастапқы сынақтан кейін көптеген қателер зерттеу тестілеу арқылы анықталады. Мұны логикалық түрде: "Бірнеше сынақтан өткен бағдарламалар сол сынақтардан өтуді жалғастырады және әлі зерттелмеген басқа сынақтарда немесе сценарийлерде сәтсіздікке ұшырау ықтималдығы жоғары" деп көрсете алады. Кемшіліктері - ұшқанда ойлап табылған және орындалған сынақтарды алдын ала тексеруге болмайды (бұл кодтағы және тест жағдайларындағы қателерді болдырмайды), және қандай сынақтардың орындалғанын дәл көрсету қиын болуы мүмкін. Фристайл зерттеулік сынақ идеялары қайта қаралған кезде дәл сол тәсілмен орындалуы мүмкін емес, бұл жаңа қателерді табу маңызды болса, артықшылық болуы мүмкін; немесе бұрынғы сынақтардың нақты бөлшектерін қайталау маңызды болса, кемшілік болуы мүмкін. Бұл сынақшыға арнайы нұсқау беру арқылы немесе мүмкін, орынды және қажетті автоматтандырылған сынақтарды дайындау арқылы, әдетте бірлік деңгейіне мүмкіндігінше жақын түрде басқарылуы мүмкін.

Ғылыми зерттеулер

Қайталанған тәжірибеде скрипттік және зерттеулік сынақтардың ақауларды анықтау тиімділігі (тауарда табылған ақаулардың жалпы саны) ұқсас болса, зерттеулік сынақтардың тиімділігі (уақыт бірлігіне ақаулардың саны) жоғары болады, өйткені сынақ жағдайларын алдын ала жобалауға күш жұмсалмайды. Зерттеуші тестілеушілердің бақылауы бойынша зерттеулер, домен туралы білімді пайдалану, сыналатын жүйе және клиенттер - зерттеуші тестілеудің тиімділігін түсіндірудің маңызды факторы. Үш компанияны зерттеу барысында эксперименттік тестілеудің тиімділігі жылдам пікір беру мүмкіндігі екенін анықтады, ал тестілеуді басқарудың жетіспеушілігі туралы айтылды. Бір зерттеуде зерттеу тестілеуінің маңызды салаларда да қолданылатыны және зерттеу тестілеуінің әдісі тестілеуді жүргізетін адамға жоғары талап қоятыны анықталды.

Қолданылуы

Егер талаптар мен спецификациялар толық болмаса немесе уақыт жетпесе, зерттеулік сынақ өте қолайлы. Бұл әдісті алдыңғы сынақтардың ең маңызды ақауларды анықтағанын тексеру үшін де қолдануға болады.