Чому керівництво Scrum каже, що немає тестерів?


14

Я читав посібник з Scrum з scrum.org, і він говорить:

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

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


4
У прямому перекладі це означає, що програміста також немає. Немає бізнес-аналітика. Влучна аналогія полягає в тому, що кожен пережив життя, завдання якого - зробити (і навчитися робити) все необхідне, щоб допомогти всім вижити.
rwong

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

Відповіді:


25

Це означає, що або:

  1. Тестери інтегровані в інструменти побудови команди розробників, щоб допомогти розробникам пройти тестування та тестування.

    або:

  2. Команда практикує тест-керовані розробки - тобто вони пишуть автоматизовані тести, які здійснюють систему.

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


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

4
@Maxood: Я б сказав, що TDD, безумовно, не робить ручне тестування зайвим. Якщо щось стає проблемою, ви вирішуєте це; ти не починаєш цього уникати.
Майкл Боргвардт

@MichaelBorgwardt Дуже правда! Але що робити, якщо ваш тестер зайнятий тестуванням одиниць, що є головним завданням розробника? Я вважаю, що колишній варіант повинен бути використаний лише тоді, коли мова йде про оптимізацію коду та масштабованість додатків тощо. Що ви говорите?
Maxood

7
@Maxood: Тестери, на мою думку, не повинні торкатися модульних тестів. Вони повинні працювати над тестами прийняття у співпраці з розробниками та нести відповідальність за тестування вручну / GUI. Тестування блоку відбувається на рівні, який цікавий лише розробникам. Тестова піраміда ( blogs.agilefaqs.com/2011/02/01/inverting-the-testing-pyramid ) також має відповідальність, Unit-testing = розробники, accept testing = shared, GUI testing = тестери.
martiert

12

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

Так, це так саме те , що вони пропонують. Іншими словами - розробники - тестери, а тестери - розробники.

Ідея полягає у сприянні власності та якості коду .

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

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


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

1
@MarjanVenema - Людина, яку написав A, може бути перевірена особою B, або автоматизовані тести повинні бути написані до того, як був написаний будь-який код.
Одід

5
Усі розробники мають QA-сліпоту, яка ніколи не згасає. Що трапилося в галузі - люди зайшли занадто далеко з "QA проти Devs" і створили систему "перекидання стіни", а потім виникає зворотний ефект. Devs і QA досягають успіху і провалюються як одна команда, але QA - це роль і навик, який відрізняється від кодування. Кодери потребують тестування розробок, і тестування блоків є частиною QA, але це не вся функція QA. Крім того, ролі QA часто передбачають створення документації в місцях, які не стали настільки "спритними", що вони перестали писати технічну документацію.
Warren P

6
На мій досвід, саме поділ ролей дозволяє тестувальнику переглядати програмне забезпечення з точки зору кінцевого користувача та знаходити набагато більше помилок, ніж розробник. Отриманий продукт, безумовно, не є "нестандартним".
Джорджіо

2
QA та розвиток - це дві чіткі ролі з двома різними наборами навичок (і шкалою зарплати). Відмінна якість якості вимагає рівня уваги та спеціалізації, що просто не відбудеться, якщо хтось виконує подвійні обов'язки як розробник та якість.
17 з 26

2

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

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

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

Так само бізнес-аналітик намагається визначити вимоги, які клієнт насправді задає. Це вимагає іншого мислення: "програма не працює таким чином, але повинна".

Для того, щоб кодер працював у будь-якому іншому потенціалі, існує обґрунтована ймовірність того, що настрій розуму вступить у конфлікт і кодер виконає підпункт:

  • Coder / QA - "Код працює ідеально, і я вже закодований, щоб обробляти всі можливі способи, я думаю, що це може зламати його".
  • Coder / BA - «Код повинен працювати так, як я хочу, і це були б акуратні речі, які слід додати до них, про які клієнт не думав.

Це не означає, що кожен кодер сприйнятливий до цих проблем (я зустрічав деякі дуже обдаровані типи кодерів / QA ... хоча не для коду, який вони написали).

Це стосується і команди розвитку. Поєднання обов'язків та пов'язаних з ними думок цих обов'язків для команди розробників ставить під загрозу кінцевий продукт (код).


1

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


"Клієнт також може бути залучений до тестування" - так, абсолютно правильно, інакше у вас є проект водоспаду, де визначення "зроблено" - "ми дійшли до кінця проекту". Це не спритно.
Робін Грін

1

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

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


1

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

Крім того, в Посібнику з Scrum дуже обмежено розмовляють про ролі. Насправді вони говорять про Команду розвитку. Що вони означають, що вам потрібна сильна крос-функціональна команда. Це означає, що залежно від того, що потрібно для ваших проектів, вам потрібен цілий спектр навичок, таких як UX, BA, QA / Tester, Ops, Coder тощо тощо, але чи це один чи багато людей, що їх охоплюють, насправді не має значення.

Команди, з якими я працюю, безумовно, виконують роль QA, як і у нас DevOps. Але всі вони теж Devs, тільки зі спеціалізацією в цих областях. Хитрість насправді полягає в тому, щоб не потрапляти в силоси і працювати ізольовано.


1

Це не обов'язково означає, що немає тестерів. Можливо, команда Scrum присвятила себе тестерам, а може не зробити.

Для мене, що означає це твердження про Scrum, це те, що ви повинні думати про весь трубопровід доставки як про одну команду. Бути частиною однієї команди пропонує кілька речей:

  1. Існує єдина оцінка щодо історії / помилки / завдання. Немає оцінки розробок і тестової оцінки.
  2. Команда не оцінює історію і бере на себе зобов’язання без тестера.
  3. Якщо щось піде не так, це не більше вини тестера, ніж вини розробника. В цьому винна команда .
  4. Команді ніколи не потрібно позичати, запитувати або просити тестерів.
  5. Тестування є частиною визначення зробленого. Неперевірена робота - це незавершена робота.
  6. Розробники повинні розглянути можливість перевірки, коли вони розробляють свій код.

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

Потенційні ознаки, які ви насправді не можете ставитись до тестерів як до складу групи з доставки, навіть якщо ви вважаєте, що це зробите:

  1. Тестери мають "QA standup" (так, я це бачив).
  2. Тестери мають окрему структуру управління.
  3. Ви маєте перевагу із забезпечення якості.
  4. Ви сильно покладаєтесь на тести наскрізь.
  5. На тести пишуть наступний спринт.
  6. Більшість тестувань відбувається в останній день спринту.

Це суб'єктивні і не обов'язково помилкові. Вони, правда, червоні прапори.

З урахуванням цього, цілком можливо створити команду Scrum без того, хто має призначену роль тестера. Це теж може працювати добре. Особливо, якщо ви автоматизуєте тестування. TDD теж допомагає.

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