Приведите тесты для задачи:
Ввести элементы двумерного массива MAS(2,2) и, если выше главной диагонали хотя бы один элемент >10, просчитать количество всех элементов матрицы, в противном случае вывести сообщение «Условие не выполнено».
Тестирование — процесс выполнения программы с целью обнаружения ошибок.
2. Типы ошибок.
Все ошибки в разработке программ делятся на следующие
Ошибка (error) – состояние программы, при котором выдается неправильные результаты, причиной которых являются изъяны в операторах программы или в технологическом процессе ее разработки, что приводит к неправильной интерпретации исходной информации, а следовательно и к неверному решению.
Дефект (fault) в программе является следствием ошибок разработчика на любом из этапов разработки и может содержаться в исходных или проектных спецификациях, текстах кодов программ, эксплуатационной документация и т.п. Дефект обнаруживается в процессе выполнения программы.
Отказ (failure) – это отклонение программы от функционирования или невозможность программы выполнять функции, определенные требованиями и ограничениями и рассматривается как событие, способствующее переходу программы в неработоспособное состояние из–за ошибок, скрытых в ней дефектов или сбоев в среде функционирования.
Все ошибки, которые возникают в программах, принято подразделять на следу-ющие классы:
– логические и функциональные ошибки - являются причиной нарушения логи-ки алгоритма, внутренней несогласованности переменных и операторов, а также пра-вил программирования;
– ошибки вычислений и времени выполнения - возникают по причине неточности исходных данных и реализованных формул, погрешностей методов, неправильного применения операций вычислений или операндов;
– ошибки ввода–вывода и манипулирования данными - являются следствием некачественной подготовки данных для выполнения программы, сбоев при занесении их в базах данных или при выборке из нее;
– ошибки интерфейсов - относятся к ошибкам взаимосвязи отдельных элементов друг с другом, что проявляется при передаче данных между ними, а также при взаимодействии со средой функционирования;
– ошибки объема данных и др. - относятся к данным и являются следствием того, что реализованные методы доступа и размеры баз данных не удовлетворяют объемам информации системы или интенсивности ее обработки
3. Этапы тестирования ПО.
• модульное тестирование – тестируется минимально возможный для тестиро-вания компонент, например, отдельный класс или функция;
• интегрированное тестирование – проверяется, есть ли какие-либо проблемы в интерфейсах и взаимодействии между интегрируемыми компонентами, например, не передается информация, передается некорректная информация;
• системное тестирование – тестируется интегрированная система на соответствие исходным требованиям:
o альфа-тестирование – имитация реальной работы с системой разработчи-ками либо реальная работа с системой потенциальными пользователями-заказчиками на стороне разработчика.
o бета-тестирование – в некоторых случаях выполняется распространение версии с ограничениями (по функциональности или времени работы) для некоторой группы лиц с тем, чтобы убедиться, что продукт содержит доста-точно мало ошибок.
Дать понятие класса.
Описать классы, использующиеся для моделирования ПО.
Разработать графическое представление изображения классов для моделирования программного обеспечения:
а) управляющий класс;
б) класс-сущность;
В) граничный класс.
Структура и поведение одинаковых объектов описывается в общем для них классе.
· управляющий класс отвечает за координацию действий других классов и контролирует последовательность выполнения действий варианта использования для данного ПО. На каждой диаграмме классов должен быть хотя бы один управляющий класс (рис. 1, а).
· класс-сущность – пассивный класс, информация о котором должна храниться постоянно. Как правило, этот класс соответствует отдельной таблице БД. В этом случае его атрибуты являются полями этой таблицы, а операции - присоединенными или хранимыми процедурами (рис. 1, б).
· граничный класс располагается на границе системы с внешней средой. К этому типу относят как классы, реализующие пользовательские интерфейсы, так и классы, обеспечивающие интерфейс с аппаратными средствами или программными системами (рис. 1, в).