Як зробити автоматизовані тести популярними? [зачинено]


13

Наша кодова база зростає вже 20 років. Ми близько 10 devs + sqa працюємо з 500kloc. Деякий час тому невелика команда з нас (2 dev, one from sqa) почала працювати над автоматизованою програмою тестування. В даний час один запуск займає 11 годин і є якимось тестом на інтеграцію. Ми працюємо над цим, щоб знизити це і зменшити помилкові позитиви, і в цьому добре прогресуємо. Але деталі не повинні мати значення.

Це працює добре, і ми продовжуємо його вдосконалювати. Нам (невеликій команді) це дуже подобається. Якщо щось зламаємо, ми помічаємо через день, а не через 2 місяці, коли sqa оглядає. Також нашим менеджерам (dev + sqa) подобається ідея. Але інші люди в команді просто ігнорують тестові результати. На їхню думку, якщо тести не вдаються після реєстрації, це проблема тесту, а не зміни коду, і це лише наш іграшковий проект. Ми кілька разів обговорювали, якщо невдалий тест - справжня помилка. Найчастіше це так.

Ми не можемо і не хочемо щось нав'язувати. Як ми можемо показати, що автоматичне тестування - це річ?


11
Це не проблема інженерії програмного забезпечення; це проблема людей.
Роберт Харві

@RobertHarvey Я отримав відгуки щодо ТА, оскільки "заснований на думці" та коментар, що цей сайт ідеально підходить (і підтримує цей коментар). Отже: куди мені запитати? Виховуй мене.
Пітер Шнайдер

2
Я з @RobertHarvey про те, що це проблема людей. Але відповідно до Workplace, ваше питання, ймовірно, ми вважатимемо дурпом. Наприклад, дивіться це питання, яке принципово те, що ви задаєте на робочому
Пітер М,

1
Не допускайте, щоб ці прихильники (або навіть закриті голоси) відштовхували вас! Деякі люди можуть зрозуміти, що такі питання важливі і, можливо, можуть надати допомогу. До речі, також мої колеги не бачать корисності автоматизованих тестів, незважаючи на те, що попередня версія (без автоматизованих тестів) є коробкою помилок. Просто змініть одне і розірвіть кілька інших, здавалося б, не пов'язаних між собою речей. Деякі люди просто не хочуть вчитися (існує відкритий опір проти вивчення нових речей).
Бернхард Хіллер

1
Прикро, що це питання було закрито. Якщо інженерія програмного забезпечення означає що-небудь, це означає проблеми роботи з реальними людьми, а відповіді на такі проблеми включатимуть думку. Однак, кілька швидких ідей: (1) якщо ви тестуєте помилкові негативи, це, безумовно, збільшить віддачу, оскільки результати будуть відчувати себе марною тратою часу; (2) зменшити час виконання, якщо це можливо. 11 годин не відчувається негайно, навіть якщо це набагато краще, ніж два місяці; (3) буде приймати ці тести як метрики, які вони переглядають. вони вже визнані вашими органами в цій області.
Дейл Хагглунд

Відповіді:


4

Відмова від відповідальності

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


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

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

І так, ви повинні це нав'язати. Ви повинні отримати беззастережну підтримку керівництва та зробити автоматизовані тести написання обов'язковими та необоротніми. З часом розробники звикають до них. Що допоможе, якщо ви зможете розробити деякі показники, які покажуть, наскільки було зроблено більше нових розробок та на скільки зменшено кількість помилок з моменту запровадження автоматичних тестів. Слова мінливі. Числа суцільні. А цифри - це те, що пересічний розробник розуміє краще, ніж слова. Якщо ви зможете довести, використовуючи солідні цифри, що автоматизовані тести хороші, ви отримаєте мало опір до них.


11

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

Там твоя проблема. Якщо ваші тести лускаті (навіть якщо вони надійні "більшість часу"), люди будуть схильні ігнорувати результати. Ваша команда з автоматизації повинна зосередитись на усуненні помилкових негативів. Тільки тоді решта команди здобуде достатньо впевненості в результатах, щоб фактично їм довіряти.


5
Потім знову це може бути щось інше. Як опір змінам. Якщо тест не вдасться, завжди є що виправити, або код, або тест, тому ставлення до того, що люди будуть ігнорувати тести, оскільки тести лускаті, помиляється.
Роберт Харві

Ми говорили з ними, коли ми були впевнені, що щось зламалося (наприклад, тест не вдався 3 рази поспіль після того, як його перевірка вплинула на функціонал, про який йдеться). Але так, підвищення надійності є поточним пріоритетом.
Пітер Шнайдер

1
@PeterSchneider тест може вийти з ладу 100 разів поспіль, це зробить це особливо, якщо тест неправильний.
Пітер Б

З іншого боку, тест, який ніколи не виходить з ладу, швидше за все, абсолютно марний
Володимир Стокіч

1
+1 Крихкі тести, безумовно, є проблемою. Розробники повинні бути впевнені, що тести, які вони пишуть, корисні, не спричиняють зайвих ускладнень і не займаються роботою .
Андрес Ф.

6

Ми не можемо і не хочемо щось нав'язувати.

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


Я думаю, це залежить від системи, тестів, масштабу та процесу розробки. Не всі помилки можна вирішити відразу, а також всі проблеми не можна вирішувати відразу.
NickL
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.