Подскажите, пожалуйста, что это за принципы. Я таких не нашел. Понял только, что как бы в Черном - скрыта суть программы, важен только ответ. А как это реализовать?
volvo
17.01.2010 1:59
Цитата
Подскажите, пожалуйста, что это за принципы.
Это принципы отладки программы.
"Черный ящик": Программа рассматривается, как ящик с непрозрачными стенками. Тот, кто ведет отладку, ничего не знает о том, что там внутри. Он только задает программе входные данные и проверяет, правильны ли выходные данные программы. Идеальный тест методом "черного ящика" должен проверить программу на всех теоретически возможных комбинациях входных данных, но это по большей части просто технически невозможно. Значит, для тестирования следует подобрать "критические" комбинации входных данных, на которых больше всего возможны ошибки, - а это уже требует некоторых допущений о внутренней структуре программы. К тому же, когда ошибка обнаружена, метод "черного ящика" не дает нам возможности ее локализовать - обнаружить, в каком точно месте программы она находится. Значит, подход "черного ящика" более пригоден не для самой отладки, а для внешнего тестирования программы.
"Белый ящик": Тот, кто ведет отладку, досконально знает внутреннюю структуру программы и ведет отладку по такому плану, который позволяет проверить функциональность программы на всех ветвях ее алгоритма и на всех граничных значениях ее переменных.
sheka
17.01.2010 6:05
volvo, не можешь дать ссылочку "на прочитать и пример"? и, если можно, на примере вот этой программы чёрный ящик объясни что к чему.
volvo
17.01.2010 6:29
Откуда я знаю, что надо в той теме... Поставил бы автор задачу покорректнее - можно было бы что-то сказать, а так "сделайте мне 'черный ящик'" - это несерьезно...
var i:shortint; begin readln(i); writeln(2*i); end.
т.е. по методу Черного ящика "Анализ граничных значений" будет происходить так: сначала подставлю 0. получу 0. потом подставлю 1. получу 2. 2 - 4. 3-6 4-8. пойму, что скорее всего, мой Черный ящик увеличивает введеное число в 2 раза. начну брать какие-то макс значения. 50 - 100. значит 50 - не максимальное. 100- фигня какая-то - Программа не работает. возьму меньше 75 - тоже не работает. ну и так буду перебирать, пока не найду, что мин введеное может быть -127, а макс 128. Правильно ли я понял как тестировать программу? Если да, то как это оформлять надо? Т.е. еще какую-то дополнительную программу составить, которая бы это делала? Икак другими способами, не "Анализом граничных значений" ?
volvo
19.01.2010 4:50
Цитата
ну и так буду перебирать, пока не найду, что мин введеное может быть -127, а макс 128.
Ну, попробуй введи 128. Получишь аварийный вылет. Наоборот, от -128 до +127...
А такое бывает? Завтра специально попробую). По моему, обычно отрицательные значения какие-то пишет.
volvo
19.01.2010 5:16
Цитата
По моему, обычно отрицательные значения какие-то пишет.
Если программа откомпилирована с ключом {$R-}, то будет неправильное значение. Если с {$R+} - то вылет... Ну, или в IDE заходим в Options -> Compiler и ставим все крестики в поле Runtime Errors. Я о Паскале сейчас говорю, раз уж ты привел пример на Паскале. Запускай и отлаживай программы ВСЕГДА со всеми включенными проверками, узнаешь много интересного, и выявишь те ошибки (если они есть, конечно), которые без этих крестиков замалчиваются, и программа работает "через раз"...
Это текстовая версия — только основной контент. Для просмотра полной версии этой страницы, пожалуйста, нажмите сюда.