Спеціальне тестування – це тип тестування програмного забезпечення, який розробники та софтверні компанії застосовують під час перевірки поточної ітерації програмного забезпечення. Ця форма тестування дає більш глибоке розуміння програми, виявляючи проблеми, які звичайне тестування може не виявити.
Вкрай важливо, щоб команди тестувальників повністю розуміли процес спеціального тестування, щоб вони знали, як обійти його труднощі і переконатися, що команда може успішно реалізувати цю техніку.
Точне знання того, як працює спеціальне тестування і які інструменти можуть полегшити його проведення, дозволяє бізнесу постійно вдосконалювати власні процедури забезпечення якості. Формальний процес тестування слідує дуже специфічним правилам, що може призвести до того, що команда пропустить певні помилки – спеціальні перевірки можуть обійти ці сліпі зони і швидко протестувати кожну функцію програмного забезпечення.
У цій статті ми детально розглянемо спеціальне тестування і те, як ви можете використовувати його на свою користь при розробці програмного продукту.
Значення спеціального тестування: Що таке спеціальне тестування?
Спеціальне тестування – це процес забезпечення якості, який уникає формальних правил і документації, допомагаючи тестувальникам знаходити помилки в застосунках, які звичайні підходи не можуть виявити. Зазвичай це вимагає всебічних знань про програмне забезпечення до початку тестування, включаючи розуміння внутрішньої роботи програми. Ці спеціальні перевірки мають на меті зламати програму так, щоб вона відображала вхідні дані користувача, враховуючи різні потенційні ситуації, щоб розробники могли виправити будь-які існуючі проблеми.
Відсутність документації є основною проблемою цього методу, який не містить контрольних списків або тестових кейсів, які б допомогли тестувальникам розібратися з функціями додатку. Спеціальне тестування – це тестування програмного забезпечення у будь-який спосіб, який команда вирішить вважати ефективним у цей конкретний момент. При цьому можуть бути враховані попередні формальні тести, але також може бути просто проведено якомога більше тестів за (ймовірно, обмежений) час, відведений для цього методу.
1. Коли і навіщо потрібно проводити Ad-Hoc тестування в тестуванні програмного забезпечення?
Основна причина, чому компанії проводять спеціальне тестування, полягає в його здатності виявляти помилки, які не можуть бути знайдені традиційними підходами. Це може бути пов’язано з низкою причин, наприклад, зі звичайними тестовими кейсами, що проходять за особливо стандартизованим процесом, який не може врахувати індивідуальні особливості програми.
Кожен тип тестування може запропонувати нові перспективи та цікаві підходи до забезпечення якості – це також свідчить про проблеми зі звичайною стратегією тестування. Наприклад, якщо спеціальне тестування може виявити проблему, яку не вирішують тестові кейси команди, це означає, що вони можуть отримати вигоду від перекалібрування методології тестування.
Тестувальники можуть проводити спеціальні перевірки в будь-який момент процесу тестування. Зазвичай це слугує доповненням до традиційного (і більш формального) забезпечення якості, і з огляду на це, тестувальники можуть проводити спеціальні перевірки, в той час як їхні колеги проводять більш формальні експертизи. Однак, вони можуть відкласти спеціальні перевірки до завершення формального процесу тестування, щоби в подальшому виявити потенційні “сліпі зони”.
Спеціальне тестування також може бути корисним, коли час особливо обмежений через брак документації – правильний час залежить від компанії та її підходу, якому вона надає перевагу.
2. Коли не потрібно проводити спеціальне тестування
Якщо немає достатньо часу для виконання спеціального та формального тестування, важливо, щоб команда надала пріоритет останньому, оскільки це забезпечить значне покриття тестів – навіть якщо деякі прогалини все ще існують.
Якщо формальне тестування команди виявляє помилки, які потребують виправлення, зазвичай краще почекати, поки розробники не внесуть необхідні зміни, щоб провести спеціальні перевірки. Інакше результати, які вони надають, можуть незабаром застаріти, особливо якщо тести стосуються компонента, в якому вже є помилки.
Крім того, перед етапом бета-тестування необхідно провести спеціальне тестування.
3. Хто бере участь у спеціальному тестуванні?
У процесі спеціального тестування є кілька ключових ролей, зокрема
– Тестувальники програмного забезпечення – це основні члени команди, які проводять спеціальні перевірки. Якщо ви проводите тестування в парі, то кілька тестувальників будуть працювати разом над одними і тими ж компонентами.
– Розробники можуть самостійно використовувати ці перевірки до формального етапу забезпечення якості, щоб швидко перевірити власне програмне забезпечення, хоча це менш глибока перевірка, ніж спеціальне спеціальне тестування.
– Керівники команд або відділів затверджують загальну стратегію тестування, допомагаючи тестувальникам визначити, коли починати спеціальне тестування і як його проводити, не порушуючи інших перевірок.
Переваги спеціального тестування
Переваги спеціального тестування в тестуванні програмного забезпечення включають в себе наступні:
1. Швидкі рішення
Оскільки ці тести не передбачають частого документування до, під час або після перевірки, команди можуть виявляти проблеми набагато швидше. Ця простота надає тестувальникам величезну свободу.
Наприклад, якщо вони тестують компонент і не можуть виявити жодних помилок, команда може просто перейти до наступного тесту, не зазначаючи цього в документі.
2. Доповнює інші типи тестування
Жодна стратегія тестування не є ідеальною, і 100% покриття зазвичай неможливо досягти – навіть за наявності вичерпного графіка. У традиційному тестуванні завжди будуть прогалини, тому важливо, щоб компанії інтегрували кілька підходів.
Спеціальне тестування має на меті знайти проблеми, які формальне тестування не може охопити, гарантуючи ширше загальне покриття тестом.
3. Гнучке виконання
Спеціальне тестування може відбуватися на будь-якому етапі процесу забезпечення якості перед бета-тестуванням, дозволяючи компаніям і командам вирішувати, коли найкраще виконувати ці перевірки. Вони можуть вирішити провести спеціальні тести паралельно зі звичайним тестуванням або зачекати до його завершення – в будь-якому випадку, команда отримує вигоду від вибору, який є в їхньому розпорядженні.
4. Більша співпраця
Розробники більше залучені до цього процесу, ніж до багатьох інших форм тестування – особливо якщо компанія використовує тестування для друзів та пар.
В результаті розробники отримують краще розуміння власних додатків і можуть виправляти помилки на більш високому рівні. Це допомагає ще більше покращити загальну якість програмного забезпечення.
5. Різноманітні перспективи
Спеціальне тестування може показати додаток з нових сторін, допомагаючи тестувальникам взаємодіяти з цими функціями по-новому. Додаткові перспективи є критично важливими під час тестування, оскільки формальні перевірки часто мають принаймні незначні прогалини.
Якщо спеціальні тестувальники використовують програмне забезпечення з конкретним наміром зламати його, вони зможуть легше визначити межі програми.
Проблеми спеціального тестування
Процес спеціального тестування також має ряд проблем, таких як
1. Труднощі зі звітністю
Відсутність документації робить спеціальне тестування набагато швидшим, але також може ускладнити звітування про будь-що, окрім основної проблеми.
Наприклад, одна раніше проведена перевірка може стати більш актуальною пізніше, хоча спочатку вона не призвела до значних результатів. Без вичерпної документації команда не зможе пояснити ці тести.
2. Менш повторювані
Аналогічно, тестувальники можуть не до кінця усвідомлювати, які саме умови викликають реакції, які вони спостерігають. Наприклад, спеціальна перевірка, яка повертає помилку, може не містити достатньо інформації для того, щоб команда могла вжити заходів. Вони можуть не знати, як повторити цей тест і отримати той самий результат.
3. Потрібен досвід роботи з програмним забезпеченням
Оскільки швидкість є ключовим фактором під час спеціального тестування, а воно зазвичай передбачає спробу зламати додаток, важливо, щоб ці тестувальники мали глибоке розуміння програми.
Знання того, як це працює, дозволяє тестувальникам зламувати та маніпулювати програмним забезпеченням у більшій кількості способів, але це може значно підвищити вимоги до навичок для спеціального тестування.
4. Обмежена відповідальність
Відсутність документації може спричинити більше проблем, ніж просто погана звітність; вона також може ненавмисно подовжити процес тестування, впливаючи на корисність швидких індивідуальних спеціальних тестів.
Тестувальникам важко відстежувати свій прогрес без достатньої документації на кожному етапі. Це може навіть призвести до того, що вони повторюватимуть перевірку, яку вже виконали інші тестувальники.
5. Може не відображати досвід користувача
Метою практично кожного типу тестування є виявлення помилок, які певним чином впливають на кінцевих користувачів. Спеціальне тестування в першу чергу покладається на досвідченого тестувальника, який намагається імітувати недосвідченого користувача, і це повинно бути послідовним у кожній перевірці, аж до спроб зламати додаток.
Характеристики спеціальних тестів
Основні характеристики успішних спеціальних тестів включають
1. Розслідування
Основним пріоритетом спеціального тестування є виявлення помилок у додатку за допомогою методів, які звичайні перевірки не враховують. Спеціальні експертизи прочісують це програмне забезпечення з єдиною метою – знайти дірки в процедурі тестування команди, в тому числі в покритті їхніх тестових кейсів.
2. Неструктурований
Спеціальні перевірки зазвичай не мають чіткого плану, окрім проведення якомога більшої кількості тестів поза типовими межами формального забезпечення якості. Тестувальники зазвичай групують перевірки за компонентами для зручності, але навіть це не обов’язково – вони можуть навіть придумувати перевірки під час їх виконання.
3. На основі досвіду
Спеціалізовані тестувальники використовують свій попередній досвід роботи з програмним забезпеченням, щоб оцінити, які тести принесуть найбільшу користь і усунути загальні “сліпі зони” формального тестування.
Хоча процес тестування все ще повністю не структурований, тестувальники застосовують знання попередніх спеціальних перевірок, серед іншого, при виборі стратегії.
4. Широкомасштабний
Не існує точних інструкцій щодо того, які саме перевірки команда повинна виконувати під час спеціального тестування, але вони зазвичай охоплюють цілий ряд компонентів – можливо, з більшою увагою до більш чутливих аспектів додатку. Це допомагає тестувальникам гарантувати, що їхні іспити здатні повністю доповнити формальне тестування.
Що ми перевіряємо в спеціальних тестах?
Команди забезпечення якості зазвичай перевіряють наступне під час спеціального тестування:
1. Якість програмного забезпечення
Ці перевірки спрямовані на виявлення помилок у додатку, які не можуть бути виявлені звичайним тестуванням; це означає, що процес в основному перевіряє загальний стан додатку.
Чим більше помилок може виявити спеціальне тестування, тим більше покращень розробники зможуть впровадити до дедлайну.
2. Тестові кейси
Спеціальне тестування, як правило, не використовує тестові кейси – і це спеціально для того, щоб команда могла дослідити, наскільки ефективно вони забезпечують достатнє покриття. Тестові кейси, ймовірно, неадекватні, якщо спеціальні перевірки можуть виявити помилки, які звичайні процеси тестування не можуть.
3. Персонал для тестування
Метою також може бути перевірка навичок і знань команди тестувальників, навіть якщо тестові кейси адекватні. Наприклад, їхня методологія реалізації кейсів може бути недостатньою, а спеціальне тестування може мати вирішальне значення для усунення прогалин у тестовому покритті.
4. Обмеження програмного забезпечення
Спеціальне тестування також має на меті зрозуміти межі можливостей програми – наприклад, як вона реагує на несподівані вхідні дані або високе навантаження на систему. Тестувальники можуть спеціально досліджувати повідомлення про помилки програми і те, наскільки добре ця програма працює під значним навантаженням.
Проясняю деяку плутанину:
Спеціальне тестування та розвідувальне тестування
Дехто вважає, що спеціальне та дослідницьке тестування є синонімами, хоча насправді все набагато складніше.
1. Що таке дослідницьке тестування?
Дослідницьке тестування відноситься до процедур забезпечення якості, які досліджують програмне забезпечення з цілісної точки зору і спеціально об’єднують процеси виявлення і тестування в єдиний метод. Це, як правило, щось середнє між повністю структурованим тестуванням та спеціальними перевірками у довільній формі.
Дослідницьке тестування найкраще працює в конкретних сценаріях, наприклад, коли необхідний швидкий зворотній зв’язок або якщо команда повинна вирішити нестандартні ситуації. Цей тип тестування зазвичай досягає свого повного потенціалу, коли команда використовує разом з ним скриптове тестування.
2. Відмінності між дослідницьким тестуванням
та спеціальне тестування
Найбільша відмінність між спеціальним і дослідницьким тестуванням полягає в тому, що перше використовує документацію для фіксації та полегшення перевірок, тоді як спеціальне тестування повністю уникає цього. Дослідницьке тестування робить більший акцент на свободі тестування, але ніколи не доходить до такого рівня, як спеціальний підхід, який є повністю неструктурованим.
Під час таких перевірок також відбувається вивчення програми та її внутрішньої роботи – натомість спеціальні тестувальники часто мають вичерпні знання про функціонал програмного забезпечення ще до того, як починають роботу.
Типи спеціальних тестів
У тестуванні програмного забезпечення існують три основні форми спеціального тестування, зокрема:
1. Тестування на мавпах
Мабуть, найпопулярнішим типом спеціального тестування є “мавпячі тести”, коли команда випадковим чином переглядає різні компоненти.
Зазвичай це відбувається під час процесу модульного тестування і передбачає серію перевірок без жодних тестових кейсів. Тестувальники самостійно досліджують дані в абсолютно неструктурованому вигляді, що дозволяє їм вивчити систему в цілому та її здатність протистояти інтенсивному навантаженню, спричиненому користувацькими входами.
Спостереження за результатами роботи цих нескриптованих методів допомагає команді тестувальників виявити помилки, які інші юніт-тести пропустили через недоліки звичайних методів тестування.
2. Дружнє тестування
В ситуативному контексті в дружніх тестах беруть участь щонайменше два співробітники – зазвичай тестувальник і розробник – і проводять їх переважно після етапу модульного тестування. “Друзі” працюють разом над одним модулем, щоб виявити помилки. Різноманітні навички та всебічний досвід роблять їх більш ефективною командою, що допомагає вирішити багато проблем, які виникають через брак документації.
Розробник може навіть сам запропонувати ряд тестів, щоб визначити компоненти, які потребують більшої уваги.
3. Парне тестування
Парне тестування схоже тим, що в ньому беруть участь два співробітники, але зазвичай це два окремі тестувальники, один з яких виконує власне тести, а інший робить нотатки.
Навіть без офіційної документації, ведення нотаток може дозволити команді неформально відстежувати окремі спеціальні перевірки. Ролі тестувальника і писаря можуть змінюватися залежно від тесту, або пара може зберігати свої ролі протягом усього процесу.
Тестувальник, який має більше досвіду, зазвичай виконує фактичні перевірки – хоча вони завжди діляться роботою один з одним.
Ручні чи автоматизовані спеціальні тести?
Автоматизоване тестування може допомогти командам заощадити ще більше часу на етапі забезпечення якості, що дозволить тестувальникам вписати більше перевірок у свій графік. Навіть без певної структури важливо, щоб тестувальники працювали над максимальним покриттям, а автоматизація заохочує до більш глибоких перевірок цього програмного забезпечення.
Автоматизовані спеціальні перевірки, як правило, більш точні, ніж ручні тести, завдяки їх здатності уникати людських помилок при виконанні рутинних завдань – це особливо корисно при виконанні одних і тих же тестів на різних ітераціях. Успіх цієї процедури зазвичай залежить від обраного командою інструменту автоматизованого тестування та його функціональності.
Однак автоматизоване тестування має певні обмеження. Наприклад, основною перевагою спеціального тестування є його здатність імітувати введення даних користувачем і здійснювати випадкові перевірки в міру того, як тестувальник їх придумує. Ці тести можуть втратити свою випадковість, якщо програма тестування в організації бореться зі складними перевірками.
Час, необхідний для автоматизації цих дуже специфічних завдань, може також обмежити типову економію часу в цьому процесі. Важливо, щоб команди ретельно вивчили доступні інструменти автоматизації, щоб знайти той, який відповідає проекту їхньої компанії.
Що потрібно для початку спеціального тестування?
Ось основні передумови спеціального тестування:
1. Кваліфікований персонал
Оскільки спеціальні тести – це швидкі, випадкові перевірки внутрішньої роботи програмного забезпечення, зазвичай корисно залучати тестувальників, які мають досвід роботи з програмним забезпеченням. Вони також повинні мати практичні знання ключових принципів тестування – це дозволить їм легко визначити найбільш ефективні перевірки.
2. Неструктурований підхід
Тестувальники повинні бути готові відмовитися від своїх звичних стратегій для спеціального тестування; цей спосіб мислення так само важливий, як і сама перевірка якості. Цей метод може бути успішним лише без структури або документації, і дуже важливо, щоб тестувальники пам’ятали про це на кожному етапі.
3. Програмне забезпечення для автоматизації
Хоча спеціальне тестування більше покладається на перевірку випадкових вхідних даних та умов, автоматизація все ще залишається дуже ефективною технікою в будь-якому контексті.
З цієї причини під час спеціальних перевірок все одно слід застосовувати автоматизовані інструменти тестування, якщо це можливо, оскільки правильний додаток може значно спростити процес.
4. Інші форми тестування
Спеціальні тести найкраще працюють разом з іншими перевірками, які використовують більш формальний підхід, допомагаючи команді гарантувати значне покриття всього програмного забезпечення. Дуже важливо, щоб тестувальники поєднували різні методи, хоча це може відбуватися до, під час або після завершення спеціального тестування.
Процес спеціального тестування
Звичайні кроки, яких повинні дотримуватися тестувальники, коли вони виконують спеціальне тестування при тестуванні програмного забезпечення, є наступними:
1. Визначення цілей спеціального тестування
Цей етап обмежений через брак документації та структури, але все одно дуже важливо, щоб команда мала чіткий фокус. Тестувальники можуть почати ділитися розпливчастими ідеями про те, які майбутні тести запускати і яким компонентам надавати пріоритет.
2. Відбір спеціальної тестової команди
Під час мозкового штурму команда обмірковує низку потенційних спеціальних перевірок, а також визначає, які тестувальники найкраще підійдуть для цього типу тестування. Зазвичай вони обирають тестувальників, які глибоко розуміються на застосунку, а також можуть об’єднати їх у пару з розробником.
3. Виконання спеціальних тестів
Вирішивши, хто з тестувальників підходить для цього етапу, ці члени команди починають перевірку в узгодженому місці тестування. Їх мета – виконати якомога більше спеціальних перевірок, які тестувальники можуть не придумати до цього етапу.
4. Оцінка результатів тестування
Після завершення тестів (або навіть між окремими перевірками) тестувальники оцінюють результати, але без формального документування їх у тестовому кейсі. Якщо вони виявляють якісь проблеми з додатком, вони неформально фіксують їх і обговорюють наступні кроки команди.
5. Повідомлення про виявлені помилки
Оцінивши результати, тестувальники повинні повідомити розробникам про помилки, наявні в програмному забезпеченні, щоб у них було достатньо часу виправити їх до релізу.
Команда тестувальників також використовує цю інформацію, щоб визначити, як покращити свої формальні процеси тестування.
6. Повторне тестування за необхідності
Команда тестувальників, ймовірно, повторить спеціальний процес для нових ітерацій програми, щоб перевірити, наскільки добре вона обробляє оновлення. Оскільки тестувальники виправлять багато з раніше виявлених прогалин у своїх тестових кейсах, майбутні спеціальні перевірки можуть вимагати іншого підходу.
Найкращі практики для спеціального тестування
Існують певні практики, які команди тестувальників повинні застосовувати під час спеціального тестування, зокрема:
1. Цільові потенційні прогалини в тестуванні
Хоча спеціальне тестування передбачає набагато менше планування, ніж інші типи, команда все одно прагне усунути недоліки в забезпеченні якості. Якщо позаштатні тестувальники підозрюють якісь конкретні проблеми з тестовими кейсами команди, вони повинні визначити це як пріоритет під час перевірки.
2. Розглянемо програмне забезпечення для автоматизації
Стратегії автоматизації, такі як гіперавтоматизація, можуть запропонувати багато переваг компаніям, які хочуть проводити спеціальні тести.
Успіх цього залежить від кількох ключових факторів, включаючи інструмент, який обирає бізнес, а також загальну складність спеціальних тестів.
3. Робіть вичерпні нотатки
Відсутність документації при спеціальному тестуванні має на меті ще більше спростити цей процес – команда могла б отримати користь, роблячи неформальні нотатки в процесі роботи. Це дає тестувальникам чіткий запис цих перевірок та їх результатів, що підвищує загальну повторюваність.
4. Продовжуйте вдосконалювати тести
Спеціалізовані тестувальники постійно вдосконалюють свій підхід, щоб врахувати зміни в стратегії тестування команди. Наприклад, при перевірці нових версій програмного забезпечення компанії, вони можуть скоригувати ці перевірки у відповідь на новіші та більш інклюзивні формальні тестові кейси.
7 помилок та підводних каменів у впровадженні
Спеціальні тести
Як і в будь-якому процесі тестування, існує широкий спектр потенційних помилок, яких команда повинна уникати, наприклад, таких:
1. Недосвідчені тестувальники
Щоб підтримувати очікуваний темп спеціального тестування, керівник команди повинен призначати тестувальників на основі знань і навичок, якими вони володіють. Хоча для багатьох форм тестування може підійти персонал початкового рівня забезпечення якості, для спеціальних перевірок потрібні члени команди, які повністю розуміють програмне забезпечення; бажано, щоб вони мали досвід проведення таких тестів.
2. Нецільові перевірки
Спеціальне тестування може значно покращити тестове покриття завдяки швидшому темпу – команді не потрібно заповнювати обширну документацію до і після кожної перевірки.
Однак спеціальні тестувальники все одно повинні зберігати чітку спрямованість; наприклад, вони можуть вирішити надати пріоритет певним компонентам з більшим ризиком збою.
3. Ніякого планування
Відсутність будь-якого плану може обмежити ефективність спеціального тестування. Незважаючи на неструктурований характер цього підходу, важливо, щоб команда мала приблизне уявлення про те, які тести потрібно провести, перш ніж почати.
Час у цьому процесі обмежений, і знання того, як діяти далі, може дати багато переваг.
4. Надмірно структурований
На протилежному кінці спектру цей підхід зазвичай спирається на відсутність планування, оскільки це допомагає тестувальникам активно підміняти тестові кейси і знаходити приховані помилки.
Спеціальне тестування також відоме як випадкове тестування, і примусове включення структури до нього може завадити цим перевіркам виявити помилки.
5. Відсутність довгострокових змін
Мета спеціального тестування – виявити будь-які слабкі місця в тестових кейсах команди; при цьому перевіряється не тільки сама програма, але й загальна стратегія.
Однак це означає, що спеціальні тести, як правило, ефективні лише тоді, коли команда використовує цю інформацію для вдосконалення своїх формальних перевірок з часом.
6. Несумісні набори даних
Практично кожна форма тестування вимагає імітаційних даних для оцінки реакції програми; деякі інструменти дозволяють тестувальникам автоматично заповнювати програму імітаційними даними.
Однак це може не відображати того, як користувач буде взаємодіяти з програмою – спеціальні перевірки вимагають наборів даних, з якими програма, ймовірно, зіткнеться.
7. Інформаційні сховища
Дуже важливо, щоб тестувальники і розробники постійно спілкувалися один з одним, навіть якщо це не є частиною процесу спеціального тестування.
Це допомагає всім зрозуміти, які тести були проведені, показуючи наступні дії, які потрібно виконати, а також запобігає непотрібному повторенню певних перевірок тестувальниками.
Типи результатів спеціальних тестів
Спеціальні перевірки дають кілька різних результатів, зокрема
1. Результати тестування
Окремі тести дають різні результати, які залежать від конкретного компонента та підходу – це може мати різні форми.
Зазвичай тестувальник несе відповідальність за визначення того, чи є результати помилковими, хоча брак документації ускладнює порівняння результатів з його очікуваннями. Команда передає ці результати розробникам, якщо вони помічають якісь проблеми.
2. Журнали випробувань
Саме програмне забезпечення використовує складну систему внутрішніх журналів для моніторингу вводу даних користувачем і висвітлення низки проблем з файлами або базами даних, які можуть виникнути.
Це може вказувати на внутрішню помилку, в тому числі на конкретну частину програмного забезпечення, що спричиняє проблему. Маючи цю інформацію, спеціальні тестувальники та розробники можуть набагато легше вирішувати проблеми, які вони виявляють.
3. Повідомлення про помилки
Багато спеціальних перевірок спеціально спрямовані на те, щоб зламати програмне забезпечення і виявити його обмеження, а це означає, що повідомлення про помилки програми є одним з найпоширеніших результатів таких тестів.
Навмисно викликаючи повідомлення про помилки, команда може продемонструвати, що бачить пересічний кінцевий користувач, коли несподівані дії, які він виконує, негативно впливають на роботу програми.
Приклади спеціального тестування
Ось три спеціальні сценарії тестування, які показують, як команда може реалізувати його для різних додатків:
1. Веб-додаток для електронної комерції
Якщо компанія хоче протестувати веб-додаток на основі електронної комерції, вона може скористатися спеціальним тестуванням, зокрема тестуванням на мавпах, щоб побачити, наскільки добре платформа справляється з несподіваними взаємодіями з користувачами.
Тестувальники можуть прагнути довести кожну функцію до межі, наприклад, додаючи товари до кошика в нереальній кількості або намагаючись купити товари, яких немає в наявності. Вони не обмежені тестовими кейсами команди, і існує мало обмежень щодо перевірок, які вони можуть виконувати; тестувальники можуть навіть намагатися завершити покупки за застарілими URL-адресами.
2. Десктопний додаток
Спеціальні тестувальники також можуть застосовувати ці методи для настільних додатків, зосереджуючи увагу на різних машинах і на тому, наскільки добре кожна з них пристосована до програми.
Члени команди можуть повторювати ці перевірки, щоб побачити, як зміна апаратних чи програмних налаштувань впливає на загальну продуктивність програми. Наприклад, певна відеокарта може не впоратися з рендерингом інтерфейсу.
Крім того, ці тестувальники можуть просто дати програмі неможливі вхідні дані і подивитися, як вона реагує, наприклад, чи може вона правильно відображати повідомлення про помилки, які адекватно пояснюють проблему кінцевому користувачеві.
3. Мобільний додаток
Один із способів, яким спеціальні тестувальники можуть перевірити мобільний додаток, – це протестувати його протоколи безпеки, наприклад, спробувати отримати прямий доступ до інструментів розробки додатку.
Команда може спробувати з’ясувати, чи зможуть вони виконати несанкціоновані дії, знайшовши загальні лазівки та експлойти; вони можуть спеціально попросити співробітників, які мають досвід у сфері безпеки додатків, посприяти в цьому.
Це також може включати парне тестування з розробниками через їхнє розуміння дизайну програми, що дозволяє тестувальнику зламати програмне забезпечення і показати, де саме в ньому бракує безпеки.
Типи виявлених помилок та багів
за допомогою спеціального тестування
Спеціальні перевірки можуть виявити багато проблем з програмою, наприклад, такі:
1. Функціональні помилки
Використання спеціального тестування для вивчення основних функцій програми може виявити серйозні помилки, які впливають на те, як кінцеві користувачі можуть взаємодіяти з нею.
Наприклад, мавпа, яка тестує способи оплати на сайті електронної комерції, проілюструє умови, що перешкоджають здійсненню транзакції.
2. Питання продуктивності
Тестувальники можуть спеціально працювати над створенням проблем з продуктивністю програми – наприклад, заповнюючи базу даних різноманітним спамом.
Це може проявлятися у вигляді значних затримок або навіть загальної нестабільності програмного забезпечення, що, ймовірно, призведе до (потенційно загальносистемного) збою.
3. Проблеми з юзабіліті
Ці перевірки також можуть виявити недоліки в інтерфейсі та загальному користувацькому досвіді. Наприклад, інтерфейс мобільного додатку може виглядати по-іншому на іншій операційній системі або з іншою роздільною здатністю екрану. Поганий інтерфейс може призвести до того, що користувачам буде важко працювати з цим додатком.
4. Недоліки безпеки
Випадковий характер спеціального тестування дозволяє йому охопити цілий ряд поширених і рідкісних проблем безпеки; тестувальник може використовувати ці перевірки для пошуку адміністративних бекдорів у програмі.
Крім того, перевірка може показати, що програмне забезпечення не шифрує дані.
Загальні метрики спеціального тестування
Спеціальне тестування використовує різні метрики для полегшення його результатів, зокрема:
1. Ефективність виявлення дефектів
Ця метрика показує, наскільки ефективним є процес тестування для виявлення дефектів у кожній формі тестування, включаючи спеціальне тестування. Ефективність виявлення дефектів – це відсоток виявлених дефектів, поділений на загальну кількість проблем – показує, наскільки ефективні тести.
2. Рівень тестового покриття
Допоміжною функцією спеціального тестування є збільшення покриття за рахунок перевірки компонентів у спосіб, який не враховують тестові кейси. Це означає, що тестувальники також прагнутимуть радикально збільшити тестове покриття для кожної перевірки, наскільки це можливо.
3. Загальна тривалість тесту
Спеціальне тестування відбувається набагато швидше, ніж інші процеси забезпечення якості – і дуже важливо, щоб тестувальники працювали над збереженням цієї переваги. Показники тривалості тестування показують членам команди, як вони можуть заощадити час і ще більше посилити переваги спеціальних стратегій.
4. Рівень аварійності
Ці тести часто мають на меті зламати програмне забезпечення і спричинити збій або серйозну помилку, що дозволяє їм вийти за рамки типових стратегій тестування і знайти несподівані проблеми. З цією метою може бути корисно знати, як часто програмне забезпечення виходить з ладу і що спричиняє ці проблеми.
5 найкращих інструментів для спеціального тестування
Існує багато безкоштовних і платних інструментів для спеціального тестування в тестуванні програмного забезпечення – п’ять найкращих з них наведені нижче:
1. ZAPTEST Free & Enterprise Edition
ZAPTEST – це комплексна програма для тестування програмного забезпечення, яка забезпечує потужний рівень тестування + RPA-функціональність як у безкоштовній, так і в корпоративній версіях.
Цей повний пакет автоматизації програмного забезпечення + RPA Suite дозволяє проводити повне тестування на різних настільних і мобільних платформах; технологія 1SCRIPT також дозволяє користувачам з легкістю виконувати одні й ті ж перевірки багаторазово. Крім того, інструмент використовує сучасний комп’ютерний зір, що дозволяє ZAPTEST проводити спеціальні тести з точки зору людини.
2. BrowserStack
BrowserStack – це хмарна платформа, яка може полегшити тестування на більш ніж 3000 різних машин, з додатковою функцією автоматизації скриптів Selenium. Хоча він забезпечує потужне покриття для програмних проектів, найкраще він працює з браузерними та мобільними додатками.
Рішення для тестування BrowserStack також включають безкоштовну пробну версію зі 100 хвилинами автоматизованого тестування – хоча це може мати обмежене застосування.
Хоча хмарний підхід може бути корисним, він також негативно впливає на час відгуку платформи.
3. Лямбда-тест
LambdaTest також використовує хмарні технології і робить сильний акцент на тестуванні браузерів, що може обмежити його ефективність для інших додатків – хоча він все ще добре поєднується з програмами для iOS і Android. Це корисна платформа, якщо вам важлива масштабованість, і вона інтегрується з багатьма іншими послугами тестового хостингу.
Однак деякі користувачі неоднозначно реагують на ціну програми в різних доступних не пробних варіантах, що потенційно обмежує доступ до неї для невеликих організацій.
4. TestRail
TestRail, як правило, досить адаптивний завдяки тому, що працює повністю в браузері, і, незважаючи на сильний акцент на ефективних тестових кейсах, також може похвалитися прямим функціоналом для конкретних випадків. Аналітика, яку він надає після кожного тесту, також може допомогти командам, які активно уникають створення власної незалежної документації, але при цьому дозволяють їм перевіряти свій процес тестування.
Однак більші пакети можуть мати проблеми з його форматом на основі браузера, що може суттєво обмежити економію часу при спеціальному тестуванні.
5. Зефір
Zephyr – це платформа управління тестуванням від SmartBear, яка допомагає командам із забезпечення якості покращити видимість тестування, а також добре інтегрується з іншим програмним забезпеченням для відстеження помилок.
Однак ця функція обмежена певними додатками, серед яких найбільше користі від Zephyr отримують Confluence та Jira – можливо, вони не є найефективнішими рішеннями для кожного бізнесу. Під брендом Zephyr доступно кілька масштабованих програм за різними цінами.
Контрольний список для спеціального тестування, поради та підказки
Ось додаткові поради для команд, які слід враховувати при проведенні спеціального тестування:
1. Визначте пріоритетність чутливих компонентів
Деякі функції або компоненти природно схильні до більшого ризику помилок, ніж інші, особливо якщо вони важливі для загальної роботи програми.
Кожен підхід до тестування повинен визначати частини програми, які можуть виграти від більш ретельної уваги. Це особливо корисно, коли загальний час на тестування обмежений.
2. Вивчіть різні інструменти тестування
Інструмент, який організація впроваджує для полегшення тестування, може вплинути на охоплення та надійність цих перевірок.
При спеціальному тестуванні варто розглянути якомога більше програм, щоб знайти ті, які відповідають його орієнтованому на користувача аспекту. Програмне забезпечення, яке використовує технологію комп’ютерного зору, як-от ZAPTEST, може підходити до спеціальних тестів, використовуючи стратегію, подібну до людської.
3. Прийняти спеціальне мислення
Спеціальне тестування пропонує величезну свободу на етапі забезпечення якості, але команда повинна взяти на себе зобов’язання, щоб отримати ключові переваги стратегії.
Наприклад, спеціальні тестувальники повинні відмовитися від усіх своїх звичайних документів, окрім базових нотаток, і перевіряти програмне забезпечення під абсолютно новим кутом зору.
4. Інстинкти перевірки довіри
Досвід спеціального тестування або загальних перевірок програмного забезпечення може допомогти виявити загальні місця збоїв, а це допоможе тестувальникам визначити, як виявляти помилки всіх типів.
Дуже важливо, щоб тестувальники довіряли своїм інстинктам і завжди використовували ці знання на свою користь – вони можуть інтуїтивно визначити, які спеціальні перевірки будуть найбільш корисними.
5. Повністю фіксувати виявлені помилки
Хоча спеціальне тестування не має формальної документації і здебільшого ґрунтується на неформальних нотатках, все одно важливо, щоб команда була здатна виявити і повідомити причину програмної помилки.
Вони повинні реєструвати будь-яку інформацію, яку надає тест і яка має відношення до розробників, наприклад, будь-які потенційні причини цих проблем.
6. Завжди враховуйте користувача
Кожна форма тестування має на меті певною мірою врахувати загальний досвід користувача – і спеціальне тестування не є винятком. Хоча вони часто більш глибоко вивчають внутрішню роботу програми і навіть її внутрішній код, спеціальні тестувальники повинні намагатися зламати це програмне забезпечення так, як це теоретично могли б зробити користувачі.
7. Постійно вдосконалюйте процес
Команди тестувальників повинні вдосконалювати свій підхід до спеціального тестування між кількома ітераціями одного і того ж програмного забезпечення та від одного проекту до іншого.
Вони можуть збирати відгуки від розробників, щоб дізнатися, наскільки добре їхні спеціальні тести допомогли на етапі забезпечення якості і чи змогли вони значно збільшити тестове покриття.
Висновок
Спеціальне тестування може допомогти організаціям усіх типів перевірити достовірність їхньої стратегії тестування програмного забезпечення, але те, як вони впроваджують цю методику, може бути значним фактором її ефективності.
Баланс між різними типами тестування є ключем до отримання максимальної користі від спеціальних перевірок – особливо з огляду на те, що ця форма тестування покликана доповнювати інші, заповнюючи стратегічні прогалини.
З таким додатком, як ZAPTEST, команди можуть проводити спеціальні тести з більшою впевненістю та гнучкістю, особливо якщо вони впроваджують автоматизацію. Незалежно від конкретного підходу команди, їхня прихильність до спеціального тестування може революціонізувати всю програму або проект.