Тести у процесі розробки програмного забезпечення. Тестування програм - процес виявлення помилок у програмному продукті Як проводити тестування

Значна частина виробничого процесу спирається тестування програм. Що це таке і як здійснюється подібна діяльність, обговоримо в цій статті.

Що називають тестуванням?

Під цим розуміють процес, під час якого виконується програмне забезпечення для виявлення місць некоректного функціонування коду. Для досягнення найкращого результату навмисно конструюються складні набори вхідних даних. Головна мета перевіряючого полягає в тому, щоб створити оптимальні можливості для відмови Хоча іноді тестування розробленої програми може бути спрощене до звичайної перевірки працездатності та виконання функцій. Це дозволяє заощадити час, але часто супроводжується ненадійністю програмного забезпечення, невдоволення користувачів і так далі.

Ефективність

Те, наскільки добре та швидко знаходяться помилки, істотно впливає на вартість та тривалість розробки програмного забезпечення необхідної якості. Так, незважаючи на те, що тестери отримують заробітну плату в кілька разів меншу, ніж програмісти, вартість їхніх послуг зазвичай сягає 30-40% від вартості всього проекту. Це відбувається через чисельність особового складу, оскільки шукати помилку – це незвичайний та досить важкий процес. Але навіть якщо програмне забезпечення пройшло значну кількість тестів, то немає 100% гарантії, що помилок не буде. Просто невідомо, коли вони виявляться. Щоб стимулювати тестерів вибирати типи перевірки, які з більшою ймовірністю знайдуть помилку, застосовуються різноманітні засоби мотивації: як моральні, так і матеріальні.

Підхід до роботи

Оптимальною є ситуація, коли реалізуються різні механізми, спрямовані на те, щоб помилок у програмному забезпеченні не було від початку. Для цього необхідно подбати про грамотне проектування архітектури, чітке технічне завдання, а також важливо не вносити корективи у зв'язку, коли роботу над проектом вже розпочато. У такому разі перед тестером стоїть завдання знаходження та визначення невеликої кількості помилок, що залишаються в кінцевому результаті. Це заощадить і час, і гроші.

Що таке тест?

Це важливий аспект діяльності перевіряючого, який необхідний успішного виявлення недоліків програмного коду. Вони необхідні для того, щоб контролювати правильність програми. Що входить до тесту? Він складається з початкових даних і значень, які повинні вийти як результуючі (або проміжні). Для того, щоб успішніше виявляти проблеми та невідповідності, тести необхідно складати після того, як був розроблений алгоритм, але не почалося програмування. Причому бажано використовувати кілька підходів для розрахунку необхідних даних. У такому випадку зростає можливість виявлення помилки завдяки тому, що можна досліджувати код з іншого погляду. Комплексно тести повинні забезпечувати перевірку зовнішніх ефектів готового програмного виробу та його алгоритмів роботи. Особливий інтерес надають граничні та вироджені випадки. Так, у практиці діяльності з помилками часто можна виявити, що цикл працює на один раз менше чи більше, ніж було заплановано. Також важливим є тестування комп'ютера, завдяки якому можна перевірити відповідність бажаного результату різних машинах. Це необхідно для того, щоб переконатися, що програмне забезпечення зможе працювати на всіх ЕОМ. Крім того, тестування комп'ютера, на якому виконуватиметься розробка, є важливим при створенні мультиплатформних розробок.

Мистецтво пошуку помилок

Програми часто націлені працювати з великим масивом даних. Невже його потрібно створювати повністю? Ні. Широкого поширення набула практика «мініатюризації» програми. У разі відбувається розумне скорочення обсягу даних проти тим, що має використовуватися. Давайте розглянемо такий приклад: є програма, де створюється матриця розміром 50x50. Іншими словами – необхідно вручну ввести 2500 тисяч значень. Це, звичайно, можливо, але займе багато часу. Але, щоб перевірити працездатність, програмний продукт отримує матрицю, розмірність якої становить 5x5. Для цього потрібно буде запровадити вже 25 значень. Якщо у разі спостерігається нормальна, безпомилкова робота, це означає, що усе гаразд. Хоча і тут існують підводні камені, які полягають у тому, що при мініатюризації відбувається ситуація, внаслідок якої зміни стають неявними та тимчасово зникають. Також дуже рідко, але все ж таки трапляється і таке, що з'являються нові помилки.

Переслідувані цілі

Тестування ПЗ не є легкою справою через те, що цей процес не піддається формалізації у повному обсязі. Великі програми майже ніколи не мають необхідного точного зразка. Тому як орієнтир використовують низку непрямих даних, які, щоправда, що неспроможні повністю відбивати характеристики та функції програмних розробок, що налагоджуються. Вони повинні бути підібрані таким чином, щоб правильний результат обчислювався ще до того, як програмний продукт буде тестований. Якщо цього не зробити заздалегідь, виникає спокуса вважати все приблизно, і якщо машинний результат потрапить у передбачуваний діапазон, то буде прийнято помилкове рішення, що все правильно.

Перевірка у різних умовах

