Студопедия

КАТЕГОРИИ:


Архитектура-(3434)Астрономия-(809)Биология-(7483)Биотехнологии-(1457)Военное дело-(14632)Высокие технологии-(1363)География-(913)Геология-(1438)Государство-(451)Демография-(1065)Дом-(47672)Журналистика и СМИ-(912)Изобретательство-(14524)Иностранные языки-(4268)Информатика-(17799)Искусство-(1338)История-(13644)Компьютеры-(11121)Косметика-(55)Кулинария-(373)Культура-(8427)Лингвистика-(374)Литература-(1642)Маркетинг-(23702)Математика-(16968)Машиностроение-(1700)Медицина-(12668)Менеджмент-(24684)Механика-(15423)Науковедение-(506)Образование-(11852)Охрана труда-(3308)Педагогика-(5571)Полиграфия-(1312)Политика-(7869)Право-(5454)Приборостроение-(1369)Программирование-(2801)Производство-(97182)Промышленность-(8706)Психология-(18388)Религия-(3217)Связь-(10668)Сельское хозяйство-(299)Социология-(6455)Спорт-(42831)Строительство-(4793)Торговля-(5050)Транспорт-(2929)Туризм-(1568)Физика-(3942)Философия-(17015)Финансы-(26596)Химия-(22929)Экология-(12095)Экономика-(9961)Электроника-(8441)Электротехника-(4623)Энергетика-(12629)Юриспруденция-(1492)Ядерная техника-(1748)

Проектирование архитектуры




Разработка модуля или программы

Вопросы и задачи для самостоятельного решения

Определите понятие покрытия тестами исходного текста модуля?

В чем разница тестирования требований спецификации на программный модуль и тестирования исходных текстов программного модуля?

Может ли быть несколько тестовых примеров для проверки одного тест требования? А один тест-пример для проверки нескольких тест требований?

Напишите тест-план на функцию вычисления периметра треугольника.

Напишите тест-план на функцию вычисления максимума трех чисел, для покрытия

следующего кода (I. по операторам; II. по условиям):

int max3(int a, int b, int c) {

int max;

max = a;

if (b > max) { max=b; };

if (c > max) { max=c; };

return max;

}

 

 

Напишите тест-план на функцию int Compare(int A,B), если в функциональных требованиях сказано, что функция должна сравнивать на равенство числа в пределах от –76 до +77 и возвращать 0 при совпадении значений параметров.


Проектировщик должен опираться на опыт, на строгое логическое мышление; и на педантичную точность.

 

Никлаус Вирт

 

Как уже говорилось ранее, при написании программы, модуля или функции можно применять два подхода к проектированию – нисходящий или восходящий, или комбинировать их. В любом случае, необходимо добиться такой структуры конечной программы, которая бы состояла из набора законченных блоков (модулей, функций, …), каждый из которых имел бы достаточно полную и законченную функциональность.

Добиться этого можно разным путем, но результат всегда должен удовлетворять некоторым критериям, а именно:

- максимальная независимость между собой блоков;

- минимальное количество передаваемой между блоками информации;

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

 

 

Перед началом проектирования программы, необходимо разработать требования к ПО. На этом этапе определяются все функции будущего ПО. Требования должны однозначно определять всю функциональность и одновременно описывать все нестандартные ситуации. Например, если речь идет о функции деления одного числа на другое, требования должны содержать ответ на вопрос: «А что вернет функция, если знаменатель равен нулю?». Однако в требованиях не стоит забывать и об основных задачах функции, которые порой исчезают за многочисленными особыми случаями. Так, например, в требованиях к функции деления необходимо указать, что функция должна выполнять именно деление, по каким правилам должно оно происходить и с какой точностью.

Часто удобно вводить условности, отличающие отдельные требования друг от друга и от пояснений. Хорошей практикой будет использование глагола должен (должна, должны) в каждом требовании, например: «Функция деления должна вернуть нуль в случае, если знаменатель или числитель, или они оба равны нулю». Сами требования делятся на разделы, и обычно отражают требования к самой функции/программе и требования к интерфейсу. Полезно всегда иметь краткое общее описание конечного продукта, просто и понятно описывающее его назначение.

Одновременно с требованиями к самому ПО, на основе них пишутся тест требования, в которых отражается то, что надо будет проверить в ходе тестирования, чтобы убедиться, что ПО соответствует разрабатываемым требованиям. Каждое тест требование выделяет некий класс эквивалентности (или область), в котором надо проверить поведение программы и обычно содержит в себе фразу «проверить, что». Например, для приведенного в предыдущем абзаце требования тест требования можно сформулировать следующим образом (приведена лишь часть тест требований).

1.1. Проверить, что если числитель равен нулю, а знаменатель не равен нулю, то функция возвращает нуль.

2.2. Проверить, что если числитель не равен нулю, а знаменатель равен нулю, то функция возвращает нуль.

3.3. Проверить, что если числитель равен нулю и знаменатель равен нулю, то функция возвращает нуль.

 

Дале по тест требования формируют тест-план, а на его основе уже реализуют соответственно все тестовые примеры.

По требованиям разрабатывается архитектура ПО, определяющая все модули, функции, их интерфейсы, а так же алгоритмы работы и структуры данных. Можно сказать, что архитектура ПО должна отвечать на вопрос «КАК работает программа», в то время как требования к ПО отвечают на вопрос «ЧТО должна делать программа». Лишь после разработки архитектуры можно приступать к кодированию. На этом этапе происходит воплощение архитектуры в виде программного кода на выбранном языке программирования с учетов всех его особенностей и возможностей. При кодировании необходимо учитывать не только свойства языка программирования, но и особенности выбранной архитектуры целевой машины.

Тестирование программы следует начинать с отдельных функций, затем переходить к модулям, и только потом ко всей программе. Затем полностью «собранная» программа должна пройти все тестовые примеры, определенные в тест-плане.

 




Поделиться с друзьями:


Дата добавления: 2014-12-26; Просмотров: 497; Нарушение авторских прав?; Мы поможем в написании вашей работы!


Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет



studopedia.su - Студопедия (2013 - 2024) год. Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав! Последнее добавление




Генерация страницы за: 0.011 сек.