Как использовать автоматизацию для тестирования приложений, связанных с очень сложными вычислениями? - PullRequest
1 голос
/ 13 февраля 2009

Я хочу следующие вещи для тестирования приложения, включающего сложные вычисления:

  1. Как использовать инструменты автоматизации тестирования для тестирования расчетов (с использованием инструментов автоматизации, таких как QTP или инструменты с открытым исходным кодом)
  2. Как определить охват при тестировании расчетов, как разработать тестовые случаи?

Заранее спасибо, Testmann

Ответы [ 3 ]

0 голосов
/ 13 февраля 2009

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

У нас был код на C #, который выполняет ОЧЕНЬ сложные вычисления. Итак, мы написали тестовый комплект в FitNesse, а затем предоставили много тестовых данных. Мы очень усердно работали, чтобы охватить все случаи, поэтому мы использовали своего рода внутреннюю таблицу истинности, чтобы обеспечить получение всех возможных комбинаций ввода данных.

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

0 голосов
/ 13 февраля 2009

Чтобы проверить существующий код, вы должны предположить, что код (в основном) правильный. Таким образом, вы просто даете ему некоторые данные, запускаете его и записываете результат. Затем используйте этот записанный результат в тестовом примере.

Когда вы сделаете следующее изменение, ваш вывод тоже должен измениться, и тест не пройдёт. Сравните новый результат с тем, что вы ожидали. Если есть расхождение, значит, вы что-то упустили -> напишите еще один тест, чтобы выяснить, что происходит.

Таким образом, вы можете накопить знания о неизвестной системе.

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

0 голосов
/ 13 февраля 2009

Иногда вам нужно оценить ожидаемое заключение, а затем заполнить контрольный пример из прогона программы.

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

А для покрытия? Покройте каждую ветвь хотя бы один раз (то есть любые операторы if или loop). Покройте каждый порог, обе его стороны (для целочисленного деления, которое будет -1, 0 и 1 в качестве знаменателей). Затем добавьте еще несколько для хорошей меры.

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