Як правило, тестування програм відбувається у обсягах, які необхідні мінімальної перевірки функціональності в обмежених межах. Діяльність ведеться із зміною параметрів, а також умов їхньої роботи. Процес тестування можна розділити на три етапи:

  • Перевірка у звичайних умовах. У разі тестується основний функціонал розробленого програмного забезпечення. Отриманий результат має відповідати очікуваному.
  • Перевірка у надзвичайних умовах. У цих випадках передбачається отримання граничних даних, які можуть негативно вплинути на працездатність створеного програмного забезпечення. Як приклад можна навести роботу з надзвичайно великими чи малими числами, або взагалі повну відсутність отримуваної інформації.
  • Перевірка у виняткових ситуаціях. Вона передбачає використання даних, що лежать за межею обробки. У таких ситуаціях дуже погано, коли програмне забезпечення сприймає їх як придатні для розрахунку та видає правдоподібний результат. Необхідно подбати, щоб у подібних випадках відбувалося відкидання будь-яких даних, які не можуть бути коректно опрацьовані. Також необхідно передбачити інформування про це користувача

Тестування ПЗ: види

Створювати програмне забезпечення без помилок дуже важко. Це потребує значної кількості часу. Щоб отримати добрий продуктчасто застосовуються два види тестування: «Альфа» та «Бета». Що вони являють собою? Коли говорять про альфа-тестування, під ним мають на увазі перевірку, яку проводить сам штат розробників у «лабораторних» умовах. Це останній етап перевірки перед тим, як програма буде передана кінцевим користувачам. Тому розробники намагаються розвернутися максимально. Для легкості роботи дані можуть протоколюватись, щоб створювати хронологію проблем та їх усунення. Під бета-тестуванням розуміють постачання програмного забезпечення обмеженому колу користувачів, щоб вони змогли поексплуатувати програму та виявити пропущені помилки. Особливістю в даному випадку є те, що часто використовується не за своїм цільовим призначенням. Завдяки цьому несправності виявлятимуться там, де раніше нічого не було помічено. Це цілком нормально і переживати із цього приводу не потрібно.

Завершення тестування

Якщо попередні етапи успішно завершено, то залишається провести приймальний тест. Він у разі ставати простою формальністю. Під час цієї перевірки відбувається підтвердження, що жодних додаткових проблем не знайдено, і програмне забезпечення можна випускати на ринок. Чим більшу важливість матиме кінцевий результат, тим уважніше має проводитись перевірка. Необхідно стежити за тим, щоб усі етапи пройшли успішно. Ось так виглядає процес тестування загалом. А тепер давайте заглибимося в технічні деталі та поговоримо про такі корисні інструменти, як тестові програми. Що вони являють собою і в яких випадках використовуються?

Автоматизоване тестування

Раніше вважалося, що динамічний аналіз розробленого ПЗ – це надто важкий підхід, який неефективно використовуватиме виявлення дефектів. Але через збільшення складності та обсягу програм з'явився протилежний погляд. Автоматичне тестування застосовується там, де найважливішими пріоритетами є працездатність та безпека. І вони повинні бути за будь-яких вхідних даних. Як приклад програм, котрим доцільним є таке тестування, можна навести такі: мережеві протоколи, веб-сервер, sandboxing. Ми розглянемо далі кілька зразків, які можна використовувати для такої діяльності. Якщо цікавлять безкоштовні програми тестування, серед них якісні знайти досить складно. Але існують зламані «піратські» версії проектів, що добре зарекомендували себе, тому можна звернутися до їхніх послуг.

Avalanche

Цей інструмент допомагає виявити дефекти, проходячи тестування програм у режимі динамічного аналізу. Він збирає дані та аналізує трасу виконання розробленого об'єкта. Тестеру ж надається набір вхідних даних, які викликають помилку або обходять набір обмежень. Завдяки наявності хорошого алгоритму перевірки розробляється велика кількість можливих ситуацій. Програма отримує різні набори вхідних даних, які дозволяють змоделювати значну кількість ситуацій та створити такі умови, коли найімовірнішим є виникнення збою. Важливою перевагою програми є застосування евристичної метрики. Якщо є проблема, помилка програми знаходиться з високою ймовірністю. Але ця програма має обмеження на кшталт перевірки лише одного позначеного вхідного сокету чи файлу. Під час проведення такої операції, як тестування програм, буде міститись детальна інформація про наявність проблем з нульовими покажчиками, нескінченними циклами, некоректними адресами або несправностями через використання бібліотек. Звичайно, це не повний списоквиявлених помилок, лише їх поширені приклади. Виправляти недоліки, на жаль, доведеться розробникам - автоматичні засоби для цього не підходять.

KLEE

Це чудова програма для тестування пам'яті. Вона може перехоплювати приблизно 50 системних викликів і велику кількість віртуальних процесів, таким чином, виконується паралельно та окремо. Але в цілому програма не шукає окремих підозрілих місць, а обробляє максимально можливу кількість коду і проводить аналіз шляхів передачі даних, що використовуються. Через це час тестування програми залежить від розміру об'єкта. Під час перевірки ставка зроблена на символічні процеси. Вони є одним із можливих шляхів виконання завдань у програмі, яка перевіряється. Завдяки паралельній роботі можна аналізувати велику кількість варіантів роботи досліджуваної програми. Для кожного шляху після закінчення тестування зберігаються набори вхідних даних, з яких починалася перевірка. Слід зазначити, що тестування програм за допомогою KLEE допомагає виявляти велику кількість відхилень, яких не повинно бути. Вона може знайти проблеми навіть у програмах, які розробляються десятиліттями.

