Перейти к содержанию
MediaSchool

Тестирование и доработка оконного приложения

§ 5: тестирование MiniPad на обычных и ошибочных данных, исправление дефектов, связь объект–событие–обработчик.

Открыт · Презентация · Методичка

Конспект урока

Тестирование и доработка оконного приложения

Проверь MiniPad по заранее записанным ожиданиям, найди дефекты и исправь их по адресу «объект — событие — обработчик».

Запуск без ошибок не равен правильной работе: нужно сравнить факт с ожиданием.

Результат урока

Выполнишь пять проверок на TestPad_07 (или на своём MiniPad_07): отмена в диалоге открытия, открытие отсутствующего файла, сохранение поверх существующего файла, очистка поля по «Новый», выход. Опишешь не менее двух дефектов; исправишь их по одному; повторишь те же проверки; назовёшь для каждой правки объект, событие и обработчик (или свойство в инспекторе).

Перед началом

Работай только в своей копии проекта и соблюдай правила кабинета. Перед проверкой «Новый» сохрани нужный текст в файл. При сбое — стоп и к учителю. Нужна проверенная учителем среда PascalABC.NET под Windows с дизайнером Windows Forms.

Вспомни: на уроке 7 собрали MiniPad с меню «Файл» (newItem, openItem, saveItem, exitItem), полем textBox1 и диалогами. Сегодня новых элементов нет: учимся проверять и дорабатывать.

Основа — § 5 (продолжение урока 7). Автоматические тесты, отладчик с точками останова и try в обязательный продукт часа не входят.

Зачем тестировать

Тестирование — проверка приложения по заранее записанным ожиданиям. Цель — найти расхождение, а не «доказать», что всё верно.

Тест-случай записывают до действия: шаг → ожидание → факт → вывод.

Лист тестирования: пять проверок

№ШагОжидание в исправном MiniPad
1«Открыть» → «Отмена»текст в поле не меняется; сообщений нет
2«Открыть» → файла нетсообщение «Файл не найден»; окно продолжает работать
3«Сохранить» поверх файлавопрос о замене; после согласия запись и обновление заголовка
4Текст → «Новый»поле пустое; заголовок «MiniPad — без имени»
5«Выход»окно закрывается

Проверка № 5 контрольная: в TestPad она обычно проходит. Её всё равно выполняют и записывают.

Проверка 1. Отмена в диалоге

Если пользователь нажал «Отмена», ShowDialog возвращает не OK. Обработчик не должен читать FileName и менять поле.

Типичный дефект TestPad: ShowDialog вызывают, а результат не проверяют — после «Отмена» берётся пустое имя файла.

Проверка 2. Файла нет

Даже после OK файл может не существовать. Перед чтением проверяют FileExists.

if openFileDialog1.ShowDialog <> DialogResult.OK then exit;
if not FileExists(openFileDialog1.FileName) then
begin
  MessageBox.Show('Файл не найден');
  exit;
end;
curFile := openFileDialog1.FileName;
textBox1.Lines := ReadAllLines(curFile);
Text := 'MiniPad — ' + curFile;

Проверка 3. Сохранение поверх файла

Свойство OverwritePrompt у saveFileDialog1 включает вопрос о замене существующего файла. В TestPad оно может быть False — тогда файл заменяется без предупреждения. Это правка в инспекторе, а не строка в обработчике.

После удачной записи обновляют curFile и заголовок формы (Text). Если заголовок не меняется — дефект в saveItem.Click.

Проверка 4. «Новый» очищает поле

«Новый» должен вызывать textBox1.Clear (или textBox1.Text := ''), сбрасывать curFile и ставить заголовок «MiniPad — без имени». Типичный дефект: меняется только статус, поле остаётся заполненным.

От симптома к адресу дефекта

Адрес дефекта: объект · событие · место в обработчике (или свойство в инспекторе).

