Чи повинні тестувальники автоматизувати свою роботу?


9

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

А як щодо інших типів автоматизованих тестів? Чи повинні їх випробовувати розробники?


Просто почніть називати їх "розробниками в тесті", і неоднозначність вирішується.
Едвард Странд

@ Crazy Але хіба не дорожче мати 2 команди розробників?
Jader Dias

5
Дорожче за що? Продаж погано перевіреного товару? Невдача в процесі розробки, оскільки розробники пишуть тести замість продукту?
Едвард Странд

Відповіді:


12

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

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


Але чи не могли вони просто попросити розробників написати цей тестовий випадок?
Jader Dias

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

Я не бачу, як реалізація тестового випадку може відрізнятися від людини до людини.
Jader Dias

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

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

11

Якщо ви можете автоматизувати його, автоматизуйте.

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


Але чому вони повинні і не тільки розробникам?
Джадер Діас

@JaderDias, як уже згадувалося, тестери не повинні мати попередніх упереджень щодо коду, який вони намагаються перевірити
CaffGeek

3

На мою думку, розробники та тестери відповідають за різні типи тестів.

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

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

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


Цікаво про ваше останнє речення - ви не думаєте, що розробки можуть сприяти функціональним тестам? Що робити, якщо тестувальники окреслюють структуру тесту та виявляють тестові випадки, а розробники допомагають лише у впровадженні?
Міс Селлані

1
Я думаю, я уявляю тестерів, які самі по собі є розробниками і можуть писати власні тести. Їх завданням було б пройти вимоги та поговорити з користувачем, щоб визначити тестові випадки, а потім написати справи. Це залишає розробникам логіки вільним, щоб бути близьким до логіки, коли вони її пишуть. Це також залишає тестерів досить віддаленими від "володіння" логікою, що вони можуть спробувати зламати це об'єктивно і без докорів.
Тейлор Ціна

2

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

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

Відредаговано, щоб додати: Я SDET з 5-річним досвідом роботи. Я працюю з великими розробниками з досвідом 10+ років кожен, і останнім часом працюю з ними, щоб пройти вузьке вузьке місце.


0

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

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


Visual Studio 2010 (Premium або Ultimate, не пам'ятаю, який) містить щось, що записує екранні дії для автоматизації тестування інтерфейсу користувача. Я демонстрував демонстрацію цього Ендрю Вудварда MVP, коли робив шоу UI Testing SharePoint, неймовірно.
Джеймс Любов

Грамотно записувати та грати має досить погану репутацію. Це, як правило, досить крихке і важке в обслуговуванні. Так, як швидкий і брудний "я маю запустити це на 4 різних датацентрах, я не хочу зберігати його для подальшого використання", це добре, але це жахливо підтримувати, оскільки ви закінчуєте тонни повторень. Змінюється один невеликий елемент - і раптом вам доведеться оновити 100 тестів. Болісно. Він також жодним чином не замінює ручний тест, який, як правило, розробляється з припущенням, що людина помітить усі ті інші речі, які ви прямо не перевіряли.
testerab

Що було б досить солодко, це щось, що може перенести речі на дещо нижчий рівень, ніж переміщення вказівника та натискання миші, щоб ви фактично записували, яку кнопку натискали, а не де відбулося натискання. Це зробить цей вид тестування більш стійким і практичним. Коли вам потрібно запустити кожен сценарій, наприклад, дев'яти різних версій Windows, це кошмар, щоб зробити це вручну на всіх.
Гленатрон

Кнопка Ідентифікація за ідентифікатором , а не місце це цілком можливо з деякими інструментами. Записуйте та відтворюйте сценарії, виконані так, що НЕБАГО підтримувати, на жаль - це не вирішує проблему повторення. Я не думаю, що немає необхідності ретельно розробити тестову автоматизацію, якщо ви насправді хочете зберегти будь-які сценарії або створити їх не один десяток. Чи думали ви використовувати щось кероване ключовими словами, як Robot Framework разом з Auto-It?
testerab

0

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

Цей запис у блозі Майкла Болтона пояснює це краще, але по суті: чи прагнуть вони лише підтвердити поведінку, чи шукають проблеми з системою?

Я думаю, що також корисно враховувати квадрати Agile Testing (Брайан Марік спочатку описав це, але я натрапив на них у книзі Лізи Кріспін та книзі Джанет Грегорі "Спритні тестування": навіть якщо ви не дотримуєтесь методу Agile Development, я думаю, що відмінність між тестами, які критикують продукт, і тестами, які підтримують команду, дійсно варті при розгляді автоматизації та намаганні розробити план того, хто що робить, і чому.

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

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

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

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