Рано чи пізно багато організацій, які використовують те чи інше програмне забезпечення, приходять до необхідності організовувати процес тестування. Причин зазвичай кілька, або це стартап, який відразу вимагає тестування свого ПЗ, або керівництво починає розуміти, що крім тестування бізнесом, супроводом, розробкою та всіма кого тільки можна залучити в компанії все ж таки потрібні професійні фахівціз тестування, які розвантажать всіх інших людей, які не мають жодного нормального уявлення про тестування, І ось саме з цього моменту найчастіше починається традиційне для нашої роботи призначення одного з поточних співробітників на посаду керівника відділу тестування. Мовляв, ось тобі поле, засіюй... А як, що ти робитимеш неважливо, але відділ повинен бути і повинен приносити результати. Звичайно, не завжди буває все так погано, хтось все-таки шукає на цю посаду грамотних фахівців із тестування, проте процесу тестування на цьому етапі все одно немає і його потрібно створювати.

І дуже часто багато керівників починають створювати процес тестування не системно, а вибірково. Але при цьому якщо організовувати процес тестування, видираючи просто кращі практики, не маючи при цьому системного підходу, то такий процес не принесе позитивних результатів ні через місяць, ні через рік.

Я думаю, багато хто знає, що якщо процес тестування з самого початку організувати не правильно, то потім змінити його буде вже вкрай складно. Тому потрібно визначити, як правильно організувати процес тестування?

З чого починати організацію процесу тестування?

Я виділяю 11 основних критеріїв в організації процесу тестування:

  1. Цілі та область тестування
  2. Команда
  3. Управління
  4. Комунікація та взаємодія
  5. Методологія тестування
  6. Документованість процесу
  7. Управління ризиками
  8. Вимірювання процесу
  9. Інструменти
  10. Тестові середовища
  11. Удосконалення процесу

Саме виконання всіх цих критеріїв дозволяє рівномірно розвивати процес тестування, що в короткі терміни дозволяє досягати того рівня, коли процес тестування даватиме позитивні результати.

Тому будь-який керівник, перед яким стоїть завдання організації процесу тестування, повинен поставити такі питання:

  • Навіщо нам потрібне тестування?
  • Що ми маємо зробити тестування?
  • Які процеси потрібно формалізувати чи створити?
  • Як і що ми маємо тестувати?

Тільки після того, як ми отримаємо відповіді на ці питання, можна починати переходити до стандартів.

Я виокремлю наступні стандарти, які дійсно потрібно вивчити перед тим, як починати будувати процес:

  • ISO 29119
  • IEEE 829\1008
  • TPI Next&TMap
  • ISTQB

Звичайно, використання повністю практик, викладених у стандартах не можна. Будь-який стандарт має бути кастомізований під потреби саме вашого процесу тестування, тому що необдумане впровадження практик стандартів може призвести до несприятливих наслідків, тому що ваш процес тестування не виконуватиме вимог бізнесу.

Будь-який ІТ процес завжди повинен задовольняти потреби бізнесу!

Ми розберемо основні критерії побудови тестування.

Цілі та область тестування

Метою тестування є виявлення дефектів, перевірка відповідності ПЗ заявленим вимогам, а також надання зворотного зв'язку про дефекти всім заінтересованим сторонам.

Це стандартна мета процесу тестування, але можуть бути цілі, які визначаються потребами бізнесу організації. Наприклад, для банків характерно, щоб різні вимоги ЦП впроваджувалися своєчасно, тому додатково до спільної мети тестування ще додається своєчасність виконання тестування з необхідною якістю для критичних завдань.

Говорячи про область тестування, ми маємо чудово розуміти, що саме нам належить тестувати. Це можуть бути системи, компоненти, бізнес-процеси. Для того, щоб це зрозуміти, потрібно просто відповісти на два питання:

  • Що треба випробувати?
  • Що тестуватимемо?

Найчастіше, те що треба тестувати і те, що будемо сильно відрізнятися. Це залежить від можливостей процесу тестування. «Що треба» часто диктується бізнесом та керівництвом, тому добрий керівник повинен завжди розуміти, «що потрібно» тестувати. Як говориться в приказці: «За двома зайцями поженешся, жодного не зловиш», так і тут. Завжди краще якісно тестувати те, що дійсно ви можете тестувати вашою командою, ніж хапатися за все, що просить бізнес і нічого не встигати вчасно та ще й пропускати критичні дефекти.

Команда та управління

Команда – це найважливіша складова процесу тестування. Без команди ви як керівник нічого не зробите. Найчастіше до формування команди підходять кількома підходами:

Інструменти та інфраструктура

Який процес тестування без інструментів? Я думаю багато хто з вас часто чув про написання тест-кейсів у документах ворд, про побудови графіків та діаграм в екселі. Але, навіщо витрачати зусилля, якщо ринок пропонує нам готові продукти управління тестування, такі як HP ALM, MS TFS, TestRail, TestLink, JIRA Zephyr та багато інших.
Тому, якщо ви приступили до організації процесу тестування, то робіть цей процес зручним та ефективним. Пишіть тест-кейси у зручних формах готових продуктів, інтегруйте інструменти із системою управління завданнями, налаштовуйте тощо.

Підходячи до вибору інструменту, потрібно завжди розуміти:

  • Які завдання ви плануєте виконувати?
  • Який бюджет у вас на інструменти?

Отримавши відповіді на ці питання, ви зможете визначити найбільш зручні для вас інструменти тестування, а можливо і розробити власні.

Крім інструментів управління тестування, до інструментів тестування також можна віднести:

  • Система управління дефектами та завданнями (може включатися до системи управління тестуванням)
  • Допоміжні інструменти (для скріншотів, зняття логів, роботи з БД, SOUP UI для XML і т.д.)
  • Інструменти автоматизації ( , Selenium і т.д.)
  • Системи управління знаннями (на wiki движку)

