Навіщо використовувати phpunit, коли можна використовувати традиційне ручне тестування


14

Коли я роблю веб-додаток, я перевіряю свою роботу в браузері, щоб побачити, чи отримую я якісь помилки та виправляю їх. Я зробив складні програми і тестування таким чином пройшло легко і швидко. Я переглянув багато відео на youtube щодо phpunit і не можу знайти для цього мету. Чому ця бібліотека корисна? Чи phpunit більше для php framworks, як cakephp або zend? Я не використовую будь-який фреймворк просто core PHP. Чи може phpunit бути корисним для мене? Якщо так, то як?

Також є xdebug, але я не впевнений, чи стосується він.


5
Скільки часу потрібно для повторної перевірки складної програми у кожному куточку?

@ user1249, phpUnit досі не може провести автоматичне функціональне тестування. Це робиться лише автоматизоване тестування блоку.
Pacerier

Відповіді:


12

Чи може phpunit бути корисним для мене? Якщо так, то як?

Однозначно так.

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

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


За іронією долі, перше посилання від o'reilly 404'd
Фелікс Ганьон-Греньє,

6

Скажімо, що ви хотіли вручну протестувати свою програму щоразу, коли ви її розгортали. Як би ви зробили це?

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

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

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

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

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

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

Я навіть можу написати тести, які прогнозують поведінку системи, а потім написати таку поведінку (яку я вже знаю, що вона правильна, тому що я лише перевірив її), процес, відомий як Test Driven Development.


5

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

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

При натисканні на кнопку програми ви тестування на функціональність програми.

Чи може phpunit бути корисним для мене? Якщо так, то як?

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


Одиничні тести також перевіряють поведінку. Ви створюєте помилкову дихотомію.
Рейн Генріхс

@ReinHenrichs, функціональне тестування проводиться Selenium, а не PHPUnit.
Pacerier

1

Так!

Так. Абсолютно так.

Власне, для цього потрібна кваліфікація. Рамки для тестування блоків, такі як PHPunit, корисні, якщо ви пишете та підтримуєте додаток, яке, як очікується, використовуватимуть інші.

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

  • Регресійне тестування на конкретні помилки, які ви виявили, та

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

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

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