Файл: Отладка и тестирование программ: основные подходы и ограничения (Стратегии тестирования программного обеспечения).pdf
Добавлен: 31.03.2023
Просмотров: 1227
Скачиваний: 15
СОДЕРЖАНИЕ
1. Применение отладки при разработке программного обеспечения
1.2. Классификация видов отладки
2. Понятие тестирования программного обеспечения
2.1. Обзор задач, уровней и видов тестирования и отладки программного обеспечения
2.2. Этапы тестирования программного обеспечения
3. Стратегии тестирования программного обеспечения
3.1. Метод «белого и черного ящиков»
3.2. Отличия и взаимосвязь ручного и автоматизированного тестирования ПО
Мартин и Мак-Клер (Martin & mcClure) подытожили собранные Боэмом (Boehm) данные об эффективности исправления найденных ошибок:
− если для исправления ошибки нужно изменить не более десяти операторов, вероятность того, что это будет сделано правильно с первого раза, составляет 50 процентов;
− если для исправления ошибки нужно изменить около пятидесяти операторов, вероятность того, что это будет сделано правильно с первого раза, составляет 20 процентов. Проблема заключается не только в том, что программист не сможет исправить ошибку до конца, а в том, что исправления могут иметь побочные эффекты. Например, исправление одной ошибки способно привести к появлению другой. Именно поэтому автоматические тесты нужны и их наличие необходимо[62].
Тогда возникает вопрос: – «Как поступить с частями кода, которые еще не покрыты автоматическими тестами? К примеру, если это новая функциональность программного обеспечения?». В таком случае, конечно же, эффективным и быстрым будет осуществление ручной проверки кода, в процессе которой обнаруживаются дефекты, далее программисты их исправляют, и так продолжается до тех пор, пока продукт не приобретает должную стабильность[63]. И только после проведения такой проверки, можно заниматься написанием автоматических тестов.
Зачастую «ручной тестировщик» перед проверкой составляет конкретный тест-план, по которому осуществляет проверку программного кода[64]. Данный тест-план в дальнейшем может послужить псевдокодом для написания автоматических тестов.
Таким образом, становится очевидно, что ручное и автоматизированное тестирование не взаимозаменяемы, и только их совместное использование может повысить качество программного обеспечения.
Итак, совместное использование автоматизированного и ручного тестирования значительно ускоряет процесс анализа программного кода в целом. Повторяющиеся один за одним тесты, достаточно сложно выполнять вручную, поэтому значительно проще запустить автотест. А вот для тестирования новых функциональных возможностей программного приложения, релиз которого не следует откладывать, необходимо сначала осуществить ручное тестирование, по причинам, которые были описаны ранее.
ЗАКЛЮЧЕНИЕ
В настоящее время внедрение автоматизированных систем (АС) на производстве способствует не только повышению эффективности управления и результативности производственного процесса, но и формированию продуктивных клиентских отношений, обеспечивающих прибыль компании.
Сбои в работе АС приводят к простою, а значит и потере прибыли. Поэтому в процессе создания АС большое внимание уделяется обеспечению их качества.
В первую очередь качество АС обеспечивается качеством его программного обеспечения. Качество ПО, в свою очередь, характеризуется набором свойств, рассматриваемых с точки зрения заинтересованных сторон, таких как бизнес-заказчик, конечные пользователи, разработчики и тестировщики, инженеры поддержки, сотрудники отделов обучения, продаж и маркетинга. Все эти люди могут иметь различное представление о том, насколько высоко качество ПО. Таким образом, постановка задачи обеспечения качества основана на определении заинтересованных сторон, выявлении критериев для оценки качества и последующего нахождения рационального решения, удовлетворяющего поставленным критериям. Тестирование – это один из наиболее действенных способов обеспечения качества разработки ПО.
Если рассматривать тестирование с технической точки зрения, то процесс заключается в выполнении программы на определенном множестве исходных данных и проверке соответствия получаемых результатов набору заранее определенных эталонов с целью выявления различных свойств и характеристик программного обеспечения, отличающихся от свойств, определенных заказчиком в требованиях.
В более широком смысле тестирование – это одна из техник контроля качества, включающая в себя активности по планированию и управлению процессом, проектированию тестов, непосредственного выполнения тестирования и анализу полученных результатов.
Ошибки могут возникать на всех стадиях разработки ПО, и для их обнаружения следует использовать разные подходы к тестированию. В рамках повышения тестового покрытия необходимо изменять угол обзора на объект тестирования: рассматривать разные уровни детализации программы (отдельный модуль, взаимодействующие компоненты), выявлять ошибки для старой и новой функциональности, модифицировать уровень доступа к исходному коду (тестирование черного и белого ящика). Кроме этого, улучшения качества ПО можно достичь с помощью изменения объекта тестирования, а повышение скорости тестирования – за счет внедрения автоматизированного тестирования.
СПИСОК ИСПОЛЬЗОВАННЫХ ИСТОЧНИКОВ
Описание книг одного-трех авторов
Блэк Р. Ключевые процессы тестирования. Планирование, подготовка, проведение, совершенствование – М.: Издательство «Лори», 2017.
В. В. Кулямин. Технологии программирования. Компонентный подход. М. Интернет-университет информационных технологий — БИНОМ. Лаборатория знаний, 2017
Вигерс, Карл. Разработка требований к программному обеспечению / Карл Вигерс , Джой Битти. - М.: БХВ-Петербург, Русская Редакция, 2014
Винниченко И.В. Автоматизация процессов тестирования / И.В. Винниченко. – СПб.: Питер, 2015
Инструменты параллельного программирования в системах с общей памятью. 2-е изд. М., 2010
Канер Сэм. Тестирование программного обеспечения. Фундаментальные концепции менеджмента бизнес-приложений: Пер. с англ. /Сэм Канер, Джек Фолк, Енг Кек Нгуен. – К.: Издательство «ДиаСофт», 2001
Керниган, Брайан Практика программирования / Брайан Керниган , Роб Пайк. - М.: Вильямс, 2015
Котляров В. П., Коликова Т.В. Основы тестирования программного обеспечения – М.: Интернет-Университет Информационных Технологий; БИНОМ. Лаборатория знаний, 2016
Орлик С. Основы программной инженерии по SWEBOK (Software Engineering Body of Knowledge). Программная инженерия. Тестирование программного обеспечения. Сopyright, 2017
Хант Э. Программист-прагматик. Путь от подмастерья к мастеру / Э. Хант, Д. Томас. - М.: ЛОРИ, 2016
Описание учебников и учебных пособий
Вишневская Т.И., Романова Т.Н. Технология программирования: метод. указ. к лаборат. практикуму. Ч. 1. – М.: МГТУ им. Н.Э. Баумана, 2017
Макгрегор Дж., Сайкc Д. Тестирование объектноориентированного программного обеспечения: практическое пособие разработчикам, менеджерам проектов, программистам. – М.: DiaSoft, 2012
Поляк, Б. Т. Введение в оптимизацию / Б.Т. Поляк. - М.: Ленанд, 2014
Сенченко П.В. Надежность, эргономика и качество АСОИУ: учеб. пособие. – Томск: ТУСУР, 2015
Технология программирования. Основы современного тестирования программного обеспечения, разработанного на C#: учеб. пособие / под общ. ред. В.П. Котлярова. – СПб.: СПбГПУ, 2014
Описание статьи из периодического издания
Ананченко И.В., Распопа Е.А., Хаджиев И.В. Практики тестирования в сфере локализации программного обеспечения // Современные наукоемкие технологии. - 2018. - № 7.
Волосенков В.О., Морозов А.В. Способ построения средств комплексной отладки программного обеспечения специализированных ЭВМ, функционирующих в режиме реального времени // Вестник Оренбургского государственного университета. - 2016. - № 2
Волосенков В.О., Попрыгина Е.В. Способ автоматизации отладки параллельных программ // Проблемы безопасности российского общества. - 2015. - № 2
Галимова Е.Ю. Метод выбора между ручным и автоматизированным тестированием, основанный на свойствах программного продукта // Вестник Дон.ГТУ. 2016, – Т. 16. – № 4(87).
Золотухина Е.Б., Макарова Е.А., Беляков А.А.Обзор методов тестирования программного обеспечения // Аллея науки. - 2018. - Т. 4. - № 6 (22)
Казыханов А.А., Байрушин Ф.Т. К Вопросу О Тестировании Отраслевого Программного Обеспечения // Аллея науки. - 2018. - Т. 2. - № 1 (17)
Крякушина Ю.А. Оценка методов тестирования // Электронные средства и системы управления. - 2016. - № 1-2
Лопатина К.И., Темникова Е.А. Ручное и автоматизированное тестирование программного обеспечения отличия и взаимозаменяемость // Вестник современных исследований. - 2017. - № 10-1 (13)
Нестеренко Е.И., Куклина К.Е., Шведенко П.В. Обзор задач, уровней и видов тестирования программного обеспечения // Новая наука: Проблемы и перспективы. - 2016. - № 2-1 (61)
Омарова М.О. Анализ инструментов отладки параллельных программ // Молодежный научно-технический вестник. - 2015. - № 9
Сенченко П.В. Обоснование целесообразности применения web-ориентированных технологий при разработке информационных систем электронного документооборота // Проблемы теории и практики управления. – 2016. – № 6
Описание интернет-источников
Geektimes / [Электронный ресурс] – Режим доступа: https://geektimes.ru/ (Дата обращения: 15.12.2018)
- habrahabr / [Электронный ресурс] – Режим доступа: https://habrahabr.ru/ (Дата обращения: 15.12.2018)
Software testing training and stoftware testing services [Электронный ресурс]. – Режим доступа: http://www.rbcsus.com/ (Дата обращения: 15.12.2018)
Tpl-it. Тестирование безопасности (security testing). Электронный ресурс]. Режим доступа: http://tpl-it.wikispaces.com/ /·+Тестирование +безопасности+%28security+testing%29 (дата обращения: 15.12.2018)
БЛОГ Web Программиста. Методы тестирования программного обеспечения). Электронный ресурс]. Режим доступа: http://juicehealth.ru/program/software-testing/495-software-testing-%20methods (дата обращения: 15.12.2018)
Про Тестинг. Тестирование Программного Обеспечения. [Электронный ресурс]. Режим доступа: http://www.protesting.ru/testing (дата обращения: 15.12.2018)
-
Инструменты параллельного программирования в системах с общей памятью. 2-е изд. М., 2010 ↑
-
Вигерс, Карл. Разработка требований к программному обеспечению / Карл Вигерс , Джой Битти. - М.: БХВ-Петербург, Русская Редакция, 2014 ↑
-
Волосенков В.О., Попрыгина Е.В. Способ автоматизации отладки параллельных программ // Проблемы безопасности российского общества. - 2015. - № 2 ↑
-
Инструменты параллельного программирования в системах с общей памятью. 2-е изд. М., 2010 ↑
-
Волосенков В.О., Попрыгина Е.В. Способ автоматизации отладки параллельных программ // Проблемы безопасности российского общества. - 2015. - № 2. ↑
-
Волосенков В.О., Морозов А.В. Способ построения средств комплексной отладки программного обеспечения специализированных ЭВМ, функционирующих в режиме реального времени // Вестник Оренбургского государственного университета. - 2016. - № 2 ↑
-
Омарова М.О. Анализ инструментов отладки параллельных программ // Молодежный научно-технический вестник. - 2015. - № 9 ↑
-
Инструменты параллельного программирования в системах с общей памятью. 2-е изд. М., 2010 ↑
-
Хант, Э. Программист-прагматик. Путь от подмастерья к мастеру / Э. Хант, Д. Томас. - М.: ЛОРИ, 2016 ↑
-
Инструменты параллельного программирования в системах с общей памятью. 2-е изд. М., 2010 ↑
-
Волосенков В.О., Морозов А.В. Способ построения средств комплексной отладки программного обеспечения специализированных ЭВМ, функционирующих в режиме реального времени // Вестник Оренбургского государственного университета. - 2016. - № 2 ↑
-
Вигерс, Карл Разработка требований к программному обеспечению / Карл Вигерс , Джой Битти. - М.: БХВ-Петербург, Русская Редакция, 2014 ↑
-
Керниган, Брайан Практика программирования / Брайан Керниган , Роб Пайк. - М.: Вильямс, 2015 ↑
-
Хант, Э. Программист-прагматик. Путь от подмастерья к мастеру / Э. Хант, Д. Томас. - М.: ЛОРИ, 2016 ↑
-
Керниган, Брайан Практика программирования / Брайан Керниган , Роб Пайк. - М.: Вильямс, 2015 ↑
-
Поляк, Б. Т. Введение в оптимизацию / Б.Т. Поляк. - М.: Ленанд, 2014 ↑
-
Орлик С. Основы программной инженерии по SWEBOK (Software Engineering Body of Knowledge). Программная инженерия. Тестирование программного обеспечения. Сopyright, 2017 ↑
-
Котляров В. П., Коликова Т.В. Основы тестирования программного обеспечения – М.: Интернет-Университет Информационных Технологий; БИНОМ. Лаборатория знаний, 2016 ↑
-
Блэк Р. Ключевые процессы тестирования. Планирование, подготовка, проведение, совершенствование – М.: Издательство «Лори», 2017. ↑
-
БЛОГ Web Программиста. Методы тестирования программного обеспечения). Электронный ресурс]. Режим доступа: http://juicehealth.ru/program/software-testing/495-software-testing-%20methods (дата обращения: 15.12.2018) ↑
-
Про Тестинг. Тестирование Программного Обеспечения. [Электронный ресурс]. Режим доступа: http://www.protesting.ru/testing (дата обращения: 15.12.2018) ↑
-
В. В. Кулямин. Технологии программирования. Компонентный подход. М. Интернет-университет информационных технологий — БИНОМ. Лаборатория знаний, 2017 ↑
-
Tpl-it. Тестирование безопасности (security testing). Электронный ресурс]. Режим доступа: http://tpl-it.wikispaces.com/ /·+Тестирование +безопасности+%28security+testing%29 (дата обращения: 15.12.2018) ↑
-
Блэк Р. Ключевые процессы тестирования. Планирование, подготовка, проведение, совершенствование – М.: Издательство «Лори», 2017 ↑
-
Золотухина Е.Б., Макарова Е.А., Беляков А.А.Обзор методов тестирования программного обеспечения // Аллея науки. - 2018. - Т. 4. - № 6 (22) ↑
-
Нестеренко Е.И., Куклина К.Е., Шведенко П.В. Обзор задач, уровней и видов тестирования программного обеспечения // Новая наука: Проблемы и перспективы. - 2016. - № 2-1 (61) ↑
-
Казыханов А.А., Байрушин Ф.Т. К Вопросу О Тестировании Отраслевого Программного Обеспечения // Аллея науки. - 2018. - Т. 2. - № 1 (17). ↑
-
Geektimes / [Электронный ресурс] – Режим доступа: https://geektimes.ru/ (Дата обращения: 15.12.2018) ↑
-
habrahabr / [Электронный ресурс] – Режим доступа: https://habrahabr.ru/ (Дата обращения: 15.12.2018) ↑
-
habrahabr / [Электронный ресурс] – Режим доступа: https://habrahabr.ru/ (Дата обращения: 15.12.2018) ↑
-
Geektimes / [Электронный ресурс] – Режим доступа: https://geektimes.ru/ (Дата обращения: 15.12.2018) ↑
-
Казыханов А.А., Байрушин Ф.Т. К Вопросу О Тестировании Отраслевого Программного Обеспечения // Аллея науки. - 2018. - Т. 2. - № 1 (17) ↑
-
Технология программирования. Основы современного тестирования программного обеспечения, разработанного на C#: учеб. пособие / под общ. ред. В.П. Котлярова. – СПб.: СПбГПУ, 2014 ↑
-
Вишневская Т.И., Романова Т.Н. Технология программирования: метод. указ. к лаборат. практикуму. Ч. 1. – М.: МГТУ им. Н.Э. Баумана, 2017 ↑
-
Сенченко П.В. Обоснование целесообразности применения web-ориентированных технологий при разработке информационных систем электронного документооборота // Проблемы теории и практики управления. – 2016. – № 6 ↑
-
Сенченко П.В. Надежность, эргономика и качество АСОИУ: учеб. пособие. – Томск: ТУСУР, 2015 ↑
-
Крякушина Ю.А. Оценка методов тестирования // Электронные средства и системы управления. - 2016. - № 1-2 ↑
-
Вишневская Т.И., Романова Т.Н. Технология программирования: метод. указ. к лаборат. практикуму. Ч. 1. – М.: МГТУ им. Н.Э. Баумана, 2017 ↑
-
Вишневская Т.И., Романова Т.Н. Технология программирования: метод. указ. к лаборат. практикуму. Ч. 1. – М.: МГТУ им. Н.Э. Баумана, 2017 ↑
-
Крякушина Ю.А. Оценка методов тестирования // Электронные средства и системы управления. - 2016. - № 1-2 ↑
-
Макгрегор Дж., Сайкc Д. Тестирование объектноориентированного программного обеспечения: практическое пособие разработчикам, менеджерам проектов, программистам. – М.: DiaSoft, 2012 ↑
-
Крякушина Ю.А. Оценка методов тестирования // Электронные средства и системы управления. - 2016. - № 1-2 ↑
-
Сенченко П.В. Обоснование целесообразности применения web-ориентированных технологий при разработке информационных систем электронного документооборота // Проблемы теории и практики управления. – 2016. – № 6 ↑
-
Технология программирования. Основы современного тестирования программного обеспечения, разработанного на C#: учеб. пособие / под общ. ред. В.П. Котлярова. – СПб.: СПбГПУ, 2014 ↑
-
Технология программирования. Основы современного тестирования программного обеспечения, разработанного на C#: учеб. пособие / под общ. ред. В.П. Котлярова. – СПб.: СПбГПУ, 2014 ↑
-
Крякушина Ю.А. Оценка методов тестирования // Электронные средства и системы управления. - 2016. - № 1-2 ↑
-
Макгрегор Дж., Сайкc Д. Тестирование объектноориентированного программного обеспечения: практическое пособие разработчикам, менеджерам проектов, программистам. – М.: DiaSoft, 2012 ↑
-
Крякушина Ю.А. Оценка методов тестирования // Электронные средства и системы управления. - 2016. - № 1-2 ↑
-
Сенченко П.В. Обоснование целесообразности применения web-ориентированных технологий при разработке информационных систем электронного документооборота // Проблемы теории и практики управления. – 2016. – № 6 ↑
-
Макгрегор Дж., Сайкc Д. Тестирование объектноориентированного программного обеспечения: практическое пособие разработчикам, менеджерам проектов, программистам. – М.: DiaSoft, 2012 ↑
-
Вишневская Т.И., Романова Т.Н. Технология программирования: метод. указ. к лаборат. практикуму. Ч. 1. – М.: МГТУ им. Н.Э. Баумана, 2017 ↑
-
Технология программирования. Основы современного тестирования программного обеспечения, разработанного на C#: учеб. пособие / под общ. ред. В.П. Котлярова. – СПб.: СПбГПУ, 2014 ↑
-
Сенченко П.В. Обоснование целесообразности применения web-ориентированных технологий при разработке информационных систем электронного документооборота // Проблемы теории и практики управления. – 2016. – № 6 ↑
-
Крякушина Ю.А. Оценка методов тестирования // Электронные средства и системы управления. - 2016. - № 1-2 ↑
-
Сенченко П.В. Обоснование целесообразности применения web-ориентированных технологий при разработке информационных систем электронного документооборота // Проблемы теории и практики управления. – 2016. – № 6 ↑
-
Макгрегор Дж., Сайкc Д. Тестирование объектноориентированного программного обеспечения: практическое пособие разработчикам, менеджерам проектов, программистам. – М.: DiaSoft, 2012 ↑
-
Software testing training and stoftware testing services [Электронный ресурс]. – Режим доступа: http://www.rbcsus.com/ ↑
-
Крякушина Ю.А. Оценка методов тестирования // Электронные средства и системы управления. - 2016. - № 1-2 ↑
-
Лопатина К.И., Темникова Е.А. Ручное и автоматизированное тестирование программного обеспечения отличия и взаимозаменяемость // Вестник современных исследований. - 2017. - № 10-1 (13) ↑
-
Канер Сэм. Тестирование программного обеспечения. Фундаментальные концепции менеджмента бизнес-приложений: Пер. с англ. /Сэм Канер, Джек Фолк, Енг Кек Нгуен. – К.: Издательство «ДиаСофт», 2001 ↑
-
Ананченко И.В., Распопа Е.А., Хаджиев И.В. Практики тестирования в сфере локализации программного обеспечения // Современные наукоемкие технологии. - 2018. - № 7. ↑
-
Винниченко И.В. Автоматизация процессов тестирования / И.В. Винниченко. – СПб.: Питер, 2015 ↑
-
Винниченко И.В. Автоматизация процессов тестирования / И.В. Винниченко. – СПб.: Питер, 2015 ↑
-
Галимова Е.Ю. Метод выбора между ручным и автоматизированным тестированием, основанный на свойствах программного продукта // Вестник Дон.ГТУ. 2016, – Т. 16. – № 4(87). ↑