Тестирование и доработка оконного приложения
§ 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
- Скопируй
TestPadв папкуTestPad_07(07 — номер места) или открой свойMiniPad_07с урока 7. - Заполни ожидания в листе до кликов.
- Выполни пять проверок; отметь факт по каждой.
- Опиши не менее двух дефектов: шаг, ожидание, факт, адрес.
- Исправь по одному; после каждой правки повтори ту же проверку и одну соседнюю.
- Сохрани проект и повторно открой
.pabcproj.
Лист наблюдений
| № | Действие | Моё ожидание | Факт | Повтор |
|---|---|---|---|---|
| 1 | «Открыть» → «Отмена» | ________ | ________ | ок / нет |
| 2 | «Открыть» → файла нет | ________ | ________ | ок / нет |
| 3 | «Сохранить» поверх | ________ | ________ | ок / нет |
| 4 | Текст → «Новый» | ________ | ________ | ок / нет |
| 5 | «Выход» | ________ | ________ | ок / нет |
Критерии готовности
Шесть диагностических баллов: папка повторно открывается; лист заполнен ожиданиями и фактами; найдено не менее двух дефектов; для каждого назван адрес; правки внесены по одной; повторный прогон отмечен. Баллы — обратная связь, не автоматическая отметка.
Если остаётся время: шестая проверка («Сохранить» → «Отмена»); проверка «Новый», затем «Сохранить»; сравнение своего MiniPad с TestPad.
Если результат отличается
| Наблюдение | Что проверить |
|---|---|
| После «Отмена» текст исчез | Проверяется ли результат ShowDialog до чтения |
| Нет сообщения о отсутствующем файле | Вызывается ли FileExists до ReadAllLines |
| Файл заменён без вопроса | OverwritePrompt в инспекторе saveFileDialog1 |
| После «Новый» текст остался | Есть ли textBox1.Clear в newItem.Click |
| Заголовок не обновился | Обновление Text после записи внутри ветки успеха |
| После правки сломалась соседняя кнопка | Повторить соседнюю проверку (регрессия) |
Объясни самостоятельно
- Почему ожидание записывают до действия?
- Что произойдёт, если после «Отмена» обработчик всё равно читает
FileName? - Зачем повторять соседнюю проверку после исправления?
Домашнее задание
§ 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.
Поделитесь первым материалом
Рабочий лист, презентация или методичка помогут другим учителям подготовиться к уроку.
Комментарии
Войдите, чтобы оставлять комментарии.
Пока нет комментариев. Будьте первым!