Цитата:
Да, все это теоретически звучит хорошо, однако на практике трудно понять какие значения из этой структуры использует функция, так как внутри неё могут быть API в которые тоже передается объект этой структуры, а в коде этих API могут быть другие функции, которые принимают в качестве аргумента этот объект.
creative, если мы пытаемся протестировать какую-то ф-ю, мы
обязаны хотя бы приблизительно знать, какие входные параметры ей нужны, и какого результата от нее ждать. Если мы этого не знаем, то как мы можем эту функцию использовать в своей программе?
Опять же, Вы привели пример некой уже готовой ф-ции, написанной не Вами. На вскидку, я вижу 1 причину, что бы такую ф-ю тестировать: уверенность в том, что ф-я работает не совсем так, как требуется. А что бы быть в этом уверенным, нужно знать, как она
должна работать, т.е., возвращаемся к тому, что необходимо
Цитата:
наличие хотя бы приблизительного словесного описания алгоритма ее работы (например, какие поля в этой большой входной структуре она использует и для чего)
Думаю, человек, который ее писал, смог бы и приблизительный алгоритм написать, и тест тоже.
Для того, что бы написать тест для ф-ции, надо четко представлять, что Вы от этой ф-ции хотите. А что бы что-то четко представлять, надо уметь изложить это на естественном (родном -русском или китайском, кому как
) языке на бумаге. Кто-то (кажется, Голуб в "Веревке достаточной длины..") написал, что если вы не сможете описать проблему на родном языке, то написать программу на языке программирования для решения этой проблемы тоже не сможете. Так что литература и программирование ближе друг к другу, чем кажется