Методики тестирования - PullRequest
       1

Методики тестирования

6 голосов
/ 10 августа 2010

Какой наиболее часто используемый подход используется для тестирования в проектах Java (итеративная разработка)?

Ответы [ 7 ]

9 голосов
/ 10 августа 2010

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

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

  • Юнит-тестирование
    Используйте NUnit для проверки ваших классов, функций и взаимодействия между ними.
    http://www.nunit.org/index.php

  • Автоматическое функциональное тестирование
    Если это возможно, выСледует автоматизировать много функционального тестирования.Некоторые каркасные работы имеют встроенное функциональное тестирование.В противном случае вы должны использовать инструмент для этого.Если вы разрабатываете веб-сайты / приложения, возможно, вы захотите взглянуть на Selenium.
    http://www.peterkrantz.com/2005/selenium-for-aspnet/

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

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

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

Личный опыт подсказывает, что самый популярный подход - вовсе нет.

4 голосов
/ 10 августа 2010

Раньше я работал с TDD (Test Driven Development), и мои чувства к нему неоднозначны.По сути, вы пишете свои тесты до того, как пишете свой код, и пишете свой код в соответствии с требованиями теста.TDD заставляет вас иметь предельно четкое представление о ваших требованиях до запуска.Дополнительным преимуществом является то, что, как только вы закончите разработку, предполагая, что вы строго следовали процедурам TDD, у вас будет полный набор тестовых наборов для работы с кодом.Недостатком является то, что это занимает очень много времени, и иногда вы просто хотите пропустить пару шагов (например, возможно, написание кода перед тестами, как предпочитает здравомыслящий человек).

Подробнее можно прочитать здесь (ссылка на вики)

2 голосов
/ 10 августа 2010

В порядке наиболее часто используемого подхода:

  1. вообще никаких тестов
  2. ручные тесты: запуск приложения, нажатие или ввод данных, проверка результатов
  3. попробуйте написать несколько JUnits, забудьте о них, перейдите к 2 и 1
  4. Начните с TDD, убедитесь, что это трудно, затем перейдите к 3, 2 и 1

на теоретическомсторона есть множество способов правильно проверить код.Если вы ищете что-то практичное, взгляните на Clean Code Talk .Взгляните на всю серию, около 5 докладов (не может опубликовать более одной ссылки).

2 голосов
/ 10 августа 2010

Исходя из предположения о том, что нужно проводить тестирование, я бы сказал, что тестирование с использованием JUnit - это общий подход к тестированию в Java.

Хотя большинство тестов написано с использованием JUnit, в большинстве случаев тесты являются в большей степени интеграционными, чем модульными. (имеется в виду не тестирование одной вещи отдельно, а нескольких вещей вместе)

Кроме того, тесты в основном пишутся не в тестовом подходе, а параллельно или после реализации определенной функции.

Если вы идете в команду, которая более продвинулась в тестировании, вы, возможно, обнаружите, что какой-нибудь CI Server (Cruise Control, Hudson) выполняет тесты хотя бы раз в день во время ночной сборки.

2 голосов
/ 10 августа 2010

Модульное тестирование?

Контрактное программирование, а-ля Эйфелева?

Модель водопада?

Различные магазины делают разные вещи. Если бы был один способ управлять ими всеми, вы бы не задавали этот вопрос.

0 голосов
/ 29 мая 2015

Мое предложение по тестированию Java-проекта - сделать его простым.

Шаги: - Ручное тестирование: -Достичь стабильного продукта.Автоматизация тестирования: - Поддерживать качество продукта.Генерация отчетов и отчетность: - Пусть люди узнают о качестве продукта.Непрерывная интеграция: -Сделайте это полностью автоматизированным, непрерывным инструментом.

Когда разработчик подтвердит функциональность, начните тестировать модуль it модулем. Попробуйте сравнить фактический результат с ожидаемым результатом и с этимЗарегистрируйте проблемы.

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

Наконец, когдапродукт становится стабильным, затем начнем автоматизировать модули.Вы также можете выполнить автоматизацию шаг за шагом, например: - 1. Автоматизация модулей.2. Сообщите генерацию и отправьте почту для продукта HealthCheck.3. Непрерывное тестирование интеграции и автоматизации на частном сервере на локальной машине.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...