Тепер поговоримо про інфраструктуру. У поточному контексті своєї розповіді я маю на увазі тестові середовища.

Практично в будь-якій організації, особливо якщо організація велика і не розробляє мобільні програми для плеймаркету, вам знадобиться тестове середовище для тестування. Потужності та обсяги інтеграції систем у тестових середовищах можуть бути різними залежно від обсягів тестування.

Стандартно я виділяю наступні типитестових середовищ:

  • Середовище розробки (чи можна її відносити до тестової?, проте)
  • Середовище тестування системи (може бути розгорнуто одну або кілька систем, компонент, що не вимагає серйозних потужностей)
  • Середовище інтеграції (повноцінне інтеграційне середовище для перевірки працездатності наскрізних бізнес-процесів)
  • Середовище (основне вимоги - відповідність потужностям бойового контуру)
  • Середа ПродЛайк/ПреПрод (середовище для налагодження готового протестованого білда, проведення інсталяційного тестування)

Можливість організації такого великої кількості тестових середовищ дозволяє виконувати роботи з тестування з накладенням їх один на одного, тим самим збільшуючи кількість змін (релізів, спринтів), які можуть йти паралельно, але на різних етапах тестування.

Удосконалення процесу

Я дуже часто говорю таку фразу, що «Будь-який процес, неважливо який, завжди повинен постійно вдосконалюватися», на що дуже часто чую «Навіщо наш процес і так добре працює».

Але це не так. Чому ми повинні постійно вдосконалювати процес тестування:

1. Цілі тестування не можуть бути однаковими, вони постійно змінюються залежно від потреб бізнесу, що диктується ринком.

2. ІТ сфера постійно розвивається. Приходять нові технології підходи, які завжди дозволяються вдосконалювати процес тестування.

Як кажуть, досконалості немає меж!

Ну а як удосконалювати це стандартний цикл Деммінга.

Запланували -. Зробили - Проаналізували - Скоригували

Ну і на закінчення скажу, що правильна дозволяє в найкоротші терміни створити дійсно ефективний процес тестування, що вирішує поставлені йому цілі та завдання.

Юзабіліті тестування допомагає підвищити конверсію сайту або інтернет-магазину, знайти приховані інтенти та побажання користувачів, ухвалити рішення щодо розробки додаткового функціоналу. Це не єдиний метод дослідження сайту. Приймайте рішення щодо вибору методу, спираючись на поставлені завдання. Якщо потрібно

знайти огріхи в інтерфейсі або перевірити зручність користувальницьких сценаріїв, тестуйте юзабіліті сайту. Якщо потрібно порівняти конверсію двох варіантів лендингів, краще зробіть А/В-тест.

Цілі проведення тестування у кожної компанії різні: хтось тестує прототип або концепцію, хтось перевіряє гіпотези, хтось досліджує сценарії користувача, тому методи і метрики різняться. Але правила проведення, етапи підготовки та комплект супровідної документації схожі. Підготували докладну інструкцію, як провести юзабіліті тестування сайту


З чого почати

Цілі і завдання.Поставте головну мету тестування, яка визначить подальший напрямок: завдання, завдання, методи та вибір респондентів. З мети сформулюйте проблему чи завдання. Це може бути перевірка розробленого товару або пошук недоліків після редизайну. Наприклад, компанія змінила дизайн форми замовлення, після чого знизилася конверсія. За допомогою тестування дослідники розбиратимуться, чому так сталося і що робити.

Гіпотези.Складіть гіпотезу, яку дослідження підтвердить чи спростує. Припустимо, що користувачі при бронюванні готелю замовляють трансфер з аеропорту окремим повідомленням, не використовуючи спеціальну форму замовлення. У такому разі варіант гіпотези може бути такий: «користувачі не розуміють, що це форма для замовлення трансферу, або вважають її громіздкою для заповнення».

Сценарії.Окремо тестуйте сценарії поведінки користувачів – те, як люди взаємодіють із сайтом. Для кожної сторінки працює власний сценарій. Для його складання дайте відповідь на чотири питання:

  1. Звідки прийшов користувач?
  2. Що він має побачити на цій сторінці?
  3. З якою метою він прийшов на сторінку?
  4. Чим має закінчитися відвідування?

Сценарій користувача не обов'язково має бути довгим та складним. Іноді що коротша взаємодія, то краще конверсія. Наприклад, для бізнесу з доставки картриджів, зарядок, лінз важлива швидкість, тому бажано, щоб користувач одразу розумів, що служба доставка йому підходить.

Коли на сайт приходять різні групивідвідувачів, розробіть для кожної групи власні сценарії поведінки. Допустимо, сайт з продажу товарів оптом та в роздріб має три групи клієнтів: великі оптовики, дрібні оптовики та роздрібні покупці. Створіть для кожної групи окремі розділи та складіть сценарії, ґрунтуючись на відповідях на типові запитання.

Що можна поміряти

Кількісні дослідженнязавжди конкретні і сфокусовані, націлені отримання числових показників. Це може бути час виконання дій на сайті або частка респондентів, які виконали завдання. Результати «так/ні» теж можна подати у вигляді цифр. Наприклад, привести їх у бінарну систему: так – 1 бал, ні – 0 балів.

