Задать вопрос
@JaneGame

Как корректно проверить математическую формулу?

Добрый день! Может кто сможет подсказать. Есть формула (предположим xyz=c), xyz - это некоторый набор коэффициентов (констант), который зависит от того, какие показания выберет пользователь. Попробовала пайрвайзом - получила 63 комбинации на выходе - без учета негативных проверок. Может с т.з. тестирования это не очень много, но в условиях ограниченных сроков это может быть критичным (учитывая, что тесты ещё надо написать).

Вопрос - достаточно ли будет, если я прогоню каждый коэффициент по 1 разу, чтобы убедиться, что во-первых система принимает эти поля, во-вторых, что коэффициенты соответствуют заданным значениям, в-третьих, что система вообще считает правильно? Например x1y1z1=c1, а x2y2z2=c2.
  • Вопрос задан
  • 44 просмотра
Подписаться 1 Средний Комментировать
Пригласить эксперта
Ответы на вопрос 1
hint000
@hint000
у админа три руки
достаточно ли будет, если я прогоню каждый коэффициент по 1 разу
Тут нет общего ответа. Иногда можно срезать углы, иногда нельзя.
предположим xyz=c
Тогда срезайте, если уверены, что кроме этой формулы больше нигде не используются x,y,z. Тут при вещественных переменных особо важен тест на минимальное положительное значение c (при целых не обязательно), а на максимальное - хоть при вещественных, хоть при целых. На нулевые и на отрицательные значения, если попадают в разрешенный диапазон. И типа всё (срезали лишнее).

А предположим, что 1/(x+y-z+4)=c, а у вас случайно не будет теста x=1, y=1, z=6 (или аналогичного), который обязан зафейлиться (на целых).
"А-а-а? Э-э-э!" (с)

А если у нас задача про землекопов, и в ответе получилось 1.49999 землекопа?
А если в той же задаче получилось 1.99999 землекопа? С точки зрения тестирования это две принципиально разные выявленные ошибки в программе. В первом случае ошибка в формуле, во втором случае потеря точности.

Необходимость тех или иных тестов можно понять только когда известны зависимости, известны диапазоны, известна логика программы (что и для чего мы вычисляем, какой смысл несёт результат работы программы). Если всего этого не знать, то будет по принципу GIGO - garbage in, garbage out - бесполезная работа.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

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