- •Содержание
- •Введение
- •Техническое задание
- •Аналитический раздел
- •Обзор и анализ существующих программных решений
- •Определение функциональных требований к разрабатываемой программной системе
- •Конструкторский раздел
- •Выбор языка и среды программирования
- •Функциональная схема работы программы
- •Организация данных и проектирование интерфейсов обмена данными в программной системе
- •Анализ существующих методов и алгоритмов Обстрел одного одноклеточного корабля
- •Обстрел одного двухклеточного корабля
- •Выбор графического и пользовательского интерфейса
- •Технологический раздел
- •Определение структуры и состава программной системы
- •Используемые компоненты
- •Разработка алгоритмов отдельных подзадач
- •Руководство пользователя
- •Подготовка программы к работе и условия ее использования
- •Экспериментальный раздел
- •Виды контроля качества разрабатываемого по
- •Методика проведения и результаты тестирования
- •Методы и способы устранения ошибок
- •Отладка выявленных ошибок, обнаруженных при тестировании
- •Заключение
- •Список использованной литературы
- •Приложения Приложение 1 Листинг программы
- •Приложение 2 Графический интерфейс программы
Методика проведения и результаты тестирования
При тестировании программы были выполнены следующие принципы:
необходимо тщательно подбирать тест не только для правильных (предусмотренных) входных данных, но и для неправильных (непредусмотренных);
должны являться правилом доскональное изучение результатов каждого теста, чтобы не пропустить малозаметную на поверхностный взгляд ошибку в программе;
следует всегда помнить, что тестирование - творческий процесс, а не относиться к нему как к рутинному занятию;
следует по возможности избегать тестирования программы ее автором.
Тестирование выявило ряд ошибок в алгоритме, синтаксисе кода программы и ее интерфейсе.
Методы и способы устранения ошибок
Отладка – это комплексный процесс по выявлению и исправлению дефектов в программном обеспечении. Сами же дефекты, обычно, обнаруживается в процессе тестирования ПО.
Отладка состоит из следующих этапов:
воспроизведение дефекта (любым из доступных способов);
анализ дефекта (поиск причины возникновения дефекта);
дизайн исправления дефекта;
кодирование исправления дефекта;
валидация исправления;
интеграция исправления в кодовую базу или целевую систему;
дополнительные валидации после интеграции.
Отладка – это рекурсивный процесс. На любом этапе отладки могут возникнуть новые дефекты, которые придётся отлаживать. Например, какая-то часть исправления в коде работает не так как ожидается и соответственно придётся отлаживать эту часть в изоляции и снова основное время уходит на пункты 1 и 2 и т.д.
Этап отладки можно считать законченным, если программа правильно работает на двух-трех наборах входных данных.
Некоторые методы отладки ПО используемые на данный момент в индустрии:
запуск программы из под отладчика;
анализ поведения системы;
unit тестирование;
анализ кода без исполнения программы;
выполнения программы (или её части) в другой среде;
отладка трансляцией кода.
Отладка выявленных ошибок, обнаруженных при тестировании
Во время выполнения отладки, были использованы следующие методы:
unit тестирование;
анализ кода без исполнения программы;
запуск программы из под отладчика.
Отладка ряда ошибок прошла успешно, были внесены изменения в интерфейс программы.
Также были предусмотрены некоторые исключительные ситуации.
Во время расстановки, корабли никогда не могут соприкасаться.
…
if (bField1[x1,y1]<>2) and
(bField1[x1,y1-1]<>2)and
(bField1[x1+1,y1+1]<>2)and
(bField1[x1+1,y1]<>2) and
(bField1[x1+1,y1-1]<>2) and
(bField1[x1+1,y1+2]<>2) and
(bField1[x1+1,y1+3]<>2) and
(bField1[x1,y1+3]<>2) then
for i:=0 to k11 do
bField1[x1,y1+i]:=2;
…
Во время ручной расстановки кораблей, игрок не должен иметь возможность произвести выстрел по полю боя противника.
…
procedure TForm1.FormCreate(Sender: TObject);
begin
Panel2.Visible:=False;
…
Сообщение о победе должно появляться только в случае потопления всех кораблей противника
…
win:=true;
For i:=1 to 10 do
for j:=1 to 10 do
if bField2[i,j]=2 then
win:=false;
if win=true then begin
showmessage ('Победа!');
endofgame:=true;
exit
end;
…
Если начать новую игру не завершив предыдущую, то массивы и переменные должны корректно инициализироваться.
…
rotation:=false;
k11:=3;
k33:=2;
k32:=5;
k31:=9;
endofgame:=False;
For i:=1 to 10 do
for j:=1 to 10 do
begin
bField1[i,j]:=0;
bField2[i,j]:=0;
end;
…