Программа учебного курса МЕТОДЫ ТЕСТИРОВАНИЯ ПРОГРАММ I. Организационно-методический раздел. Курс реализуется в рамках с...
38 downloads
126 Views
140KB Size
Report
This content was uploaded by our users and we assume good faith they have the permission to share this book. If you own the copyright to this book and it is wrongfully on our website, we offer a simple DMCA procedure to remove your content from our site. Start by pressing the button below!
Report copyright / DMCA form
Программа учебного курса МЕТОДЫ ТЕСТИРОВАНИЯ ПРОГРАММ I. Организационно-методический раздел. Курс реализуется в рамках специальности 220400 «Программное обеспечение вычислительной техники и автоматизированных систем», относится к циклу специальных дисциплин. 1.1.Цели и задачи курса Цели курса - формирования у студента правильного понимания задачи тестирования программ - систематизация знаний о способах достижения «хорошего» уровня тестированности программ Задачи курса - показать проблемы и важность этапа тестирования программ как одного из этапов ее разработки - рассмотреть основные критерии тестирования, остановиться на организации процедуры тестирования и одном из этапов тестирования - тестировании модулей - рассмотреть основные подходы (методы, алгоритмы) автоматизации этого важного этапа создания ПО на примерах систем автоматизации построения тестов и систем оценки полноты тестового набора
1.2.Требования к уровню освоения содержания курса По окончании изучения указанной дисциплины студент должен иметь представление - о средствах автоматизации тестирования - о формализмах применяемых для описания критериев тестирования знать - принципы тестирования - основные критерии тестирования - стратегию тестирования и критерии завершения тестирования - основные этапы тестирования уметь - создать хороший набор тестов для программы как основываясь на ее спецификации так и ее тексте - оценить качество набора тестов - при необходимости создать систему автоматизации этапов тестирования
1.3.Формы контроля Итоговый контроль. Для контроля усвоения дисциплины учебным планом предусмотрен экзамен по теоретической части. Текущий контроль. В течение семестра выполняется контрольная работа реферат.. Выполнение указанной работы обязательно для всех студентов, а ее результаты служат основанием для выставления оценок в ведомость контрольной недели на факультете.
2. Содержание дисциплины. 2.1.Новизна и актуальность курса Учебный курс концентрирует внимание на фундаментальных знаниях предметной области – принципах тестирования, невозможности создания полного набора тестов, на критериях тестирования и современных способах как решения проблем тестирования так и автоматизации данной предметной области.
2.2.Тематический план курса (распределение часов). часов Самостоятельная работа
Всего часов
4 15
3 13
7 28
5 2 10
4 0 6
9 2 16
36
26
62
Наименование разделов и тем Лекции 1. Введение 2.Проектирование тестов (методы или критерии тестирования) 3.Тестирование модулей 4. Стратегия тестирования. 5.Автоматизация тестирования Итого по курсу:
Количество ЛабораторСеминар ные работы ы
2.3.Содержание отдельных разделов и тем. А) Теоретическая часть
1. Введение. Этапы разработки программного обеспечения и этапы жизненного цикла программы. Временные диаграммы данных этапов. Обоснование необходимости рассмотрения методов тестирования программ. 1.2. Психология и экономика тестирования программ. Определения теста, тестирования, удачного теста. Экономика тестирования. Методология "черного" и "белого" ящика. Невозможность построения
полного теста в каждой из стратегий. Принципы тестирования.
2. Проектирование тестов (методы или критерии тестирования). 2.1. Критерии "черного" ящика. Эквивалентное разбиение, граничные значения, функциональные диаграммы и предположение об ошибке. 2.2. Критерии "белого" ящика. 2.2.1. Критерии потока управления. Покрытие операторов, покрытие решений или С1, покрытие условий, покрытие решений и условий, комбинаторное покрытие условий. 2.2.2. Критерии потока данных. Покрытие всех определений (all-defs), all-p-uses, all-c-uses/some-p-uses, all-p-uses/some-c-uses, покрытие всех def-use цепочек (all-uses), all-du-paths, покрытие контекстов используемых переменных (U-context), all_uses2 ( включает С1). Определение включения одного критерия в другой. Схема строгого включения для потоковых критериев, ее обоснование. 2.2.3. Критерии для определенных конструкций языка. Покрытие циклов (all-loops), критерий покрытия отношений, критерий покрытия рекурсии (all-rec), критерий покрытия вызовов процедур, критерий покрытия входных параметров и результатов процедур. 2.3. Мутационные критерии. 2.4. Формальное определение наиболее известных критериев. Демонстрация возможности формализации определения большинства критериев с помощью множества требуемых элементов и предиката покрытия.
3. Тестирование модулей. Проектирование тестов. Способ построения рабочей программы. Монолитное, пошаговое тестирование. Нисходящее и восходящее тестирование. Методы тестирования за столом - инспекции, сквозные просмотры и обзоры программ.
4. Стратегия тестирования. Стратегия тестирования. Критерии завершения тестирования.
5. Автоматизации тестирования. Основные направления автоматизации тестирования. Автоматизация построения тестов, символьное исполнение программ . Построение минимального дугового покрытия УГ и на его основе минимального набора тестов для критерия С1. Контроль качества набора тестов. Системы контроля полноты набора тестов для определенных критериев. Системы Тестор-Фортран, Ритм, TGS, OCT (инструментация исходного кода программ, язык описания тестовых условий., генератор отчетов, комплексный критерий). Инструментация объектного кода.
Б) Практические занятия Отсутствуют. 2.4. Перечень примерных контрольных вопросов и заданий для самостоятельной работы – см. раздел 3.1 (задания для контрольных работ), см. раздел 3.2 (вопросы для подготовки к экзамену).
3. Учебно-методическое обеспечение дисциплины
3.1. Задания для контрольных работ(рефератов) 1) Для заданного критерия «черного ящика» придумать спецификацию задачи и составить набор тестов. Для критерия функциональных диаграмм требуется построить функциональную диаграмму, таблицу решений и на ее основе набор тестов. 2) Для простой программы составить полные наборы тестов по критериям С0,С1, ...
3.2. Образцы вопросов для подготовки к экзамену Раздел 1. 1) Доказать невозможность полного набора тестов в каждой из стратегий. 2) Привести три наиболее важных принципа тестирования (с вашей точки зрения). 3) Дать определение тестирования. Раздел 2 4) Уметь определить любой критерий тестирования. 5) Сравнить различные (заданные) критерии на «вложенность» одного в другой. 6) Рассказать об основах формализма описания критериев. 7) Основы мутационного подхода и его проблемы. Раздел 3. 8) Дать определения пошагового и монолитного подходов. 9) Достоинства и недостатки этих подходов. 10) Достоинства и недостатки восходящего и нисходящего подходов. 11) Инспекции. Суть данного подхода. Раздел 4. 12) Сформулировать стратегию тестирования. 13) Привести наиболее «хороший» критерий завершения тестирования. Раздел 5. 14) Какие этапы тестирования можно автоматизировать. 15) Построение тестов с помощью символьного исполнения программ. 16) Оценка полноты набора тестов. Основные подходы. 3.3.Список основной и дополнительной литературы 1. Майерс Г. Искусство тестирования программ. - М.: Финансы и статистика, 1982. 2. Борзов Ю.В. Тестирование программ с использованием символического выполнения. //Программирование, 1980, N1, с. 51-60. 3. Кауфман А.В., Черноножкин С.К. Критерии тестирования и система оценки полноты набора тестов. //Программирование, 1998, N 6, с. 44-59 4. Кауфман А.В., Черноножкин С.К. ОСТ : система контроля тестированности Модула-2 программ. - Новосибирск, 1997. - 47 с., Препринт ИСИ СО РАН, № 38. 5. Кауфман А.В., Черноножкин С.К. Инструменты поддержки структурного тестирования в системе СОКРАТ. Сб. Средства и инструменты окружений программирования. Новосибирск, 1995. - С. 30-45. 6. Кауфман А.В., Черноножкин С.К. Структурное тестирование в системе СОКРАТ. Сб. Программные системы. - Новосибирск, 1996. - С. 135-148. 7. Катков В.П. Ритм-технология автоматизации программирования.
- АН Беларуси, ВЦ. - Минск., 1993, 202 с. 8. Липаев В.В. Тестирование программ. - М: Радио и связь, 1986, 296 с. 9. Архангельский Б.В., Абдуллаев Х.Х. ТЕСТОР-ФОРТРАН - система тестирования зарание заданных путей управляющего графа программы. //Управляющие системы и машины, 1990, N 5, с.62-72. 10. Frankl P., Weyuker E. An applicable family of data flow testing criteria // IEEE Trans. on Software Eng.- 1988.- Vol.SE-14, N 10.- P. 1483-1498. 11. Laski J., Luczycki P. System for testing and debugging, STAD 1.0. User Perspective. - Oakland Univ.: Technical Report TR-CSE-92-05-JWL-1, May 1992. 12. Howden W. Weak mutation testing and completness of test sets // IEEE Trans. on Software Eng. - 1982. - Vol.SE-8, N 4. - P. 371-379. 13. Rapps S., Weyuker Selecting software test data using data flow information // IEEE Trans. on Software Eng. - 1985.- Vol.SE-14, N 4. - P. 367-37 14. Канер С., Фолк Д., Нгуен Енг Кек Тестирование программного обеспечения. - «ДиаСофт», Киев, 2001, 543с. Программу подготовил: к.ф.-м.н., доцент
Черноножкин С.К.
Программа утверждена на заседании Ученого совета факультета информационных технологий Новосибирского государственного университета 18 декабря 2003 г., протокол заседания №16. Декан ФИТ НГУ, д.ф.-м.н.
М.М.Лаврентьев