Часто в тестуванні застосовують метод Якоба Нільсена, який переводить результати у відсоткове співвідношення та вважає відсоток успішності. Рекомендуємо спростити шкалу оцінок та оперувати трьома варіантами:

  • виконав самостійно – 100%;
  • виконаємо за допомогою модератора – 50%;
  • не виконав – 0%.

Щоб визначити, наскільки часто користувачі мають проблеми, обчислюйте їх частотність. Для цього порахуйте кількість респондентів, які не змогли виконати завдання через одну й ту саму проблему. Давайте учасникам тестування однакові завдання, тоді показник частотності буде достовірним.

Якісні дослідженнявибирають, щоб отримати багато різних зауважень, зрозуміти мислення користувачів, знайти приховані проблеми. Тестування засноване на відкритих та гнучких питаннях. Для цього проводиться інтерв'ю, яке показує рівень задоволеності респондентів. Існує безліч методик та опитувальників для проведення якісних досліджень.

Наприклад, модель Кано, розроблена японським ученим. З її допомогою дізнавайтеся не лише задоволеність поточною версією сайту, а й очікування користувачів. Всі відповіді респондентів переводяться в бали і ранжуються за шкалою очікувань від «Мені подобається» і «Я чекаю на це» до «Мені не подобається і я не можу це прийняти». В результаті дослідники будують графік, який показує, що саме аудиторія вважає:

  • само собою зрозумілим;
  • конкурентною перевагою сайту;
  • функціями, які викликають у них захоплення;
  • неважливим.

За підсумками проведення якісних досліджень необхідно правильно інтерпретувати отримані результати. Можливо, респонденти дадуть багато цікавих пропозицій, але оцініть їх з точки зору технічної реалізації та витрат на їх розробку. У будь-якому випадку постарайтеся зрозуміти, яку саме потребу закриває їхня пропозиція. Це потрібно, щоб знайти спосіб покращити юзабіліті сайту, що підходить для вашої компанії.

Який метод вибрати

Спостереження- Найпростіший метод: респондент працює у звичайному режимі, модератор дивиться та аналізує його дії. На завершення респондент заповнює опитувальник та ділиться враженнями про сайт. Метод хороший тим, що користувач взаємодіє з сайтом природно, на нього не тиснуть навколишні обставини.

Але є і недолік: респондент заповнює опитувальник після завершення тестування, тому може не згадати точно, чому він вчинив так чи інакше. Тоді це призведе до неправильного тлумачення дій респондента.

Думки вголос.Цей популярний метод було запропоновано Якобом Нільсеном. Суть його полягає в тому, що користувач усі свої дії промовляє вголос. Однак при подібній поведінці респонденти починають більш вдумливо підходити до виконання завдань і частина втрачається.

Діалог із модератором.Метод найбільше підходить для проведення якісних досліджень прототипів та концепцій. Під час тестування респонденти активно спілкуються з модератором, ставлять йому запитання та одразу дають фідбек.

Тіньовий метод.Одночасно працюють три учасники: респондент, модератор та експерт. Респондент вільно та незалежно виконує завдання, модератор фіксує, експерт коментують дії респондента.

Ретроспектива.Це метод, який поєднує у собі спостереження та «думки вголос». Спочатку респондент виконує завдання, потім – дивиться відеозапис своїх дій та коментує їх. Основний недолік – значне збільшення часу тестування.

Як проводити тестування

Особистий контакт.Нехай модератор установить доброзичливий контакт із респондентами. Розкажіть про тестування та його цілі, зверніть увагу учасника, що його відповіді допоможуть компанії зробити продукт кращим. Проведіть стислий інструктаж, у якому поясніть суть завдань, озвучте регламент тестування.

документація.Підпишіть із респондентом необхідні документи: угоду про обробку персональних даних та договір про нерозголошення результатів тестування, якщо вона необхідна. Коли у тестуванні беруть участь діти, підписуйте з батьками документ про згоду на участь у дослідженні.

Пробне тестуваннянеобхідно, коли складний продукт або завдання можуть викликати труднощі у респондентів. Так вони познайомляться із сайтом та зрозуміють вимоги. Коли має бути масштабне та тривале дослідження, зробіть пробне тестування перед основним. Так ви знайдете недоліки у підготовці та усунете їх.

Звіт про тестування.За підсумком складається зведений звіт із результатами. Він починається з введення, в якому вказані цілі, завдання та гіпотези, що перевіряються. У звіті вкажіть використовувані методи та вимірювані метрики. Усі отримані результати та висновки мають бути інтерпретовані, у висновку даються рекомендації. Додайте результати кожного респондента.

Запам'ятайте

Взаємодія користувача з використанням кожного сайту повинна бути ефективною, продуктивною і задоволеною. Прагніть виправдати очікування користувачів. Для цього тестуйте прототипи, діючий чи новий дизайн сайту. Проводьте тестування у разі виникнення проблем або для покращення поточних показників.


Матеріал підготувала Світлана Сірвіда-Льоренте.

Тестування програмного забезпечення - це оцінка програмного забезпечення/продукту, що розробляється, щоб перевірити його можливості, здібності та відповідність очікуваним результатам. Існують різні типи методів, що використовуються в галузі тестування та забезпечення якості про них і йтиметься у цій статті.

Тестування програмного забезпечення є невід'ємною частиною циклу програмного забезпечення.

Що таке програмне забезпечення?

Тестування програмного забезпечення - це не що інше, як випробування шматка коду до контрольованих та неконтрольованих умов експлуатації, спостереження за виходом, а потім вивчення, чи відповідає він попередньо визначеним умовам.

