Читайте также:
|
|
Рассматривается пример тестов на C# для класса TCommand (приложение 3 (HLD)). При выполнении заданий необходимо будет самостоятельно написать тесты для других классов приложения. Параллельно с изучением этого раздела полезно открыть проект ModuleTesting\ModuleTests.sln.
Рассмотрим тестирование класса TCommand. Этот класс реализует единственную операцию GetFullName(), которая возвращает полное название команды в виде строки. Разработаем спецификацию тестового случая для тестирования метода GetFullName на основе спецификации этого класса (приложение 3):
Название класса: TСommand
Название тестового случая: TСommandTest1
Описание тестового случая: Тест проверяет правильность работы метода GetFullName - получения полного названия команды на основе кода команды. В тесте подаются следующие значения кодов команд (входные значения): -1, 1, 2, 4, 6, 20, где -1 - запрещенное значение
Начальные условия: Нет
Ожидаемый результат:
Перечисленным входным значениям должны соответствовать следующие выходные:
Коду команды -1 должно соответствовать сообщение "ОШИБКА: Неверный код команды"
Коду команды 1 должно соответствовать полное название команды "ПОЛУЧИТЬ ИЗ ВХОДНОЙ ЯЧЕЙКИ"
Коду команды 2 должно соответствовать полное название команды "ОТПРАВИТЬ ИЗ ЯЧЕЙКИ В ВЫХОДНУЮ ЯЧЕЙКУ"
Коду команды 4 должно соответствовать полное название команды "ПОЛОЖИТЬ В РЕЗЕРВ"
Коду команды 6 должно соответствовать полное название команды "ПРОИЗВЕСТИ ЗАНУЛЕНИЕ"
Коду команды 20 должно соответствовать полное название команды "ЗАВЕРШЕНИЕ КОМАНД ВЫДАЧИ"
На основе спецификации был создан тестовый драйвер - класс TCommandTester, наследующий функциональность абстрактного класса Tester.
public class Log{static private StreamWriter log=newStreamWriter("log.log"); //Создание лог файлаstatic public void Add(string msg)//Добавление сообщения в лог файл{log.WriteLine(msg);}static public void Close() //Закрыть лог файл{log.Close();}}abstract class Tester{protected void LogMessage(string s)//Добавление сообщения в лог-файл{Log.Add(s);}}class TCommandTester:Tester // Тестовый драйвер{TCommand OUT;public TCommandTester(){OUT=new TCommand();Run();}private void Run(){TCommandTest1();}private void TCommandTest1(){int[] commands = {-1, 1, 2, 4, 6, 20};for(int i=0;i<=5;i++){OUT.NameCommand=commands[i];LogMessage(commands[i].ToString()+":"+OUT.GetFullName());}}[STAThread]static void Main(){TCommandTester CommandTester = new TCommandTester();Log.Close();}}Листинг 2.1. Тестовый драйвер (html, txt)
Класс TCommandTester содержит метод TCommandTest1(), в котором реализована вся функциональность теста. В данном случае для покрытия спецификации достаточно перебрать следующие значения кодов команд: -1, 1, 2, 4, 6, 20, где -1 - запрещенное значение, и получить соответствующие им полное название команды с помощью метода GetFullName(). Пары соответствующих значений заносятся в log-файл для последующей проверки на соответствие спецификации.
Таким образом, для тестирования любого метода класса необходимо:
Определить, какая часть функциональности метода должна быть протестирована, то есть при каких условиях он должен вызываться. Под условиями здесь понимаются параметры вызова методов, значения полей и свойств объектов, наличие и содержимое используемых файлов и т. д.
Создать тестовое окружение, обеспечивающее требуемые условия.
Запустить тестовое окружение на выполнение.
Обеспечить сохранение результатов в файл для их последующей проверки.
После завершения выполнения сравнить полученные результаты со спецификацией.
Рекомендуемая литература
Основная:
- Котляров В.П. Основы тестирования программного обеспечения. Интернет-университет информационных технологий - ИНТУИТ.ру, 2006
- Скопин И.Н. Основы менеджмента программных проектов. Интернет-университет информационных технологий - ИНТУИТ.ру, 2004
Дополнительная:
- Beizer B. Software Testing Techniques. ITP, 1990. - 550 pp.
- Boehm B. Software Engineering Economic. Prentice-Hall,Inc, N.J. 1981. - 767 pp.
- Макгрегор Дж, Сайкс Д. Тестирование объектно-ориентированного программного обеспечения. К: Диасофт, 2002. - 432с.
- Брукс Ф. Мифический человеко-месяц или как создаются программные системы. СПб.: Символ-Плюс, 1999. - 304с.
- Липаев В.В. Тестирование программ. М.: Радио и связь, 1986. - 296с.
- Канер С., Фолк Дж., Нгуен Енг. Тестирование программного обеспечения. К: ДиаСофт, 2000 - 544с.
- Рекомендации по преподаванию информатики в университетах. СПб., 2002 - 372с.
- IEEE Software Engineering Standards Collection 1997 Edition
- IEEE Standard Glossary of Software Engineering Technology
- IEEE Std 610.12-1990,
- Шимаров В. А. Тестирование программ: цели и особенности инструментальной поддержки // Программное обеспечение ЭВМ / АН БССР. Институт математики. Минск, 1994. - Вып. 100 - с. 19 - 43
- Goodenough J.B., Gerhart S.L. Toward a Theory of Test Data Selection. IEEE Transactions on Software Engineering, 1975, SE-1, №.2, p.156-193
- Moranda P.B. Asymptotic Limits to Program Testing, INFOTECH State of Art deport "Software Testing", v/2, 1979, p.201-210
- Halstead M. Elements of Software Science. Elsevier North-Holland, Inc. 1977, pp.109
- Herman P. M. A Data Flow Analysis Approach to Program Testing. Australian Computer Jornal. - 1976. - Vol. 8, № 3. pp. 92 - 96
- Ntafos S. C. A Comparition of Some Structural Testing Strategies. IEEE Transaction on Software Engineering. - 1988. - Vol. SE-14, № 6. pp. 868 - 874
- Борзов Ю. В., Уртанс Г. Б., Шимаров В. А. Выбор путей программы для построения тестов. УСиМ. - 1989. - N. 6 - с.29 - 36
- Shimarov V. A. Definition and quantitative estimation of testing criteria // Software Quality Concern for people. Proceedings of the Fourth European Conference on Software Quality. October 17 - 20, 1994, Basel, Switzerland. pp. 350 -360
- McCabe T. J., Schulmeyer G. G. System Testing Aided by Structured Analysis (A Practical Experience) // COMPSAC'82. Proc. IEEE Comput. Soc. 6th International Computer Software and Appl. Conference (Chicago, Ill, Nov. 8-12, 1982). - pp. 523 - 528
- McCabe T. J., Butler Ch. W. Design complexity measurement and testing. Communications of the ACM. 32, 12 (Dec, 1989), pp. 1415 - 1425
- Prather R., Myers J. P., Jr. The path prefix software testing strategy. IEEE Transactions on Software Engineering SE-13, 7 (July, 1987), pp. 761 - 766
- Фролов А. В., Фролов Г. В. Microsoft Visual C++ и MFC. Программирование для Windows 95 и Windows NT. М.: ДИАЛОГ-МИФИ, 1996. - 288 с. - (Библиотека системного программиста; Т. 24)
- Dorman M. N. C++ - It's Testing, Jim, But Not As We Know It. In Proc. of 5th European Conference in Software Testing, Analysis and Review (Edinburgh, Scotland, November 1997). - 13 p.],
- Jorgensen P. C., Erickson C. Object-Oriented Integration Testing. Communications of the ACM. 37, 9 (Sept, 1994), pp. 30 - 38
- Майерс Г. Искусство тестирования программ. М.: Финансы и статистика, 1982. -176 с.
- Beizer B. Software testing techniques. (Second edit.). International Thomson Computer Press, 1990. - 550p.
Дата добавления: 2015-11-14; просмотров: 61 | Нарушение авторских прав
<== предыдущая страница | | | следующая страница ==> |
ЛР №8 СИСТЕМНОЕ ТЕСТИРОВАНИЕ | | | Индивидуальные задания |