GUI. Многодокументный интерфес

Приложения, которые обеспечивают работу со многими документами в цент­ральной области главного окна, называются приложениями с многодокументным интерфейсом или MDI-приложениями.

Обычно MDI-приложения содержат пункт главного меню Windows (окна) с ко­мандами по управлению окнами и их списком. Активное окно отмечается галочкой. Пользователь может сделать любое окно активным, щелкая по его названию в меню Windows.

 

GUI. Понятие диалогового окна.

Использование диалоговых окон облегчает процесс взаимодействия пользователя с приложением Windows Диалоговое окно — это набор управляющих элементов, с помощью которых упрощается процесс ввода данных В предыдущем примере было описано, как создать простое диалоговое окно, которое позволяло бы пользователю на вопрос дать ответ "Да" или "Нет" Для создания таких диалоговых окон используется класс MessageBox (Окно сообщения) Более сложные диалоговые окна создаются на основе форм.

Если рассматривать диалоговое окно как форму, то обычно у него есть свои специфические характеристики. Как правило, у диалоговых окон нет системного меню, нет кнопок свертывания Minimize (Свернуть) и развертывания Maximize (Развернуть), причем размер окна фиксирован.

 

 

Класс Form и его жизненный цикл.

Класс Form представляет собой заготовку формы, от которой наследуются классы форм приложения. Некоторые свойства класса Form

AcceptButton - Позволяет задать кнопку или получить информацию о кнопке, которая будет активизирована при нажатии пользователем клавиши Enter

ActiveMDIChild, IsMDIChild, IsMDIContainer- Свойства предназначены для использования в приложениях с многодокументным интерфейсом (MDI)

AutoScale- Позволяет установить или получить значение, определяющее, будет ли форма автоматически изменять свои размеры, чтобы соответствовать высоте шрифта, используемого на форме, или размерам размещенных на ней компонентов

FormBorderStyle - Позволяет установить или получить стиль рамки вокруг формы (используются значения перечисления FormBorderStyle)

Cancel Button - Позволяет задать кнопку или подучить информацию о кнопке, которая будет активизирована при нажатии пользователем клавиши Esc

Control Box- Позволяет установить или получить значение, определяющее, будет ли присутствовать стандартная кнопка системного меню в верхнем левом углу заголовка формы

Menu, MergedMenu - Используются для установки или получения информации о меню на форме

MaximizeBox, MinimizedBox - Определяют, будут ли на форме присутствовать стандартные кнопки восстановления и свертывания в правом верхнем углу заголовка формы

ShowInTaskbar - Определяет, будет ли форма отображаться на панели задач Windows

Методы класса Form

Activate - Активизирует форму и помещает в нее фокус ввода

Close - Закрывает форму

CenterToScreen - Помещает форму в центр экрана

LayoutMDI - Размещает все дочерние формы на родительской в соответствии со значениями перечисления LayoutMDI

OnResize – Может быть замещен для реагирования на событие Resize

Show – Отображает форму (унаследовано от Control)

ShowDialog - Отображает форму как диалоговое окно (подробнее о диалоговых окнах рассказывается в следующем разделе)

70.

 

 

72. Тестирование ПО. Основные понятия

Тестирование — процесс выполнения программы с целью обнаружения ошибок. Шаги процесса задаются тестами.

Каждый тест определяет:

q свой набор исходных данных и условий для запуска программы;

q набор ожидаемых результатов работы программы.

Другое название теста — тестовый вариант. Полную проверку программы гарантирует исчерпывающее тестирование. Оно требует проверить все наборы исходных данных, все варианты их обработки и включает большое количество тестовых вариантов. Увы, но исчерпывающее тестирование во многих случаях остается только мечтой — срабатывают ресурсные ограничения (прежде всего, ограничения по времени).

Хорошим считают тестовый вариант с высокой вероятностью обнаружения еще не раскрытой ошибки. Успешным называют тест, который обнаруживает до сих пор не раскрытую ошибку.

Целью проектирования тестовых вариантов является систематическое обнаружение различных классов ошибок при минимальных затратах времени и стоимости.

Тестирование обеспечивает:

q обнаружение ошибок;

q демонстрацию соответствия функций программы ее назначению;

q демонстрацию реализации требований к характеристикам программы;

q отображение надежности как индикатора качества программы.

 

 

73. Тестирование ПО. Тестирование «белого ящика»

Известна:внутренняя структура программы.

Исследуются:внутренние элементы программы и связи между ними (рис. 6.3).

Рис. 6.3.Тестирование «белого ящика»

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

 

74. Тестирование ПО. Тестирование «черного ящика»

Известны:функции программы.

Исследуется:работа каждой функции на всей области определения.Как показано на рис. 6.2, основное место приложения тестов «черного ящика» — интерфейс ПО.

Рис. 6.2.Тестирование «черного ящика»

Эти тесты демонстрируют:

как выполняются функции программ;

q как принимаются исходные данные;

q как вырабатываются результаты;

q как сохраняется целостность внешней информации.

При тестировании «черного ящика» рассматриваются системные характеристики программ, игнорируется их внутренняя логическая структура. Исчерпывающее тестирование, как правило, невозможно. Например, если в программе 10 входных величин и каждая принимает по 10 значений, то потребуется 1010 тестовых вариантов. Отметим также, что тестирование «черного ящика» не реагирует на многие особенности программных ошибок.

 

Заповеди отладки.

Заповедь 1. Считайте тестирование ключевой задачей разработки ПС, поручайте его самым квалифицированным и одаренным программистам; нежелательно тестировать свою собственную программу.

Заповедь 2. Хорош тот тест, для которого высока вероятность обнаружить ошибку, а не тот, который демонстрирует правильную работу программы.

Заповедь 3. Готовьте тесты как для правильных, так и для неправильных данных.

Заповедь 4. Избегайте невоспроизводимых тестов, документируйте их пропуск через компьютер; детально изучайте результаты каждого теста.

Заповедь 5. Каждый модуль подключайте к программе только один раз; никогда не изменяйте программу, чтобы облегчить ее тестирование.

Заповедь 6. Пропускайте заново все тесты, связанные с проверкой работы какой-либо программы ПС или ее взаимодействия с другими программами, если в нее были внесены изменения (например, в результате устранения ошибки).