Exploratory Testing (дослідницьке тестування)

Exploratory Testing (дослідницьке тестування) — це нестандартизований підхід до тестування, при якому тестувальник одночасно вивчає продукт, проектує тести і виконує їх, не дотримуючись жорстко прописаних тест-кейсів.

Що таке Exploratory Testing?

Це тип тестування, коли:

  • Тестувальник використовує власну інтуїцію, досвід і знання, щоб знаходити помилки.
  • Заздалегідь немає детального плану тестування (або він мінімальний).
  • Тестування виконується динамічно, за принципом “спробуй і подивись, що станеться”.
  • Основна ідея — вивчити поведінку системи, особливо в нестандартних або неочевидних ситуаціях.

Основні риси Exploratory Testing

ХарактеристикаПояснення
НеформальністьЗазвичай не використовуються формальні тест-кейси
ОдночасністьПланування, виконання і аналіз тестів відбуваються одночасно
КреативністьТестувальник застосовує власну креативність та логіку
АдаптивністьПідхід змінюється на ходу в залежності від результатів
ДокументуванняМінімальне або по факту: тестувальник записує результати під час або після тесту

Коли використовувати Exploratory Testing?

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

Переваги

  • Виявляє нестандартні, складні або граничні баги
  • Дає можливість протестувати те, що не враховано в тест-кейсах
  • Швидке охоплення системи
  • Підходить для Agile / Scrum, де зміни постійні

Недоліки

  • Важко відтворити тести, якщо не задокументовано кроки
  • Залежить від досвіду тестувальника
  • Менше контрольоване з точки зору менеджменту
  • Не замінює формального тестування при критичних системах (медичне ПЗ, банківські системи тощо)

Приклад

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

Висновок

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

Smoke Testing та Sanity Testing

Smoke Testing та Sanity Testing — це два типи поверхневого тестування, які використовуються для швидкої перевірки стабільності та готовності програмного продукту до подальшого (глибшого) тестування. Вони дуже схожі, але виконуються в різних ситуаціях і з різною метою.

Smoke Testing (Димове тестування)
Що це?
Це початкове базове тестування програми після нового білду, щоб перевірити, чи основні функції працюють, і чи взагалі є сенс проводити подальше тестування.
Назва походить з апаратного тестування: якщо пристрій “не димить” після увімкнення, з ним можна працювати далі.
Коли виконується?
Після отримання нового білду, перед будь-яким глибшим тестуванням.
Мета:
Перевірити, що критичні функції (логін, навігація, запуск основних модулів) працюють, і продукт не «падає» одразу.
Визначити, чи взагалі білд придатний для подальшого тестування.
Характеристики:
Високорівневе тестування
Покриває всю систему поверхнево
Автоматизоване або ручне
Швидке: займає кілька хвилин до години
Sanity Testing (Тестування працездатності)
Що це?
Це поверхневе тестування конкретної частини програми, зазвичай після виправлення багу або незначної зміни, щоб переконатися, що ця зміна працює як очікується, і не зламала нічого критичного поруч.
Коли виконується?
Після невеликих змін у коді, наприклад:
Виправлення багів
Локальні зміни в логіці
Невеликі UI-оновлення

Мета:
Перевірити, що нововнесені зміни працюють і що ключова пов’язана функціональність не порушена.
Характеристики:
Низькорівневе, вузьконаправлене тестування
Фокусується на одній функціональності або модулі
Зазвичай ручне
Виконується швидко (але може бути частиною регресії)

Основні відмінності

ХарактеристикаSmoke TestingSanity Testing
МетаПеревірити стабільність системи загаломПеревірити логіку після конкретної зміни
Коли використовуєтьсяПісля кожного нового білдуПісля фіксу або малої зміни
ПокриттяШироке, поверхневеВузьке, глибше в рамках однієї фічі
ФокусОсновні функції програмиКонкретна зміна чи баг
АвтоматизаціяЧасто автоматизованеПереважно ручне
Чи продовжувати тестування?Якщо пройдено — запускається повне тестуванняЯкщо пройдено — можна не запускати повну регресію

Висновок

  • Smoke Testing — це питання: “Чи система взагалі працює?”
  • Sanity Testing — це питання: “Чи конкретна зміна не зламала щось важливе?”

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

Дієслова з теми Tagesablauf – частина 1

aufräumen

DeutschТранслітераціяПереклад
Ich räume aufІх рьойме ауфя прибираю
Du räumst aufДу рьоймст ауфти прибираєш
Er/Sie/Es räumt aufЕр/Зі/Ес рьоймт ауфвін/вона/воно прибирає
Wir räumen aufВір рьоймен ауфми прибираємо
Ihr räumt aufІр рьоймт ауфви прибираєте
sie/Sie räumen aufЗі рьоймен ауфВони прибирають / Ви прибираєте

staubsaugen

