Рекомендации по тестированию веб-приложений LAMP - PullRequest
1 голос
/ 22 января 2010

Мне нужна помощь в тестировании! :)

Я работаю в небольшой компании Webdev и отвечаю за качество наших приложений.

Время от времени мы создаем сайты электронной коммерции, и поскольку наши клиенты полагаются на сайт, чтобы заработать деньги, они должны быть полностью свободны от ошибок. К сожалению, у нас были проблемы с этим в прошлом, и мы стремимся ужесточить наши процедуры тестирования.

Мне интересно, есть ли у кого-нибудь совет о том, как именно вы будете тестировать что-то подобное. Будет ли это все сделано вручную или с помощью чего-то вроде Selenium? Или какой-то другой метод.

Наши приложения всегда LAMP (Linux, Apache, MySQL, PHP). Они никогда не бывают невероятно сложными, за исключением того, что в некоторых случаях обработка кредитных карт, расчет стоимости доставки, скидок и т. Д. Могут стать довольно сложными.

Любые рекомендации?

Спасибо!

Ответы [ 2 ]

1 голос
/ 25 января 2010

В тестировании нет «правильных» или «неправильных». Тестирование - это искусство, и то, что вы должны выбрать, и то, насколько хорошо это работает для вас, во многом зависит от проекта к проекту и вашего опыта.

Но, как профессиональный эксперт по тестированию, я советую вам обеспечить правильное сочетание автоматического и ручного тестирования.

АВТОМАТИЗИРОВАННОЕ ИСПЫТАНИЕ

  • Модульное тестирование
    Используйте PHPUnit для проверки ваших классов, функций и взаимодействия между ними.
    http://phpunit.sourceforge.net/

  • Автоматическое функциональное тестирование
    Если это возможно, вы должны автоматизировать большую часть функционального тестирования. Некоторые каркасные работы имеют встроенное функциональное тестирование. В противном случае вы должны использовать инструмент для этого. Если вы разрабатываете веб-сайты / приложения, возможно, вы захотите взглянуть на Selenium.
    http://www.webinade.com/web-development/functional-testing-in-php-using-selenium-ide

  • Непрерывная интеграция
    Используйте CI, чтобы убедиться, что все ваши автоматизированные тесты запускаются каждый раз, когда кто-то из вашей команды делает коммит в проект.
    http://martinfowler.com/articles/continuousIntegration.html

РУЧНОЕ ИСПЫТАНИЕ
Как бы я ни любил автоматизированное тестирование, оно, IMHO, не заменит ручное тестирование. Основная причина в том, что автоматизированный пользователь может делать только то, что ему говорят, и проверять только то, что ему сообщили, для того, чтобы он воспринимался как пройденный / неудачный. Человек может использовать свой интеллект, чтобы находить ошибки и задавать вопросы, возникающие при тестировании чего-то другого.

  • Поисковые испытания
    ET - это очень дешевый и эффективный способ поиска дефектов в проекте. Он использует интеллект человека и учит тестеров / разработчиков больше о проекте, чем любой другой метод тестирования, который я знаю. Проведение сеанса ET для каждой функции, развернутой в тестовой среде, - это не только эффективный способ быстрого поиска проблем, но и хороший способ учиться и получать удовольствие!
    http://www.satisfice.com/articles/et-article.pdf

Этот ответ (почти) идентичен ответу на другой вопрос. Проверьте этот вопрос, поскольку у него были и другие хорошие ответы, которые могут вам помочь. Как мы можем решить, какой метод тестирования можно использовать?

0 голосов
/ 25 января 2010

В целом, я бы рекомендовал сбалансированный подход к ручному и автоматизированному тестированию. Вы никогда не сможете автоматизировать все свои тесты, и потребуется время для расширения вашего пакета автоматизированного тестирования, поэтому ручное тестирование всегда будет там. В качестве первого шага я обычно рекомендую автоматизировать тест дыма, который может выполняться при каждой сборке. Это обычно дает вам хорошую отдачу. После этого вы можете сосредоточиться на областях приложения с более высоким риском. Это могут быть непростые области приложения (такие как обработка, доставка, транзакции скидок, о которых вы упоминали) и / или в прошлом были ошибки.

...