Ex ante: Здається, існує велика плутанина щодо того, що вважається тестуванням того, що ні. Звичайно, кожен розробник повинен перевірити свій код під час його створення, йому потрібно перевірити, чи працює він. Вона / він не може здати його тестувальнику, перш ніж він вважає, що це зроблено і досить добре. Але розробники бачать не все. Вони можуть не розпізнавати помилки. Ці помилки можна знайти лише пізніше в циклі розробки, коли буде проведено ретельне тестування. Питання полягає в тому, чи повинні розробники проводити таке тестування чи ні, і на мою скромну думку, це потрібно розглядати з точки зору керівника проекту:
Розробники можуть бути тестерами, але вони не повинні бути тестерами . Розробники, як правило, ненавмисно / несвідомо уникають використання програми таким чином, що може зламати її. Це тому, що вони написали це і в основному тестують його таким чином, яким він повинен бути використаний.
З іншого боку, хороший тестер намагається мучити додаток. Його основний намір - це зруйнувати його. Вони часто використовують додаток так, як розробники не могли б уявити. Вони ближче до користувачів, ніж розробник, і часто інший підхід до тестування робочого процесу.
Крім того, використання розробників в якості тестерів збільшує витрати на розробку і не приносить користі якості продукту стільки, скільки спеціальному тестеру. Я не дозволяв би розробникам перехресно перевірити свої роботи, коли я можу зробити тестером краще тестером. Тільки якщо цикл зворотного зв’язку між розробниками та тестерами стане надто дорогим, я б змусив розробників перехрещувати код один одного, але, на мій досвід, це рідко, і це дуже залежить від процесу.
Це не означає, що розробник повинен бути неохайним і залишати все тестеру. Програмне забезпечення повинно бути підкріплено тестовими пристроями, а технічні помилки слід звести до мінімуму, перш ніж передавати програмне забезпечення тестеру. І все-таки іноді ви маєте виправити тут, зламати проблеми або інші помилки, які жоден розробник не міг передбачити, це нормально. Також інтеграційне тестування повинно проводитися здебільшого розробниками. Основна мета випробувача - перевірити, чи відповідають вимогам.
У такій невеликій команді (а також залежно від розміру програми) я також можу побачити тестера в гібридній ролі, написання одиниць тестів та тестів на інтерфейс користувача. Вам обов'язково потрібно найняти .
Але важливіше, ніж тестер, - регулярні заморозки / гілки. Не представляйте нічого, що не було належним чином перевірено. Коли ви додали функцію або щось змінили, все, що навколо неї, потрібно перевірити ще раз. Ви отримаєте погану репутацію, лише якщо ваша компанія цього не зробить. Не випускайте щось нестабільне. Коли замовник хоче мати програмне забезпечення до певної дати, тоді припиніть розробляти досить рано і протестуйте його належним чином, щоб у вас було достатньо часу для виправлення помилок. Часто краще відмовитись в останніх хвилинах запитів на функції, ніж погано реалізовувати їх або випускати без належного тестування.