Мы используем следующий вариант # 3: Создаем только JSON-сервер REST API. Сделать сервер веб-сайта HTML. Веб-сервер HTML, как и в вашем варианте, не является клиентом сервера API REST. Вместо этого оба сверстники. Недалеко от поверхности находится внутренний API, который обеспечивает функциональность, необходимую двум серверам.
Мы не знаем ни о каком прецеденте, так что это своего рода эксперимент. Пока (собирается войти в бета-версию), это сработало довольно хорошо.
Проведите быстрые тесты. (Более) немедленная обратная связь помогает достичь коротких итераций. Это может почти заставить вас начать следующий тестовый прогон.
Напишите несколько модульных / автоматических тестов, которые будут запускаться автоматически, например, после завершения новой сборки.
Используйте инкапсуляцию и попробуйте протестировать только интерфейсы.
Напишите несколько небольших инструментов, которые помогут вам тестировать свои модули / классы.
Я работаю в небольшой компании, но у нас есть отдельная группа тестирования. Это связано с тем, что разработчики часто не видят собственных ошибок, поэтому они, как правило, плохие тестировщики. Наша команда тестирования состоит из опытных инженеров-тестировщиков, которые работают в соответствии с заранее определенными планами тестирования и часто используют автоматизированные инструменты тестирования для тестирования создаваемых нами приложений. (Включая веб-сайты!) Они не разработчики! Эти тестеры используют TMap для автоматизированного тестирования. Остальное - это просто ручной труд, чтение функционального дизайна и проверка того, что все, что упомянуто в функциональном дизайне, будет работать в точности , как описано в окончательной версии. О любых ошибках сообщается разработчикам с помощью внутреннего инструмента сообщения об ошибках.
Я сначала пытаюсь написать свои тесты и пытаюсь создать класс вокруг этого. Так что я действительно сосредоточен на тестах. Я использую JUnit и т. Д.
Если вы попробуете программировать таким образом ... тестирование станет все более увлекательным, с моей точки зрения.
Один из советов, который я даю своей команде, заключается в том, что в отношении новых функций 90% логики должны работать вне контекста приложения.
Функции, которые могут выполняться вне контекст приложения всегда легко протестировать.
Если вы используете .net, вы можете изучить NUnit .
Вы также можете посмотреть Pex . Кажется, это потрясающая среда тестирования.
Однако ваш вопрос является немного общим, потому что существует множество типов тестирования.
Удачи вам, тестируя :).
Для нового кода определите, что он должен делать, напишите тест, который утверждает, что код это делает, выясните, как это сделать, затем напишите код .
Для поиска ошибок в существующем коде тест, который воспроизводит ошибку, облегчает тестирование.
Это не скучно, потому что в обоих случаях тесты имеют высокую вероятность неудачи.
Для UAT , то я не нашел ни одного нескучного способа - вы проходите требования одно за другим и делаете столько тестов, сколько необходимо для функциональности. В идеале для новых проектов это было бы в основном сделано заранее как часть проработки, но не всегда. Это становится скучным только тогда, когда вы пишете тесты после того, как у вас есть длинный список тестов, которые, как вы уже знаете, пройдут.
Я не понимаю, как это может быть скучно, поскольку это большая часть самого программирования. Выявление и устранение ошибок очень важно, но если вы думаете, что это скучно, возможно, вам лучше написать код, и в этом случае вы можете написать несколько строк, которые проверяют важные части вашего кода.
Вы, наверное, имеете в виду утомительно, а не скучно. В таком случае эта статья может помочь
Напишите автоматические модульные тесты с помощью PhpUnit или Simpletest , поскольку вы используете PHP, или любой другой Платформа модульного тестирования доступна для выбранного вами языка. Следуя Разработка через тестирование (TDD), вы создадите набор тестов вместе со своим кодом. У вас не будет впечатления, что вы что-то тестируете. В самом деле.
«* немного протестируй, немного напиши *».
Сделать простой в использовании набор тестов для программ Perl легко. Существует стандартный способ тестирования на Perl с использованием Test Anything Protocol .
Обычно вы пишете группу файлов с расширением .t
в t /
вашего проекта, а затем запустите proof
.
Файлы в t /
в основном выглядят следующим образом:
#!/usr/bin/perl
use strict;
use warnings;
use Test::More tests => 8;
use Date::ICal;
$ical = Date::ICal->new( year => 1964, month => 10, day => 16,
hour => 16, min => 12, sec => 47,
tz => '0530' );
ok( defined $ical, 'new() returned something' );
ok( $ical->isa('Date::ICal'), " and it's the right class" );
is( $ical->sec, 47, ' sec()' );
is( $ical->min, 12, ' min()' );
is( $ical->hour, 16, ' hour()' );
is( $ical->day, 17, ' day()' );
is( $ical->month, 10, ' month()' );
is( $ical->year, 1964, ' year()' );
Для получения дополнительной информации вы можете прочитать учебник .
Есть много языков, в которых есть модули, предназначенные для работы с TAP , дополнительную информацию см. здесь .
К сожалению, TAP только недавно использовался для других языков, кроме Perl, поэтому для них не так много поддержки, как для Perl.
Я думал так же, как ты. Когда я только начал программировать, нам нужно было решить, каким будет результат на бумаге, а затем провести визуальное сравнение фактического и ожидаемого результата. Разговор об утомительном. Пару лет назад я открыл для себя Test Driven Development и xUnit, и теперь мне нравятся тесты.
По сути, в TDD у вас есть структура, позволяющая писать тесты и очень легко их запускать. Итак, написание тестов сводится к написанию кода. Процесс следующий:
Это одна из приятных особенностей TDD: как только ваш код проходит все тесты, которые вы только можете придумать, вы знаете, что закончили - без TDD иногда трудно понять, когда остановиться. Откуда берутся ваши тесты? Они взяты из спец. TDD часто помогает понять, что спецификация. полна дыр, когда вы думаете о тестовых примерах для вещей, которых не было в спецификации. Вы можете получить ответы на эти вопросы до того, как начнете писать код для их решения.
Еще одна приятная вещь заключается в том, что когда вы обнаружите ошибку позже, вы можете безопасно начать переработку своего кода, зная, что все существующие тесты докажут, что ваш код по-прежнему работает во всех известных случаях, в то время как новые тесты вы написанное для воссоздания ошибки покажет вам, когда вы ее исправите.
Вы можете добавлять модульные тесты к существующему коду - просто добавляйте их для битов, которые вы изменяете. По мере того как вы будете к нему возвращаться, тесты будут охватывать все больше и больше.
xUnit - это общее название для группы фреймворков, поддерживающих разные языки: JUnit для Java, NUnit для .NET и т. Д. Вероятно, уже есть один для любого языка, который вы используете. Вы даже можете написать свой собственный фреймворк . Прочтите эту книгу - она великолепна.
вы можете безопасно начать переработку кода, зная, что все существующие тесты докажут, что ваш код по-прежнему работает во всех известных случаях, в то время как новые тесты, которые вы написали для воссоздания ошибки, покажут вам, когда вы ее исправите.Вы можете добавлять модульные тесты к существующему коду - просто добавляйте их для битов, которые вы меняете. По мере того как вы будете к нему возвращаться, тесты будут охватывать все больше и больше.
xUnit - это общее название для группы фреймворков, поддерживающих разные языки: JUnit для Java, NUnit для .NET и т. Д. Вероятно, уже есть один для любого языка, который вы используете. Вы даже можете написать свой собственный фреймворк . Прочтите эту книгу - она великолепна.
вы можете безопасно начать переработку кода, зная, что все существующие тесты докажут, что ваш код по-прежнему работает во всех известных случаях, в то время как новые тесты, которые вы написали для воссоздания ошибки, покажут вам, когда вы ее исправите.Вы можете добавлять модульные тесты к существующему коду - просто добавляйте их для битов, которые вы меняете. По мере того как вы будете к нему возвращаться, тесты будут охватывать все больше и больше.
xUnit - это общее название для группы фреймворков, поддерживающих разные языки: JUnit для Java, NUnit для .NET и т. Д. Вероятно, уже есть один для любого языка, который вы используете. Вы даже можете написать свой собственный фреймворк . Прочтите эту книгу - она великолепна.
Написанный для воссоздания ошибки покажет вам, когда вы ее исправите.Вы можете добавлять модульные тесты в существующий код - просто добавляйте их для тех битов, которые вы изменяете. По мере того как вы будете к нему возвращаться, тесты будут охватывать все больше и больше.
xUnit - это общее название для группы фреймворков, поддерживающих разные языки: JUnit для Java, NUnit для .NET и т. Д. Вероятно, уже есть один для любого языка, который вы используете. Вы даже можете написать свой собственный фреймворк . Прочтите эту книгу - она великолепна.
Написанный для воссоздания ошибки покажет вам, когда вы ее исправите.Вы можете добавлять модульные тесты в существующий код - просто добавляйте их для тех битов, которые вы изменяете. По мере того как вы будете к нему возвращаться, тесты будут охватывать все больше и больше.
xUnit - это общее название для группы фреймворков, поддерживающих разные языки: JUnit для Java, NUnit для .NET и т. Д. Вероятно, уже есть один для любого языка, который вы используете. Вы даже можете написать свой собственный фреймворк . Прочтите эту книгу - она великолепна.
JUnit для Java, NUnit для .NET и т.д. Вероятно, он уже существует для любого языка, который вы используете. Вы даже можете написать свой собственный фреймворк . Прочтите эту книгу - она великолепна. JUnit для Java, NUnit для .NET и т.д. Вероятно, он уже существует для любого языка, который вы используете. Вы даже можете написать свой собственный фреймворк . Прочтите эту книгу - она великолепна.Если вы находите тестирование скучным, это связано с тем, что тестирование вашего кода является неизбежным злом ... по крайней мере, как я воспринимал, вы это видите.
Все, что вам нужно, это изменить вашу точку зрения взглядов на тестирование ... а точнее ... изменение в том, КАК вы тестируете. Вы любите программировать гораздо больше, чем тестирование ... хорошо программируйте свои тесты ... тогда это так же весело, как программирование самого начала ... и когда вы закончите, у вас есть
программа, которая работает
тестовый набор, который остается и тестирует его при каждой сборке
Так что оставьте эту таблицу Excel и пошаговый отладчик и присоединяйтесь к веселью :-)
Конечно, это еще не все, и здесь тестовые фреймворки (junit, testNG , Dunit, NUnit ...) пригодятся, они снимут небольшие хлопоты и оставят только кодовую часть теста ..
Удачного кодирования и, соответственно, .. удачного тестирования: -)
Несколько ссылок, которые могут оказаться полезными, я не эксперт по PHP, это далеко не так, но, похоже, это соответствует цели.