DeutschТранслітераціяПереклад
Ich staubsaugeІх штаубзауґея пилотяжу
Du staubsaugstДу штаубзауґстти пилотяжиш
Er/Sie/Es staubsaugtЕр/Зі/Ес штаубзауґтвін/вона/воно пилотяже
Wir staubsaugenВір штаубзауґенми пилотяжимо
Ihr staubsaugtІр штаубзауґтви пилотяжите
sie/Sie staubsaugenЗі штаубзауґенВони пилотяжать / Ви пилотяжете

den Abwasch machen

DeutschТранслітераціяПереклад
Ich mache den AbwaschІх махе ден Абвашя мию посуд
Du machst den AbwaschДу махст ден Абвашти миєш посуд
Er/Sie/Es macht den AbwaschЕр/Зі/Ес махт ден Абвашвін/вона/воно миє посуд
Wir machen den AbwaschВір махен ден Абвашми моємо посуд
Ihr macht den AbwaschІр махт ден Абвашви миєте посуд
sie/Sie machen den AbwaschЗі махен ден АбвашВони миють посуд /Ви миєте посуд

aufstehen

DeutschТранслітераціяПереклад
Ich stehe aufіх штее ауфя встаю
Du stehst aufду штест ауфти встаєш
Er/Sie/Es steht aufер/зі/ес штет ауфвін/вона/воно встає
Wir stehen aufвір штеен ауфми встаємо
Ihr steht aufір штет ауфви встаєте
sie/Sie stehen aufзі штеен ауфвони встають / Ви встаєте

einkaufen

DeutschТранслітераціяПереклад
Ich kaufe einіх кауфе айня купую
Du kaufst einду кауфст айнти купуєш
Er/Sie/Es kauft einер/зі/ес кауфт айнвін/вона/воно купує
Wir kaufen einвір кауфен айнми купуємо
Ihr kauft einір кауфт айнви купуєте
sie/Sie kaufen einзі кауфен айнвони купують / Ви купуєте

ein Buch lesen

DeutschТранслітераціяПереклад
Ich lese ein Buchіх лезе айн Бухя читаю книгу
Du liest ein Buchду ліст айн Бухти читаєш книгу
Er/Sie/Es liest ein Buchер/зі/ес ліст айн Бухвін/вона/воно читає книгу
Wir lesen ein Buchвір лезен айн Бухми читаємо книгу
Ihr lest ein Buchір лест айн Бухви читаєте книгу
sie/Sie lesen ein Buchзі лезен айн Бухвони читають книгу /Ви читаєте книгу

fernsehen

DeutschТранслітераціяПереклад
Ich sehe fernіх зее ферня дивлюся телевізор
Du siehst fernду зіст фернти дивишся телевізор
Er/Sie/Es sieht fernер/зі/ес зіст фернвін/вона/воно дивиться телевізор
Wir sehen fernвір зеен фернми дивимося телевізор
Ihr seht fernір зеет фернви дивитесь телевізор
sie/Sie sehen fernзі зеен фернвони дивляться телевізор /Ви дивитесь телевізор

Приклади

DeutschТранслітераціяПереклад
Er räumt das Wohnzimmer auf.Ер рьоймт дас Вонцімме ауф.Він прибирає у вітальні.
Ich muss das Wohnzimmer staubsaugen.Іх мусс дас Вонцімме штаубзауґен.Мені потрібно прибрати вітальню пилотягом.
Ich muss den Abwasch machen.Іх мусс ден Абваш махен.Мені потрібно помити посуд.
Sie steht jeden Morgen um 6 Uhr auf.Зі штет йеден Морґен ум зекс ур ауф.Вона встає кожного ранку о 6 годині.
Er geht am Samstag immer einkaufen.Ер ґет ам Замстаґ імме айнкауфен.Він завжди робить закупівлі в суботу.
Er liest oft ein Buch.Ер ліст офт айн Бух.Він часто читає книгу.
Ich sehe abends fern.Іх зее абендс ферн.Я дивлюся телевізор ввечері.

Для додаткової візуалізації є відео.

Tagesablauf (розпорядок дня)

aufstehen, frühstücken, sich anziehen

DeutschТранслітераціяПереклад
aufstehenауфштеенвстати
frühstückenфрюштюкенснідати
sich anziehenзіх анціенодягатися
Arbeitenарбайтенпрацювати
zur Arbeit gehenцур Арбайт геєнйти на роботу

in der Schule gehen, Mittagessen, spazieren gehen

DeutschТранслітераціяПереклад
in der Schule gehenін дер Шуле ґеенйти до школи
MittagessenМіттаґесенобід
MittagspauseМіттаґзпаузеперерва на обід
spazieren gehenшпацірен ґеенйти на прогулянку
Sport machenшпорт махензайматися спортом

fernsehen, Abendessen, schlafen

DeutschТранслітераціяПереклад
fernsehenфернзеендивитися телевізор
AbendessenАбендесенвечеря
ins Bett gehenінс Бет ґеенйти спати
schlafenшлафенспати
sich ausruhenзіх аусруеенвідпочивати

