Какие методы тестирования Вы используете для разработки веб-сайтов?

Существует много методов тестирования там т.е. черного ящика, graybox, единицы, функциональной, регрессия и т.д.

Очевидно, проект не может взять все методы тестирования. Таким образом, я задал этот вопрос для получения идеи того, какие методы тестирования использовать и почему должен, я использую их. Можно ответить в следующем формате:

Метод тестирования - на чем Вы используете его

например.

  1. Поблочное тестирование - я использую его для... (вздор, вздор)
  2. Регрессионное тестирование - я использую его для... (вздор, вздор)

Меня попросили участвовать в TDD, и конечно я должен был исследовать методы тестирования. Но существует целое изобилие их, и я не знаю, что использовать (потому что они все звучат полезными).

7
задан Zeeshan Hassan Memon 27 February 2016 в 16:14
поделиться

7 ответов

1. Модульное тестирование используется разработчиками для проверки правильности написанного им кода модуля. Обычно это тестирование белого ящика, а также некоторый уровень тестирования черного ящика.

2. Регрессионное тестирование - это функциональное тестирование, используемое тестировщиками, чтобы убедиться, что новые изменения в системе не нарушили ни одну из существующих функциональных возможностей

3. Функциональное тестирование - это тестирование полной интегрированной системы для оценки ее соответствия установленным требованиям. Функциональное тестирование относится к сфере тестирования черного ящика и, как таковое, не требует знания внутренней структуры кода или логики

.

Вики-статьи Разработка через тестирование и Разработка через функции будут для вас большим подспорьем.

Для TDD вам необходимо выполнить следующий процесс:

  1. Задокументировать функцию (или вариант использования), которую вам нужно реализовать или улучшить в вашем приложении, которое в настоящее время делает не существует.
  2. Напишите набор функциональных тестов случаев, которые могут гарантировать, что вышеуказанная функция (из шага 1) работает. Возможно, вам потребуется написать несколько тестовых примеров для указанной выше функции, чтобы протестировать все различные возможные рабочие процессы.
  3. Напишите код для реализации указанной выше функции (из шага 1).
  4. Протестируйте этот код с помощью тестовых примеров, которые вы написали ранее (на шаге 2). Фактическое
    тестирование может быть ручным, но я бы рекомендовал создать автоматические тесты , если это возможно.
  5. Если все тесты пройдены, можно идти. Если нет, вам нужно обновить код (вернитесь к шагу 3) , чтобы пройти тестовый пример.

TDD должен гарантировать, что функциональные тестовые примеры, которые были написаны до того, как вы написали код, должны работать, и не имеет значения, как был реализован код.

6
ответ дан 7 December 2019 в 03:15
поделиться

Обычно я делаю следующее:

  • Согласованность страниц в случае многостраничных веб-сайтов.
  • Тестирование соединений с базой данных.
  • Тестирование функций, на которые может повлиять только что внесенное мной изменение.
  • Я тестирую функции на образце входных данных, чтобы убедиться, что они работают нормально (особенно те, которые похожи на алгоритмы).
  • В некоторых случаях я очень просто реализую функции: жестко кодирую большинство настроек, а затем реализую настройки позже, тестируя после реализации каждой настройки.

Большинство из них применимо и к приложениям.

0
ответ дан 7 December 2019 в 03:15
поделиться

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

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

(Примеры ниже на PHP, но вы можете легко найти правильные примеры для любого языка / фреймворка, который вы используете)

АВТОМАТИЧЕСКОЕ ТЕСТИРОВАНИЕ

  • Модульное тестирование
    Используйте 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

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

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

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

3
ответ дан 7 December 2019 в 03:15
поделиться

Ну, прежде чем перейти к ответу, я хотел бы прояснить концепцию тестирования о нескольких методах.

Существует шесть основных типов тестирования, которые охватывают все наиболее распространенные методы тестирования.

  1. Тестирование черного ящика
  2. Тестирование белого ящика
  3. Тестирование серого ящика
  4. Функциональное тестирование
  5. Интеграционное тестирование
  6. Тестирование юзабилити

Почти все методы тестирования относятся к этим типам, вы также можете использовать некоторые методы тестирования в нескольких типах, например, вы можете использовать дымовое тестирование в черном или белом ящике на основе ресурсов, доступных для тестирования.

Таким образом, для полного тестирования веб-сайта необходимо использовать как минимум следующие методы тестирования на основе доступных для тестирования ресурсов. Это как минимум методы, которые следует использовать для тестирования веб-сайта, но могут быть и другие методы, основанные на природе веб-сайта.

  1. Тестирование требований
  2. Смок-тестирование
  3. Системное тестирование
  4. Интеграционное тестирование
  5. Регрессионное тестирование
  6. Тестирование безопасности
  7. Тестирование производительности и нагрузки
  8. Тестирование развертывания

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

Не существует жесткого и быстрого правила следовать любому типу тестирования или любому методу. Как вы знаете, "тестирование - это искусство", поэтому у искусства нет правил или границ. Это полностью зависит от вас, что вы используете для тестирования и как.

Надеюсь, вы получили ответ на вопрос.

0
ответ дан 7 December 2019 в 03:15
поделиться

Selenium очень хорош для тестирования веб-сайтов.

0
ответ дан 7 December 2019 в 03:15
поделиться

Ответ зависит от используемого веб-фреймворка (если таковой имеется). Django , например, имеет встроенные функции тестирования.

Для PHP (или функционального веб-тестирования ), SimpleTest довольно хорош и хорошо ... прост. Он поддерживает Модульное тестирование (только PHP) и Веб-тестирование . Тесты могут выполняться в среде IDE (Eclipse) или в браузере (то есть на вашем сервере).

0
ответ дан 7 December 2019 в 03:15
поделиться

Остальные ответы, опубликованные на данный момент, посвящены модулю / функционалу / производительности / и т. Д. тестирование, и все они разумны.

Однако один из ключевых вопросов, который вы должны задать, - «насколько эффективно мое тестирование?».

На этот вопрос часто отвечают с помощью инструментов покрытия тестами , которые определяют, какие части вашего приложения фактически проверяются с помощью некоторого набора тестов. Идеальный инструмент тестового покрытия позволяет вам тестировать ваше приложение любым способом, который вы можете себе представить (включая все стандартные ответы, приведенные выше), а затем сообщать, какая часть и какой процент вашего кода были задействованы. Что наиболее важно, он скажет вам, какой код вы не использовали . Затем вы можете проверить этот код и решить, требуется ли дополнительное тестирование или вам все равно. Если непроверенный код имеет отношение к «обработке ошибок при переполнении диска», и вы полагаете, что диски емкостью 1 ТБ являются обычным явлением, вы можете проигнорировать это. Если непроверенный код является логикой проверки ввода, ведущей к запросам SQL, вы можете решить, что должны протестировать эту логику, чтобы убедиться, что не могут произойти атаки с использованием SQL-инъекций.

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

Инструменты тестового покрытия можно получить из множества источников. SD предоставляет семейство инструментов для покрытия тестов , которые обрабатывают C, C ++, Java, C #, PHP и COBOL, и все они используются для поддержки тестирования веб-сайтов различными способами.

0
ответ дан 7 December 2019 в 03:15
поделиться
Другие вопросы по тегам:

Похожие вопросы: