Студопедия

Главная страница Случайная страница

КАТЕГОРИИ:

АвтомобилиАстрономияБиологияГеографияДом и садДругие языкиДругоеИнформатикаИсторияКультураЛитератураЛогикаМатематикаМедицинаМеталлургияМеханикаОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРелигияРиторикаСоциологияСпортСтроительствоТехнологияТуризмФизикаФилософияФинансыХимияЧерчениеЭкологияЭкономикаЭлектроника






Выбор стратегии тестирования и разработка тестов






 

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

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

Исходными данными для этапа тестирования явились техническое задание и разработанные на предыдущих этапах структурная и функциональная схемы программного продукта.

Эксперименты показали, что с точки зрения нахождения ошибок, достаточно эффективными являются методы ручного контроля. Поэтому один или несколько из них должны использоваться в каждом программном проекте. Методы ручного контроля предназначены для периода разработки, когда программа закодирована, но тестирование на машине еще не началось. Доказано, что эти методы способствуют существенному увеличению производительности и повышению надежности программ и с их помощью можно находить от 30 до 70% ошибок логического проектирования и кодирования.

Основными методами ручного тестирования являются:

¾ инспекция исходного текста;

¾ сквозные просмотры;

¾ просмотры за столом;

¾ обзоры программ.

Также одним из способов проверки программ является стратегия тестирования, называемая стратегией «черного ящика» или тестированием с управлением по данным. В этом случае программа рассматривается как «черный ящик» и такое тестирование имеет целью выяснение обстоятельств, в которых поведение программы не соответствует спецификации.

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

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

При тестировании данного продукта соблюдались следующие основные принципы:

1. Предполагаемые результаты должны быть известны до тестирования.

2. Следует избегать тестирования программы автором.

3. Необходимо досконально изучать результаты каждого теста.

4. Необходимо проверять действия программы на неверных данных.

5. Необходимо проверять программу на неожиданные побочные эффекты.

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

7. Вероятность наличия ошибки в части программы пропорциональна количеству ошибок, уже обнаруженных в этой части.

Методом «черного ящика» производилась проверка правильности выполнения условий вызова той или иной функции и т.п. При дальнейшей реализации программы ошибки были устранены и применены меры по предотвращению подобных ошибок.

Ниже в таблице приведены тесты готового программного продукта по принципу «черного ящика»:

 

Таблица 1

Номер Теста Назначение Теста Значения исходных данных Ожидаемый результат Реакция программы Вывод
1. Проверить правильность взаимодействия программы с клавиатурой и мышью Ввод цифр от 1 до 9, переход между ячейками при нажатии клавиши Tab, вставка курсора в ячеку нажатую левой клавишей мыши Ввод цифр от 1 до 9, переход между ячейками при нажатии клавиши Tab, вставка курсора в ячеку нажатую левой клавишей мыши Корректно вводит цифры, перемещается между ячейками при нажатии на клавишу Tab, вставка курсора в ячеку нажатую левой клавишей мыши Система правильно осуществляет функцию взаимодействия программы с клавиатурой и мышью
2. Проверить правильность работы кнопок «Цвет фона» Нажатие одной из кнопок «Цвет фона» Изменить фон окна программы на необходимый Программа изменяет фон окна программы в соответствии с выбранным цветом Система правильно осуществляет кнопку «Цвет фона»
3. Проверить правильность работы кнопки «Применить» Нажатие кнопки «Применить» Изменить цвет текста окна программы, кроме цвета текста кнопок, на тот который выбран в области «Цвет текста» Программа изменяет цвет текста окна программы в соответствии с выбранным цветом в области «Цвет текста» Система правильно осуществляет кнопку «Применить»
4. Проверить правильность работы выбора уровня сложности Выбирается уровень сложности Выдать уровни 1, 2 и 3 Программа выдает уровни сложности и отражается на игре Система правильно осуществляет кнопку выбора уровня сложности

 

 

Заключение

 

Конец ХХ – начало ХХI века характеризуется активным внедрением в деятельность человека компьютерных информационных технологий, особенно разработка логических компьютерных игр, что подтверждает актуальность выбранной темы.

При написании курсовой работы было спроектирована и реализована программа «Компьютерная игра sudoku» в соответствии с техническим заданием, представленным в Приложении 1.

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

В результате разработки приложения компьютерной игры была достигнута поставленная цель – создана компьютерная игра «sudoku».Для этого были разработаны алгоритмы и программы для реализации данного приложения с использованием современной технологии программирования. Программное приложение реализовано с использованием объектно-ориентированной технологии программирования. Тестирование, разрабатываемого приложения показало работоспособность компьютерной игры, целостность и структурированность.

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

Предполагаемая область применения компьютерной игры «sudoku»: проведение досуга детей в возрасте 12-16 лет, обучающихся второй ступени, средних учебных заведений, например, в рамках внеклассных мероприятий. Игра адресована учителям, учащимся и их родителям, а так же всем тем, кто интересуется развитием логического мышления, тренировки памяти и математических способностей.

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

 

Список литературы

алгоритм программа компьютерная игра

1. Ашарина, И.В. Основы программирования на языках С и С++: учебный курс/ И.В. Ашарина; - М.: Горячая линия – Телеком, 2002. – 207с.: ил.; Библиогр.: 15. – 5000 экз. – ISBN 5-93517-076-0.

2. Галисеев, Г.В. " Программирование в среде Delphi 7.": самоучитель/ Г.В. Галисеев; — М.: Вильямс, 2004. — 288 с.: ил. ISBN 5-8459-0427.

3. Культин, Н. Основы программирования в Delphi 7. – СПб.БХВ - Петербург, 2007. – 608 с.: ил.+ CD –ROM; Библиогр.: с.143, 507-509. – 2000 экз. – ISBN 978-5-94157-269-4.

4. Культин, Н. Delphi 4. Программирование на Object Pascal.. – СПб.БХВ - Петербург, 2007. – 608 с.: ил.; Библиогр.: с.254, 507-509. – 2000 экз. – ISBN 978-5-94757-265-4. Кэнту, М. Delphi 2005 для профессионалов/ М. Кэнту; — СПб.: Питер, 2006. — 907 с.: ил.: ISBN 5-469-01235-2.

5. Павловская, Т.А. C++. Программирование на языке высокого уровня: Учебник для вузов/ Т.А. Павловская; — СПб.: Питер, 2007. — 437 с.: ил.: ISBN 5-91180-174-4.

6. Прайс, Д. Программирование на языке Паскаль: Практическое руководство: учебное издание/ Под ред. Д.Прайсд; В2Т.— П86, М.: Гуманит издательский центр ВЛАДОС, 2003. — Т.1. — 312 с.: ил. ISBN 5-691-00340-

7. Семакин, И.Г. Основы программирования: учебник/ И.Г. Семакин, Ф.П. Шестаков; — М.: Мастерство, 2001.— 432с.: ил ISBN 5-294-00054-7.

8. Фаронов, В.В. Программирование на языке высокого уровня: учебник для вузов/ В.В. Фаронов; — СПб.: Питер, 2005 — 640 с.: ил. ISBN 5-8046-0008-7.

9. Фленов, М.Е. Delphi 2005. Секреты программирования: учебник/ М.Е. Фленов; - Си++. Изд. 2-е перераб. и доп. – М.: Горячая линия – Телеком, 2001. – 232с.: ил. – 5000 экз. – ISBN 5-93517-046-9.

10. Wei-Meng Lee. Programming Sudoku/Wei-Meng Lee; 2006;

ISBN-13 (pbk): 978-1-59059-662-3

ISBN-10 (pbk): 1-59059-662-5

Приложение А

 

“УТВЕРЖДАЮ”

__________________________

“___”_______________20__ г.

 

ТЕХНИЧЕСКОЕ ЗАДАНИЕ

на разработку игры «Судоку»

 

1. ВВЕДЕНИЕ

1.1. Наименование продукта

Игра «Судоку»

1.2. Краткая характеристика области применения

Предназначена для развития мышления.

 

2. ОСНОВАНИЕ ДЛЯ РАЗРАБОТКИ

2.1. Документ, на основании которого ведется разработка: Задание на курсовую работу по дисциплине «Программирование».

2.2. Организация, утвердившая документ

Федеральное государственное бюджетное образовательное учреждение высшего профессионального образования Югорский государственный университет

 

3. НАЗНАЧЕНИЕ РАЗРАБОТКИ

Реализовать генерацию задач Судоку и их решение в автоматическом и ручном режимах.

 

4. ТРЕБОВАНИЯ К РАЗРАБОТКЕ

4.1. Требования к функциональным характеристикам

4.1.1. Меню со стандартным набором функций.(сохранить, загрузить, графические настройки)

4.1.2. Выбрать уровень, выбор размера поля игры.

4.1.3 Запустить новую игру.

4.1.4 Решить автоматически.

4.2. Требования к надежности

4.2.1. Безотказная работа программного обеспечения генератор задач «Судоку» при условии безотказной работы операционной системы компьютера.

4.3. Требования к информационной и программной совместимости

Для функционирования данного генератора задач необходимы операционная система Windows XP/Vista.

 

5. ТРЕБОВАНИЯ К ПРОГРАММНОЙ ДОКУМЕНТАЦИИ

