Заглушки и драйверы |
1. Заголовок темы должен быть информативным. В противном случае тема удаляется ...
2. Все тексты программ должны помещаться в теги [code=pas] ... [/code], либо быть опубликованы на нашем PasteBin в режиме вечного хранения.
3. Прежде чем задавать вопрос, см. "FAQ", если там не нашли ответа, воспользуйтесь ПОИСКОМ, возможно такую задачу уже решали!
4. Не предлагайте свои решения на других языках, кроме Паскаля (исключение - только с согласия модератора).
5. НЕ используйте форум для личного общения, все что не относится к обсуждению темы - на PM!
6. Одна тема - один вопрос (задача)
7. Проверяйте программы перед тем, как разместить их на форуме!!!
8. Спрашивайте и отвечайте четко и по существу!!!
Заглушки и драйверы |
Serega18 |
Сообщение
#1
|
Новичок Группа: Пользователи Сообщений: 26 Пол: Мужской Репутация: 0 |
Начал изучать паскаль модульной структуры и услышал такой термин как заглушки .Как я понял небольшая программа для тестирования процедур при .
Хотелось бы посмотреть какой-нибудь пример. |
Altair |
Сообщение
#2
|
Ищущий истину Группа: Пользователи Сообщений: 4 825 Пол: Мужской Реальное имя: Олег Репутация: 45 |
Драйверы и заглушки это программы, которые используют для проверки тестовых наборовданных (вобщемдл ятестирвоания).
Драйвер это программа, тестирующая какой-то модуль, (технология восходящего тестирования), то есть программа вызывает например какую-то процедуру из тестируемого модуля ипроверяет входные данные и наболр выходных. А заглушка это программа которая служит для утановки вместо какого-то модуля (тестирование нисходящее). Пример
модуль B
Тогда при тестирвоании нисходящшем, мы начинаем тестысглавнойпрограммы, идолжны сделать заггушку для модуля B, она будет выглядеть так примерно..
ТО есть она уже готовыеданные поставляет, в соотвествии стестом придуманным. А драйвер к модулю B будет таким:
Serega18, а где ты учишься? -------------------- Помогая друг другу, мы справимся с любыми трудностями!
"Не опускать крылья!" (С) |
Serega18 |
Сообщение
#3
|
Новичок Группа: Пользователи Сообщений: 26 Пол: Мужской Репутация: 0 |
МЭИ
|
Altair |
Сообщение
#4
|
Ищущий истину Группа: Пользователи Сообщений: 4 825 Пол: Мужской Реальное имя: Олег Репутация: 45 |
Апо какой вы книге занимаетесь?
-------------------- Помогая друг другу, мы справимся с любыми трудностями!
"Не опускать крылья!" (С) |
Altair |
Сообщение
#5
|
Ищущий истину Группа: Пользователи Сообщений: 4 825 Пол: Мужской Реальное имя: Олег Репутация: 45 |
Просто про это очень хорошо рассказанно в книге
Майерс Г. "Искуство тестирования программ" ... -------------------- Помогая друг другу, мы справимся с любыми трудностями!
"Не опускать крылья!" (С) |
Serega18 |
Сообщение
#6
|
Новичок Группа: Пользователи Сообщений: 26 Пол: Мужской Репутация: 0 |
Задачник(Зубов,Котарова) и пяток методичек. и все
|
Serega18 |
Сообщение
#7
|
Новичок Группа: Пользователи Сообщений: 26 Пол: Мужской Репутация: 0 |
По ходу дела возник вопрос: у тебя в примере function а если будет procedure
от этого что-нибудь изменится? |
volvo |
Сообщение
#8
|
Гость |
Цитата(Serega18 @ 4.06.05 14:37) а если будет procedure от этого что-нибудь изменится? В общем случае - нет. На процедуру точно так же можно ставить заглушку, но uses A;сделать это с процедурой F уже будет проблематично... ;) |
Serega18 |
Сообщение
#9
|
Новичок Группа: Пользователи Сообщений: 26 Пол: Мужской Репутация: 0 |
А если б в модуле В было бы условие вроде этого
Код Unit B; Interface function F(x:byte):byte; implementation function f(x:byte):byte; begin if X>5 then f:=x*2; end; end. То в заглушке было бы так? Код Unit B; Interface function F(x:byte):byte; implementation function f(x:byte):byte; begin if x>5 then writeln('подключенна заглугшка'); f:=10; end; end. или останется как и было? |
volvo |
Сообщение
#10
|
Гость |
Да в модуле (в функции) - хоть десяток условий. Заглушка останется такой же. Условия будешь проверять, когда будешь отлаживать саму функцию, а здесь идет отладка главной программы ...
|
Serega18 |
Сообщение
#11
|
Новичок Группа: Пользователи Сообщений: 26 Пол: Мужской Репутация: 0 |
значит я сначала делаю одну заглушку для основной программы а потом еще n-ое число для всех процедур?
|
volvo |
Сообщение
#12
|
Гость |
Когда ты переходишь к тестированию функции - делаешь заглушки для всего, что она использует, и на ИЗВЕСТНЫХ наборах данных (ведь заглушка возвращает то, что ты ей сказал вернуть) тестируешь работу этой функции...
|
Serega18 |
Сообщение
#13
|
Новичок Группа: Пользователи Сообщений: 26 Пол: Мужской Репутация: 0 |
Код Unit B; Interface function F(x:byte):byte; implementation function f(x:byte):byte; begin writeln('подключенна заглугшка'); f:=10; end; end. 1)В данном примере F:=10 ,а если б была матрица A[i,j] то как это записать? |
volvo |
Сообщение
#14
|
Гость |
Что значит "матрица"? Результат функции? Так Turbo Pascal не позволяет возвращать результаты такого типа.
|
Serega18 |
Сообщение
#15
|
Новичок Группа: Пользователи Сообщений: 26 Пол: Мужской Репутация: 0 |
Ну например в предыдущей задаче у меня была процедура(поменять местами столбец первый с indx)в результате эта процедура передавала матрицу измененную.В модульной структуре я загоняю ее в модуле В(например). В этом случае как быть?
|
volvo |
Сообщение
#16
|
Гость |
Procedure change_rows(Var After, Before: matrix); Это тебя чем не устраивает? Пойми, никаких действий в заглушке производить нельзя, на то она и заглушка а не простая функция !!! |
Guest |
Сообщение
#17
|
Гость |
Цитата(volvo @ 4.06.05 15:51) Procedure change_rows(Var After, Before: matrix); Это тебя чем не устраивает? Пойми, никаких действий в заглушке производить нельзя, на то она и заглушка а не простая функция !!! А как будет выглядеть заглушка в случае входного данного массива двумерного, а выходного - одномерного массива и флажка? |
volvo |
Сообщение
#18
|
Гость |
Пример функции приводи, когда что-то спрашиваешь... Я не телепат, догадываться, что имеется в виду...
|
Guest |
Сообщение
#19
|
Гость |
Цитата(volvo @ 4.06.05 21:43) Пример функции приводи, когда что-то спрашиваешь... Я не телепат, догадываться, что имеется в виду... В общем в подпрограмме нужно вывести массив одномерный с номерами столбцов матрицы, в которых все эл-ты расположены в порядке возрастания эл-ов. И если такой столбец есть флажку присвоить истину. |
volvo |
Сообщение
#20
|
Гость |
Ты заголовок подпрограммы привести можешь? Или так и будем гадать? Откуда я знаю, КАК твоя подпрограмма должна "вывести" одномерный столбец, через параметры, или на печать через WriteLn ??
|
Текстовая версия | 24.12.2024 3:01 |