База знань

Чому тестування необхідне?

software-testing-11

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

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

Коли ми щось тестуємо, то задаємо собі просте запитання: «чи працює це так, як ми очікуємо?» Або, іншими словами: чи відповідає реальна поведінка об’єкта тестування нашим очікуванням? Якщо відповідь позитивна – чудово, якщо ні, – ми обмануті у своїх очікуваннях, а значить щось потрібно виправляти.

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

Те ж саме справедливо і для програмного забезпечення (англ. Software).

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

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

Однак не всі помилки однаково небезпечні – для різних програмних систем рівні ризику можуть відрізнятися.

Ризик (risk):

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

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

Наприклад, одна і та ж незначна помилка, скажімо описка, може мати абсолютно різні рівні ризику для різних програм:

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

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

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

Набагато більше інформації на курсі Базовий модуль тестування