Різні набори тест-кейсів та стратегій тестування спрямовані на досягнення однієї загальної мети – усунення багів та помилок у коді, та забезпечення точної та оптимальної продуктивності програмного забезпечення.

Методика тестування

Широко використовуваними методами тестування є модульне тестування, інтеграційне тестування, приймальне тестування та тестування системи. Програмне забезпечення піддається цим випробуванням у порядку.

3) Системне тестування

4) Приймальні випробування

Насамперед проводиться модульний тест. Як нагадує назва, це метод випробування на об'єктному рівні. Окремі програмні компоненти тестуються на помилки. Для цього тесту потрібне точне знання програми та кожного встановленого модуля. Отже, ця перевірка здійснюється програмістами, а чи не тестерами. Для цього створюються тест-коди, які перевіряють, чи поводиться програмне забезпечення так, як замислювалося.


Окремі модулі, які вже були піддані модульному тестуванню, інтегруються один з одним і перевіряються на наявність несправностей. Такий тип тестування насамперед виявляє помилки інтерфейсу. Інтеграційне тестування можна здійснювати за допомогою підходу "згори донизу", дотримуючись архітектурної споруди системи. Іншим підходом є підхід знизу вгору, який здійснюється з нижньої частини потоку управління.

Системне тестування

У цьому тестуванні вся система перевіряється на наявність помилок і багів. Цей тест здійснюється шляхом сполучення апаратних та програмних компонентів усієї системи, а потім виконується її перевірка. Це тестування числиться під методом тестування "чорної скриньки", де перевіряються очікувані для користувача умови роботи програмного забезпечення.

Приймальні випробування

Це останній тест, який проводиться перед передачею програмного забезпечення клієнту. Він проводиться, щоб гарантувати, що програмне забезпечення, яке було розроблено відповідає всім вимогам замовника. Існує два типи приймально-здавальних випробувань - те, що здійснюється членами команди розробників, відомо, як внутрішнє приймальне тестування (Альфа-тестування), а інше, яке проводиться замовником, відомо, як зовнішнє приймальне тестування.

Якщо тестування проводиться за допомогою передбачуваних клієнтів, воно називається приймальними тестами клієнта. Якщо тестування проводиться кінцевим користувачем програмного забезпечення, воно відомо, як приймальне тестування (бета-тестування).

Існує кілька основних методів тестування, які формують частину режиму тестування програмного забезпечення. Ці тести зазвичай вважаються самодостатніми у пошуку помилок і багів у всій системі.

Тестування методом чорної скриньки

Тестування методом чорної скриньки здійснюється без будь-яких знань внутрішньої роботи системи. Тестер буде стимулювати програмне забезпечення для користувача середовища, надаючи різні входи і тестуючи згенеровані виходи. Цей тест також відомий як Black-box, closed-box тестування чи функціональне тестування.

Тестування методом білої скриньки

Тестування методом "Білої скриньки", на відміну від "чорної скриньки", враховує внутрішнє функціонування та логіку роботи коду. Для виконання цього тесту тестер повинен мати знання коду, щоб дізнатися точну частину коду, що має помилки. Цей тест також відомий як White-box, Open-Box чи Glass box тестування.

Тестування методом сірої скриньки

Тестування методом сірої скриньки або Gray box тестування, це щось середнє між White Box і Black Box тестуванням, де тестер має лише загальні знання даного продукту, необхідні для виконання тесту. Ця перевірка здійснюється за допомогою документації та схеми інформаційних потоків. Тестування проводиться кінцевим користувачем, або користувачам, які видаються як кінцеві.

Нефункціональні тести

Безпека програми є одним із головних завдань розробника. Тестування безпеки перевіряє програмне забезпечення на забезпечення конфіденційності, цілісності, автентифікації, доступності та безвідмовності. Індивідуальні випробування проводяться з метою запобігання несанкціонованому доступу до програмного коду.

Стрес-тестування є методом, при якому програмне забезпечення піддається впливу умов, що виходять за межі нормальних умов роботи програмного забезпечення. Після досягнення критичної точки отримані результати записуються. Цей тест визначає стійкість усієї системи.


Програмне забезпечення перевіряється на сумісність із зовнішніми інтерфейсами, такими як операційні системи, апаратні платформи, веб-браузери тощо. Тест на сумісність перевіряє, чи сумісний продукт із будь-якою програмною платформою.


Як підказує назва, ця методика тестування перевіряє обсяг коду чи ресурсів, що використовуються програмою під час однієї операції.

Це тестування перевіряє аспект зручності та практичності програмного забезпечення для користувачів. Легкість, з якою користувач може отримати доступ до пристрою, формує основну точку тестування. Юзабіліті-тестування охоплює п'ять аспектів тестування, - навчання, ефективність, задоволеність, запам'ятовування та помилки.

Тести у процесі розробки програмного забезпечення

Каскадна модель використовує підхід "зверху-вниз", незалежно від того, чи використовується вона для розробки програмного забезпечення або для тестування.

Основними кроками, що беруть участь у даній методиці тестування програмного забезпечення, є:

  • Аналіз потреб
  • Тест дизайну
  • Тест реалізації
  • Тестування, налагодження та перевірка коду або продукту
  • Впровадження та обслуговування

У цій методиці ви переходите до наступного кроку тільки після того, як ви завершили попередній. У моделі використовується не-ітераційний підхід. Основною перевагою даної методики є її спрощений, систематичний та ортодоксальний підхід. Тим не менш, вона має багато недоліків, так як баги та помилки в коді не будуть виявлені до етапу тестування. Найчастіше це може призвести до втрати часу, грошей та інших цінних ресурсів.

