Логічно дане пояснення мало би бути першим постом у нашому БЛОГ -зі тестувальників. І те що ми трішки запізнилися означає, щоб нам просто-на-просто потрібно було більше часу добре обмізкувати, як краще подавати такого роду об’ємне поняття.

     Зважаючи на загальноприйнятну термінологію ISTQB, визначення: Що це таке тестування програмного забезпечення? у Вікіпедіїй (американській)усе одно у кожного фахівця і експерта у цій галузі своє унікальне пояснення цього терміну. Інколи такий різний зміст вражає!

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

     Зокрема інакшості в трактуванні зумовлено різними цілями, котрі переслідує тестування у тій чи іншій компанії або організації. Нерідко пов’язується із особливостями тестування різних категорій продуктів (медицина, освіта, фінанси, туризм, e-commerce тощо).

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

    Не правильно тільки розглядати визначення Тестування Програмного Забезпечення у надто вузькому сенсі:

Тестування — це пошук помилок (багів) у програмах та додатках.

     Це є визначення поняття Quality Control, як бачите по ілюстрації, Quality Control є лише одним із елементів Тестування Програмного Забезпечення.

QA & QC

    І також трохи завузько розглядати Тестування Програмного Забезпечення тільки в контексті Верифікації & Валідації.

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

З нашого погляду:

Тестування Програмного Забезпечення —  це широкий процес, який складається з декількох взаємопов’язаних процесів. Іншими словами сукупності процесів.

Цілями цих процесів можуть бути:

  • Перевірка ПЗ на відповідність програмного продукту на виході відносно нормативних, бізнес, технічних, функціональних вимог та вимог користувачів.
  • Виявлення технічних помилок/багів з подальшим їх усуненням (Quality Control).
  • Оцінка зручності, продуктивності, безпеки, локалізації, сумісності та встановлення системи… (usability, performance, security, localization, compatibility and installation etc).

Звідси основна мета Тестування Програмного Забезпечення, яка полягає у намаганні виміряти рівень якості програмного забезпечення вцілому з точки зору основних вимог — (Quality Assurance).

ЗВЕРНІТЬ УВАГУ: Тестувальники не виконують жодні дії, які безпосередньо змінюють якість. Виконавши тест, тестувальники не впливають на базовий код, тому якість програмного забезпечення залишається незмінною. Якість програмного продукту може будь-яким чином змінюватися тільки подальшими діями розробників. Якість продукту — це не є лише парафією відповідальності тестувальників. Це відповідальність та ціль усіх членів команди. 

7 головних Testing Principles — посилання до теми

З’їхали з теми, повертаємося 😆 Отже, Які це процеси поєднує Тестування програмного забезпечення? STLC (Software Testing life cycle/Життєвий цикл тестування програмного забезпечення) — це всі дії, що виконуються під час тестування програмного продукту.

чергова Ілюстрація STLC (Software Testing life cycle)

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

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

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

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

Роль тестування в розробці програмного забезпечення

Чому ж тестування в рамках даного процесу настільки важливе? Ось кілька причин:

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

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

А що таке Тестування Програмного Забезпечення для самого тестувальника?

Investigation — Розслідування:

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

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

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

Exploratory — Дослідження

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

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

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

Art — Тестування це творчість

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

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

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

Communication — комунікація

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

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

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

Підсумок:

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

Тестування — це структурована технічна діяльність, це робота, котра дається не легко. З часом потрібно навчитися щось автоматизувати, а це узагалі далеко не просте завдання. Це розуміння рамок автоматизації, визначення моментів, коли слід автоматизовувати, знання коду, знання роботи API, розуміння таких інструментів, як Selenium. Це ще досить багато усього..

Related posts

Leave a Comment

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