Состав программной документации:

• Техническое задание;

• Пояснительная записка;

• Руководство пользователя.

 

6. ТЕХНИКО-ЭКОНОМИЧЕСКИЕ ПОКАЗАТЕЛИ

Генератор задач – аналог известных Math-o-Gen, Sudoku Master.


 

7. СТАДИИ И ЭТАПЫ РАЗРАБОТКИ

Содержание этапа Срок Форма отчетности Ответственный
    начало конец    
  Выбор и утверждение задания на КР   17.1012 17.12.12 Задание на КР Лупу А.Ю.
  Разработка и утверждение ТЗ 18.10.12 26.10.12 ТЗ Балов И.С.
  Проектирование программы
3.1 Структурная схема данных, функциональная схема 26.10.12 01.11.12 ПЗ Балов И.С.
3.2 Спецификация основных функций 26.10.12 01.11.12 ПЗ Лупу А.Ю.
  Кодирование программы
4.1 Меню, интерфейс, поле     01.11.12 08.11.12 Исходный код Балов И.С.
4.2 управление мышью, ввод с клавиатуры 08.11.12 15.11.12 Балов И.С.
4.3 Генерация чисел 08.11.12 15.11.12 Лупу А.Ю.
4.4 Обработчик ответов 08.11.12 15.11.12 Лупу А.Ю.
  Тестирование программы
5.1 Тестирование основных сценариев для пунктов 4.1., 4.2 15.11.12 20.11.12 ПЗ Лупу А.Ю.

 

Содержание этапа Срок Форма отчетности Ответственный
5.2 Тестирование некорректных действий для пунктов 4.1., 4.2., 4.1.3, 4.1.4. 20.11.12 25.11.12 ПЗ Лупу А.Ю.
5.3 Тестирование основных сценариев для пунктов 4.3., 4.4., 4.1.1., 4.1.2. 15.11.12 20.11.12 ПЗ Балов И.С.
5.4 Тестирование некорректных действий для пунктов 4.3., 4.4. 20.11.12 25.11.12 ПЗ Балов И.С.
  Оформление пояснительной записки
6.1 Разделы 1-4 25.11.12 29.11.12 ПЗ Балов И.С.
6.2 Разделы 5-8 25.11.12 29.11.12 ПЗ Лупу А.Ю.
  Защита курсовой работы
7.1 Слайды 1-8 29.11.12 03.12.12 Слайды, доклад Балов И.С.
7.2 Слайды 9-12, демонстрация работоспособности 29.11.12 03.12.12 Слайды, доклад Лупу А.Ю.

 

8. ПОРЯДОК КОНТРОЛЯ И ПРИЕМКИ

Приемка осуществляется в соответствии с Техническим заданием.

 

Приложение B

Интересный код программы

function sudInLine(s: TSudoku; p: TPoint; v: integer): boolean; {проверяем можно ли цифру подставить на данное место}

var

i: 1..9;

begin

Result: =True;

for i: =1 to 9 do

if p.y< > i then {есть ли данное значение в строке}

if s[p.X, i]=v then Exit;

Result: =False;

end;

 

function sudInRow(s: TSudoku; p: TPoint; v: integer): boolean;

var

i: 1..9;

begin

Result: =True;

for i: =1 to 9 do

if p.x< > i then {есть ли данное значение в столбце}

if s[i, p.Y]=v then Exit;

Result: =False;

end;

 

function sudInSq(s: TSudoku; p: TPoint; v: integer): boolean;

var

ix, iy: 0..8;

lx, ly: 0..8;

begin

lx: =0; ly: =0;

if p.x in [1, 2, 3] then lx: =1; {есть ли данное значение в квадрате}

if p.x in [4, 5, 6] then lx: =4;

if p.x in [7, 8, 9] then lx: =7;

lx: =lx-1;

if p.y in [1, 2, 3] then ly: =1;

if p.y in [4, 5, 6] then ly: =4;

if p.y in [7, 8, 9] then ly: =7;

ly: =ly-1;

Result: =True;

for ix: =1 to 3 do

for iy: =1 to 3 do

if (p.x< > lx+ix) and (p.y< > ly+iy) then

if s[lx+ix, ly+iy]=v then Exit;

Result: =False;

end;

 

function sudInAny(s: TSudoku; p: TPoint; v: integer): boolean; {если цифра есть в линии, столбце или квадрате, то мы ее не берем}

begin

Result: =sudInLine(s, p, v) or sudInRow(s, p, v) or sudInSq(s, p, v);

end;

 


Поделиться с друзьями:

mylektsii.su - Мои Лекции - 2015-2024 год. (0.025 сек.)Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав Пожаловаться на материал