Agile Model

Ця методика заснована на виборчому поєднанні послідовного та ітеративного підходу, на додаток до досить великого розмаїття нових методів розвитку. Швидкий та поступальний розвиток є одним із ключових принципів цієї методології. Акцент робиться на отримання швидких, практичних та видимих ​​виходів. Безперервна взаємодія з клієнтами та участь є невід'ємною частиною всього процесу розробки.

Rapid Application Development (RAD). Методологія швидкої розробки додатків

Назва говорить сама за себе. І тут методологія приймає швидкий еволюційний підхід, використовуючи принцип компонентної конструкції. Після розуміння різних вимог даного проекту готується швидкий прототип, а потім порівнюється з очікуваним набором вихідних умов та стандартів. Необхідні змінита модифікації вносяться після спільного обговорення із замовником або групою розробників (у контексті тестування програмного забезпечення).

Хоча цей підхід має свою частку переваг, він може бути невідповідним, якщо проект великий, складний або має надзвичайно динамічний характер, в якому вимоги постійно змінюються.

Спіральна модель

Як видно з назви, спіральна модель заснована на підході, в якому є ціла низка циклів (або спіралей) із усіх послідовних кроків у каскадній моделі. Після того, як початковий цикл буде завершено, виконується ретельний аналіз та огляд досягнутого продукту або виходу. Якщо вихід не відповідає зазначеним вимогам або очікуваним стандартам, провадиться другий цикл, і так далі.

Rational Unified Process (RUP). Раціональний уніфікований процес

Методика RUP також схожа на спіральну модель, тому вся процедура тестування розбивається на кілька циклів. Кожен цикл складається з чотирьох етапів - створення, розробка, будівництво та перехід. В кінці кожного циклу продукт/вихід переглядається, і далі цикл (що складається з тих же чотирьох фаз) слід за необхідності.

Застосування інформаційних технологій зростає з кожним днем, також важливість правильного тестування програмного забезпечення зросла в рази. Багато фірм містять для цього штат спеціальних команд, можливості яких перебувають на рівні розробників.

Головне – дізнатися якнайбільше про людину, який перед тобою сидить: чи володіє він діловими, чи здатний своїм інтелектом вразити начальство та клієнтів, чи може стримувати емоції, як спілкуватиметься з колегами.

Для цього вони використовують такий метод як тестування.

А чи знаєте Ви, що вперше своєрідне тестування проводилося ще в давнину. А давньогрецький вчений Піфагор придумував такі завдання, які давали б можливість побачити: дурний учень чи розумний. Він стверджував, що "не з кожного дерева можна виточити Меркурія".

Як проводиться тестування?

Ви заходите в кабінет і сідайте навпроти незнайомої ще вам людини, яка дуже хвилюється.

Починаєте з ним розмовляти і розумієте - претендент підготувався проходити тести, що може спотворити дійсність результатів.

Другий крок – провести тестування:

  1. Роздайте тестиз питаннями та завданнями, бланки для відповідей.
  2. Поясніть, з якою метоюви проводитимете тестування.
  3. Зачитайте інструкціюабо дайте надрукований текст.
  4. Тести повинні складатися з 20-25 завдань.
  5. Уточніть, що на кожне завдання дається по одній хвилині. Після закінчення часу тестування відразу припиняється.
  6. Якщо людина не розуміє, наведіть прикладвиконання подібних завдань.
  7. Відповідайте на питання кандидатів.
  8. Прийняття відповідейта їх перевірка. З результатами опрацювання можна ознайомити кандидата, але це необов'язково.

завантажити приклади та зразки тестівз відповідями та коментарями для ви можете за наступними посиланнями.

Інші тести при прийомі на роботу з відповідями можна знайти в Інтернеті.

Види

Тести під час працевлаштування діляться на кілька видів: професійні, особистісні, інтелектуальні, математичні, логічні, вербальні, на уважність, на кмітливість, на навчання, з механіки, та найпоширеніший у торгових організаціях «Як продати ручку».

Давайте докладно зупинимося кожному з них.

Професійні

Щоб визначити професіоналізм претендента, фахівці застосовують особливі тести. Для – завдання на знання бухгалтерського обліку; для секретаря- пройти тест на володіння основами діловодства, перевірка грамотності, уважності до деталей, швидкості друку, швидкого та ефективного пошуку інформації; для спеціаліста податкової служби - проходження податкових тестів, для юристів та економістів— перевірка юридичної чи економічної грамотності, рівень знання іноземних мов, володіння комп'ютерними програмами тощо.


складають питання та кілька варіантів відповідей: так, ні, у деяких випадках.

При цьому дається інтерпретаціявідповідей.

За такими поясненнями можна одразу побачити відповідь.

А за допомогою готових ключів до тесту визначити кількість правильних відповідей та винести своє рішення.

Роботодавець може запропонувати пройти тест для претендентів на знання деяких прийомів роботи excel(ексель).

Здобувач, який має досвід, знає теорію, що відповів на більшість питань, має всі шанси отримати бажану посаду.

Особистісні чи психологічні

Інтелектуальні


Якщо робота потребує розумових витрат, то роботодавець має право знати, наскільки високі інтелектуальні здібності його працівників.

Саме з цією метою використовують такий вид тестування, щоб об'єктивно оцінити інтелектуальний рівень (IQ)претендентів.