Wecker, Arbeitstag, Feierabend

DeutschТранслітераціяПереклад
der Weckerдер Векебудильник
der Arbeitstagдер Арбайтстаґробочий день
der Feierabendдер Фаєрабендкінець робочого дня
sich beeilenзіх беайленпоспішати
der Nachmittagдер Нахміттаґпісля обіду

Приклади речень

DeutschТранслітераціяПереклад
Ich stehe um 7 Uhr auf.Іх штеее ум зібен ур ауф.Я встаю о 7 годині.
Ich frühstücke um 8 Uhr.Іх фрюштюке ум ахт уар.Я снідаю о 8 годині.
Nach dem Frühstück gehe ich zur Arbeit.Нах дем фрюштюк ґее іх цур Арбайт.Після сніданку я йду на роботу.
Mittags mache ich eine Pause.Міттаґс махе іх айне паузе.В обід я роблю перерву.
Ich arbeite von 9 bis 17 Uhr.Іх арбайте фон нойн біс зібцен ур.Я працюю з 9 до 17 годин.

І ще кілька прикладів

DeutschТранслітераціяПереклад
Am Nachmittag gehe ich spazieren.Ам Нахміттаґ ґее іх шпацірен.Після обіду я йду на прогулянку.
Abends sehe ich fern.Абендс зее іх ферн.Ввечері я дивлюся телевізор.
Um 22 Uhr gehe ich ins Bett.Ум 22 ур ґее іх інс Бет.О 22 годині я йду спати.
Am Wochenende schlafe ich lange.Ам Вохененде шлафе іх лане.На вихідних я сплю довго.

Dialog

DeutschТранслітераціяПереклад
Anna: Wann stehst du auf?Анна: Ван штест ду ауф?Анна: Коли ти встаєш?
Peter: Ich stehe um 7 Uhr auf.Петер: Іх штее ум зібен ур ауф.Петер: Я встаю о 7 годині.
Anna: Und wann frühstückst du?Анна: Унд ван фрюштюкст ду?Анна: А коли ти снідаєш?
Peter: Ich frühstücke um 8 Uhr.Петер: Іх фрюштюке ум ахт ур.Петер: Я снідаю о 8 годині.
Anna: Was machst du nach dem Frühstück?Анна: Вас махст ду нах дем фрюштюк?Анна: Що ти робиш після сніданку?
Peter: Nach dem Frühstück gehe ich zur Arbeit.Петер: Нах дем фрюштюк ґее іх цур Арбайт.Після сніданку я йду на роботу.
Anna: Und wann gehst du ins Bett?Анна: Унд ван ґест ду інс Бет?Анна: А коли ти лягаєш спати?
Peter: Ich gehe um 22 Uhr ins Bett.Петер: Іх ґее ум цвайундцванцих ур інс Бет.Я йду спати о 22 годині.
Anna: Oh, du bist sehr pünktlich!Анна: О, ду біст зер пюнктліх!О, ти дуже пунктуальний!

Для додаткової візуалізації є відео.

Confirmation testing та Regression testing

Confirmation testing та Regression testing — це два різних типи тестування.

Ось пояснення кожного з них та ключові відмінності:

Confirmation Testing (Підтверджувальне тестування)
Що це?
Це тестування, яке проводиться для перевірки, чи була конкретна помилка виправлена. Його ще називають re-testing.
Коли використовується?
Після того, як розробник виправив баг, тестувальник виконує ті ж самі тест-кейси, які спочатку виявили помилку, щоб переконатися, що проблема більше не виникає.
Мета:
Підтвердити, що конкретний баг виправлено.
Приклад:
Була помилка: при введенні неправильного пароля не показується повідомлення про помилку.
Після виправлення тестувальник перевіряє тільки цю функціональність, щоб упевнитися, що повідомлення тепер з’являється.
Regression Testing (Регресійне тестування)
Що це?
Це тестування, яке виконується для перевірки, що нові зміни (виправлення багів, нові фічі) не спричинили нові помилки у вже працюючому функціоналі.
Коли використовується?
Після внесення змін у код — виправлень, оновлень або нових функцій.
Мета:
Переконатися, що існуюча функціональність не зламалась.
Приклад:
Після додавання нової кнопки на формі входу тестувальник перевіряє всю сторінку входу, включаючи правильну/неправильну авторизацію, поведінку UI, редіректи тощо.

Основні відмінності

ХарактеристикаConfirmation TestingRegression Testing
МетаПеревірити, чи виправлено конкретний багПереконатися, що нічого не зламалось після змін
ОбсягЛокалізований (тільки те, що було виправлено)Широкий (вся пов’язана або вся система)
Засноване наРезультатах попереднього тестування (де знайдено баг)Змінному коді або новому функціоналі
ЧастотаПісля виправлення кожного багуПісля кожного релізу, спринту або великої зміни

Висновок

  • Confirmation testing — це перевірка “Чи виправлено?”
  • Regression testing — це перевірка “Чи не зламалося щось інше?”

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