ПризнакАдресПравка
После «Отмена» текст пропалopenItem · Clickпроверить результат ShowDialog
Заголовок не обновился после записиsaveItem · Clickобновить curFile и Text после записи
Файл заменён без вопросаsaveFileDialog1 · OverwritePromptпоставить True
После «Новый» текст осталсяnewItem · Clickдобавить Clear

Правило: одна правка — один повтор той же проверки. Затем — соседняя проверка (регрессия).

Повторный прогон и связь событий

Событие связывает действие пользователя с кодом. Если симптом появляется при щелчке по пункту меню, ищи обработчик Click этого пункта — не «где-то в программе».

Пауза перед практикой

На минуту отведи взгляд от экрана, расслабь кисти и проверь посадку. Затем переходи к своей копии проекта.

Практика: TestPad_07

  1. Скопируй TestPad в папку TestPad_07 (07 — номер места) или открой свой MiniPad_07 с урока 7.
  2. Заполни ожидания в листе до кликов.
  3. Выполни пять проверок; отметь факт по каждой.
  4. Опиши не менее двух дефектов: шаг, ожидание, факт, адрес.
  5. Исправь по одному; после каждой правки повтори ту же проверку и одну соседнюю.
  6. Сохрани проект и повторно открой .pabcproj.

Лист наблюдений

№ДействиеМоё ожиданиеФактПовтор
1«Открыть» → «Отмена»________________ок / нет
2«Открыть» → файла нет________________ок / нет
3«Сохранить» поверх________________ок / нет
4Текст → «Новый»________________ок / нет
5«Выход»________________ок / нет

Критерии готовности

Шесть диагностических баллов: папка повторно открывается; лист заполнен ожиданиями и фактами; найдено не менее двух дефектов; для каждого назван адрес; правки внесены по одной; повторный прогон отмечен. Баллы — обратная связь, не автоматическая отметка.

Если остаётся время: шестая проверка («Сохранить» → «Отмена»); проверка «Новый», затем «Сохранить»; сравнение своего MiniPad с TestPad.

Если результат отличается

НаблюдениеЧто проверить
После «Отмена» текст исчезПроверяется ли результат ShowDialog до чтения
Нет сообщения о отсутствующем файлеВызывается ли FileExists до ReadAllLines
Файл заменён без вопросаOverwritePrompt в инспекторе saveFileDialog1
После «Новый» текст осталсяЕсть ли textBox1.Clear в newItem.Click
Заголовок не обновилсяОбновление Text после записи внутри ветки успеха
После правки сломалась соседняя кнопкаПовторить соседнюю проверку (регрессия)

Объясни самостоятельно

  1. Почему ожидание записывают до действия?
  2. Что произойдёт, если после «Отмена» обработчик всё равно читает FileName?
  3. Зачем повторять соседнюю проверку после исправления?

Домашнее задание

§ 5. Письменно: 1) три проверки своего приложения в виде «действие — ожидание»; 2) зачем проверяют результат диалога перед работой с файлом; 3) пример ошибочных данных и ожидаемая реакция. По желанию доработай TestPad/MiniPad при доступе к Windows. Установка программ дома не требуется.

Источники

Котов В. М. и др. «Информатика. 11 класс», 2021: § 5. Электронная копия. Конспект § 5.

Microsoft Learn: ShowDialog, DialogResult, OverwritePrompt, File.Exists. Среда: PascalABC.NET.

TestPad, набор из пяти проверок, листы и критерии — авторская адаптация; одиннадцать иллюстраций условные и не являются снимками установленной среды.

Скачать и открыть

Материалы урока

2 материала

Подготовка к уроку

2 материала

От сообщества

Материалы сообщества0

Дополнения от учителей к этому уроку. Проверены модерацией, но не являются редакционным контентом MediaSchool.

Поделиться материалом

Поделитесь первым материалом

Рабочий лист, презентация или методичка помогут другим учителям подготовиться к уроку.

Комментарии

Войдите, чтобы оставлять комментарии.

Пока нет комментариев. Будьте первым!