Для правильного підбору завдань підійде книга англійського психолога Г. Айзенка.

Можна скористатися тестом Амтхауера. Він визначає рівень розумових здібностей за дев'ятьма критеріями.

За результатами можна точно встановити математичний склад розуму кандидат чи гуманітарій і навіть визначити, до якої з 49 професій підходить.

Онлайн тестування на рівень інтелекту можна пройти.

Математичні

Великий математик не шукає роботи, вона знаходить його сама. Але голові фірми чи керівнику компанії потрібні професійні бухгалтери чи економісти, які вміють не тільки рахувати, але виконувати складні математичні дії.

Запропонуйте тест із двадцяти-тридцяти простих та складних завдань, що складаються з знаходження пропорцій, дробів, підрахунку різниці, додавання кількох чисел, розуміння діаграм, малюнків, графіки, робота з фігурами. Здобувачеві треба швидко зрозуміти, з якими числами слід виконувати операції.

За результатами тестування буде зрозуміло, чи зможе фахівець упоратися з математичними завданнямина новій посаді.

Пройти онлайн тестз математики можна.

Логічні

Тести на логіку під час прийому працювати спрямовані на ступеня кмітливості кандидата, що займає центральне місце для багатьох професій. Вони є чудовим інструментом для розкриття поведінки людини у незнайомій ситуації.

Логічні тести працювати перший погляд абсурдні. В одному із завдань сказано, що деякі равлики – гори. Гори люблять кішок. Отже, всі равлики люблять кішок.

Головне для тестованого зосередитися, побудувати логічний ланцюжокпояснити її, не звертаючи уваги на равликів і котів. Фахівець має зрозуміти: чи вміє майбутній працівник логічно розмірковувати та нестандартно мислити.

Тест на логіку можна пройти онлайн.

Вербальні


Вербальні тести корисні для перевірки на посаді викладачів, перекладачів чи секретарів.

Дають можливість оцінити вміння претендента працювати з текстами: розуміти, розбирати, оцінювати інформацію, робити висновки

Кандидат має можливість отримати бажану посаду, якщо досконало володіє рідною мовою, вміє логічно та грамотно говорити, має великий словниковий запас.

На виконання вербального тесту зазвичай дається набагато більше часу, Чим числових. Відповідь складається з літер чи слова. Потрібно вибрати з кількох варіантів чи самому вигадати відповідь.

Але є такий вид вербального тесту, коли необхідно прочитати невеликий інформаційний текст та кілька тверджень. Здобувач повинен розкрити істинність чи хибністьцього твердження.

Вербальні тести дають можливість наймачеві зрозуміти, чи лаконічна мова кандидата, чи може він словами переконувати, доводити.

Пройти вербальний тест онлайн можна.

На навчання

Багато молодих претендентів пишуть: «Готовий до навчання». А ось люди, які мають великий стаж та досвід, не бажають перевчитисяДумаючи, що знань, накопичених ними, буде достатньо. Для цього використовується короткий тест, що дозволяє оцінити навчання (здатність до обробки та сприйняття нової інформації).

З механіки

Тест з механіки пропонується вузькому колу фахівців, переважно кандидатам фізичних спеціальностей, інженерних професій.

Тести перевіряють просторове мислення, запас знань та досвід, визначають здатність працювати з кресленнями, механічними пристроями, складним обладнанням. Це тести, що складаються з нескладних питань, але на які здатні відповісти лише люди, які розуміються на механіці.

Онлайн тестування з механіки запропоновано.

На поліграфі

Великі компанії при прийомі працювати користуються мобільним апаратним комплексом .

Чи може роботодавець застосувати детектор брехні?

Закон не забороняє.

Трудовий кодекс дозволяє отримати інформацію про співробітника, яка не викликає сумнівів. Але кандидат вправі відмовитися від перевіркичесність, якщо вважає це приниженням його людської гідності.

У чому полягає процес тестування? Запитання трьох видів: настроювальні, корекційні та фактичні.

Якщо відповіді останні два чесні, фізіологічні параметри людини однакові. Вони трансформуються, якщо людина каже неправду. Це фіксується апаратом.

Від "Поліграфа" не сховається тяжіння до вживання алкоголю; наркотиків, злодійства, ігрової залежності, чи є кредити, кримінальне минуле і навіть засуджені родичі; чи здатна людина завдати шкоди компанії.

Відповіді дають безпомилкове судження про кандидата. Після закінчення перевірки роботодавець вирішує: кандидат працюватиме чи ні.

"Продайте ручку"

Для претендентів, які бажають працювати в торговій сфері, фахівці проводять популярний тест"Продайте мені ручку".

Пропонується будь-який предмет: ручка, олівець, блокнот, називається ціна. Не можна обміняти чи подарувати. Йому слід продати цю річ протягом п'яти хвилин. Роботодавець виступає у ролі покупця.

Така ситуація для кандидата стрес, оскільки близька до реального стану продажу. Випробування проводилося багато разів на незліченних співбесідах. В результаті, наймач отримує об'єктивний погляд на навички та технікумайбутнього менеджера з продажу.

Резюме


Тож чи варто намагатися застосовувати тести при доборі персоналу?

Професійні співробітники— це дуже відповідальний етап управління організацією, гарантія успіху, це скарб, який слід оберігати.

Якщо вибір правильний, то підвищується продуктивність, працездатністьвсіх працівників організації.

Помилки коштують дорого. Вміння брати на роботу – справжній талант, який ще й не часто трапляється.