Людська психологія і тестування (версія 3.1)
У розробці програмного забезпечення, включаючи його тестування, беруть участь люди. Таким чином, людська психологія має важливий вплив на тестування програмного забезпечення.
Виявлення дефектів під час статичного тестування, наприклад перевірки вимог або сеансу вдосконалення історії користувача, або виявлення помилок під час виконання динамічного тестування може сприйматися як критика продукту та його автора. Елемент людської психології, який називається упередженням підтвердження, може ускладнити прийняття інформації, яка суперечить існуючим переконанням. Наприклад, оскільки розробники очікують, що їхній код буде правильним, у них є упередженість підтвердження, через яку важко прийняти те, що код є неправильним. Окрім упередженого підтвердження, інші когнітивні упередження можуть ускладнювати людям розуміння або прийняття інформації, отриманої під час тестування. Крім того, це звичайна людська риса звинувачувати носія поганих новин, а інформація, отримана в результаті тестування, часто містить погані новини.
Внаслідок цих психологічних факторів деякі люди можуть сприймати тестування як деструктивну діяльність, навіть якщо воно значно сприяє просуванню проєкту та якості продукції. Щоб спробувати зменшити це сприйняття, інформацію про дефекти та невдачі слід передавати конструктивно. Таким чином можна зменшити напругу між тестувальниками та аналітиками, власниками продуктів, дизайнерами та розробниками. Це стосується як статичного, так і динамічного тестування.
Тестувальники та керівники тестування повинні мати хороші навички міжособистісного спілкування, щоб мати можливість ефективно спілкуватися про дефекти, збої, результати тестування, прогрес тестування та ризики, а також будувати позитивні стосунки з колегами. Способи гарного спілкування включають такі приклади:
- Почніть зі співпраці, а не з битв. Нагадайте всім про спільну мету покращення якості систем.
- Підкресліть переваги тестування. Наприклад, авторам інформація про дефекти може допомогти покращити їхні робочі продукти та навички. Для організації дефекти, виявлені та виправлені під час тестування, заощадять час і гроші та зменшать загальний ризик для якості продукції.
- Повідомляйте результати тестів та інші висновки нейтрально, зосереджуючись на фактах, не критикуючи людину, яка створила дефектний предмет. Напишіть об’єктивні та фактичні звіти про дефекти та перевірте висновки.
- Спробуйте зрозуміти, що відчуває інша людина та чому вона може негативно відреагувати на інформацію.
- Підтвердьте, що інша особа зрозуміла сказане, і навпаки.
Типові цілі тесту були розглянуті раніше. Чітке визначення правильного набору цілей тесту має важливі психологічні наслідки. Більшість людей схильні узгоджувати свої плани та поведінку з цілями, поставленими командою, керівництвом та іншими зацікавленими сторонами. Також важливо, щоб тестувальники дотримувалися цих цілей з мінімальною особистою упередженістю.
Світогляд тестувальника та розробника (версія 3.1)
Розробники та тестувальники часто думають по-різному. Основною метою розробки є проєктування та створення продукту. Як обговорювалося раніше, цілі тестування включають верифікацію та валідацію продукту, пошук дефектів до випуску тощо. Це різні набори цілей, які вимагають різного мислення. Поєднання цих уявлень допомагає досягти вищого рівня якості продукції.
Ментальні установки відображають припущення людини та її бажані методи прийняття рішень і вирішення проблем. Світогляд тестувальника має включати цікавість, професійний песимізм, критичний погляд, увагу до деталей і мотивацію до хорошого та позитивного спілкування та стосунків. Менталітет тестувальника має тенденцію зростати та дозрівати в міру того, як тестувальник набуває досвіду.
Менталітет розробника може включати деякі елементи мислення тестувальника, але успішні розробники часто більше зацікавлені в проєктуванні та створенні рішень, ніж у міркуванні про те, що з цими рішеннями може бути не так. Крім того, упередженість підтвердження ускладнює усвідомлення помилок, скоєних ними самими.
З правильним мисленням розробники можуть перевірити власний код. Різні моделі життєвого циклу розробки програмного забезпечення часто мають різні способи організації тестувальників і тестової діяльності. Виконання деяких тестів незалежними тестувальниками підвищує ефективність виявлення дефектів, що особливо важливо для великих, складних або важливих для безпеки систем. Незалежні тестувальники представляють перспективу, яка відрізняється від точки зору авторів робочого продукту (тобто бізнес-аналітиків, власників продуктів, дизайнерів і розробників), оскільки вони мають інші когнітивні упередження, ніж автори.
Загальні навички необхідні для тестування (версія 4.0)
Майстерність – це здатність робити щось добре, що випливає з власних знань, практики та здібностей. Хороші тестувальники повинні володіти деякими основними навичками, щоб добре виконувати свою роботу. Хороші тестувальники повинні бути ефективними гравцями в команді та повинні вміти виконувати тестування на різних рівнях незалежності тестування.
Хоча такі навички є загальними, вони особливо актуальні для тестувальників:
- Тестові знання (для підвищення ефективності тестування, наприклад, за допомогою тестових методик)
- Ретельність, уважність, допитливість, увага до деталей, методичність (виявляти недоліки, особливо ті, які важко знайти)
- Хороші комунікативні навички, активне слухання, бути командним гравцем (ефективно взаємодіяти з усіма зацікавленими сторонами, передавати інформацію іншим, бути зрозумілим, повідомляти та обговорювати недоліки)
- Аналітичне мислення, критичне мислення, креативність (для підвищення ефективності тестування)
- Технічні знання (для підвищення ефективності тестування, наприклад, за допомогою відповідних інструментів тестування)
- Знання домену (щоб розуміти кінцевих користувачів/представників бізнесу та спілкуватися з ними)
Тестувальники часто є носіями поганих новин. Це звичайна людська риса – звинувачувати того, хто приніс погані новини. Це робить комунікативні навички вирішальними для тестувальників. Повідомлення результатів тестування може бути сприйнято як критика продукту та його автора. Упередженість підтвердження може ускладнити прийняття інформації, яка суперечить поточним переконанням. Деякі люди можуть сприймати тестування як деструктивну діяльність, навіть якщо воно значною мірою сприяє успіху проєкту та якості продукції. Щоб спробувати покращити цю точку зору, інформацію про дефекти та невдачі слід передавати конструктивно.
Whole Team Approach (підхід цільної команди) (версія 4.0)
Однією з важливих навичок тестувальника є вміння ефективно працювати в команді та робити позитивний внесок у досягнення командних цілей. Підхід цільної команди – практика, отримана від екстремального програмування – будується на цій навичці.
У підході цільної команди будь-який член команди з необхідними знаннями та навичками може виконати будь-яке завдання, і кожен відповідає за якість. Члени команди спільно використовують той самий робочий простір (фізичний або віртуальний), оскільки спільне розміщення полегшує спілкування та взаємодію. Підхід цільної команди покращує динаміку команди, покращує комунікацію та співпрацю всередині команди та створює синергію, дозволяючи використати різні набори навичок у команді на благо проєкту.
Тестувальники тісно співпрацюють з іншими членами команди, щоб забезпечити досягнення бажаних рівнів якості. Це включає співпрацю з представниками бізнесу, щоб допомогти їм створити відповідні приймальні тести, а також роботу з розробниками для узгодження стратегії тестування та прийняття рішення щодо підходів до автоматизації тестування. Таким чином, тестувальники можуть передавати знання про тестування іншим членам команди та впливати на розробку продукту.
Залежно від контексту підхід усієї команди не завжди може бути доречним. Наприклад, у деяких ситуаціях, таких як критичні для безпеки, може знадобитися високий рівень незалежності тестування.
Independence of Testing (Незалежність тестування) (версія 4.0)
Певний ступінь незалежності робить тестувальника більш ефективним у пошуку дефектів через відмінності між когнітивними упередженнями автора та тестувальника. Проте незалежність не є заміною поінформованості, наприклад, розробники можуть ефективно знаходити багато дефектів у власному коді.
Робочі продукти можуть тестуватися їх автором (немає незалежності), колегами автора з тієї ж команди (певна незалежність), тестувальниками з-за меж команди автора, але всередині організації (висока незалежність), або тестувальниками з-поза організації (дуже висока незалежність). Для більшості проєктів зазвичай найкраще проводити тестування з кількома рівнями незалежності (наприклад, розробники виконують тестування компонентів та інтеграції компонентів, команда тестувальників виконує тестування системи та системної інтеграції, а представники бізнесу виконують приймальне тестування).
Основна перевага незалежності тестування полягає в тому, що незалежні тестувальники, ймовірно, визнають різні види невдач і дефектів порівняно з розробниками через їхню різну історію, технічні перспективи та упередження. Крім того, незалежний тестувальник може перевірити, оскаржити або спростувати припущення, зроблені зацікавленими сторонами під час специфікації та впровадження системи.
Однак є й деякі недоліки. Незалежні тестувальники можуть бути ізольовані від команди розробників, що може призвести до відсутності співпраці, проблем із спілкуванням або ворогуванню із командою розробників. Розробники можуть втратити почуття відповідальності за якість. Незалежних тестувальників можна вважати слабкою ланкою або звинуватити у затримках рілізу.
В цьому відео починаємо працювати з секцією 1.5.
00:00:50 Людська психологія і Тестування
00:10:09 Світогляди тестувальника і розробника
00:18:20 Базові навички необхідні для тестування
00:26:33 Підхід цілісної команди
00:34:00 Незалежність тестування