Введение 3
1. Цели и задачи 7
1.1 Производственная деятельность 7
1.2 Информационная технология 13
1.2.1 Построение сценария информационного процесса 13
1.3 Формулирование целей и задач 14
2. Математическое обеспечение 17
2.1 Построение математической модели 17
2.1.1 Задача выявления факторов тестирования, влияющих на уровень
качества программного обеспечения 17
2.1.2 Задача установления статистических зависимостей между факторами
тестирования и уровнем качества программного обеспечения 21
2.2 Разработка методов решения задач 27
2.2.1 Задача выявления факторов тестирования, влияющих на уровень
качества 27
2.2.2 Установление статистических зависимостей между факторами
тестирования и уровнем качества программного обеспечения 29
2.3 Решение задачи на контрольном примере 31
2.3.1 Задача выявления факторов тестирования, влияющих на уровень
качества 31
2.3.2 Задача установления статистических зависимостей между факторами
тестирования и модулями приложения 51
Заключение 70
Список использованных источников 71
Приложение
Неотъемлемой частью цикла разработки какого-либо программного продукта являются проводимые на разных стадиях измерения, которые показывают эффективность выполняемых работ и их качество. Стадия тестирования продукта сопровождается различными метриками, которые являются средством, с помощью которого можно получить информацию о качестве программного обеспечения.
Тестирование программного обеспечения - проверка соответствия между реальным и ожидаемым поведением программы, осуществляемая на конечном наборе тестов, выбранном определенным образом.
Все виды тестирования программного обеспечения, в зависимости от преследуемых целей, можно условно разделить на следующие группы [5]:
1. Функциональные.
2. Нефункциональные.
Функциональное тестирование - один из видов тестирования, направленного на проверку соответствий функциональных требований ПО к его реальным характеристикам. Основной задачей функционального тестирования является подтверждение того, что разрабатываемый продукт обладает всем функционалом, требуемым заказчиком.
Нефункциональное тестирование описывает тесты, необходимые для определения характеристик программного обеспечения, которые могут быть измерены различными величинами. В целом, это тестирование того, "Как" система работает.
По уровню тестирования, с процессе разработки, существуют следующие виды [6]:
1. Модульное.
2. Интеграционное.
3. Системное.
Модульное тестирование - тестирование отдельных компонентов программного обеспечения. Выполняется разработчиками, для чего они ставят заглушки (stubs), либо эмулируют (mock) работу нужного (возможно еще не готового) модуля или класса.
Интеграционное тестирование проводится для выявления дефектов в интерфейсах и во взаимодействии между интегрированными компонентами или системами.
Системное тестирование - процесс тестирования интегрированной системы, чтобы убедиться, что он соответствует указанным требованиям.
Команда тестирования программного обеспечения сталкивается с большим давлением, когда необходимо выпустить продукт вовремя и, не выходя за рамки бюджета. В последние годы заказчики становятся все более требовательными, повышая свои ожидания в области развития проектов, и сокращая финансовые ресурсы, поэтому появляется необходимость в более коротких производственных циклах. Это означает, что разработчики и тестовые инженеры должны использовать все возможности для эффективного управления качеством своего продукта с целью не оправдать риск выпуска программного обеспечения на рынок с недостатками [4].
По этой причине на стадии тестирования необходимо использовать различные методы измерения и оценки статуса продукта. Подобные показатели могут предоставить глубокое понимание о качестве продукта в процессе его развития и об эффективности применяемых методов разработки [9]. Участники команды по разработке могут анализировать данные показатели, делать выводы 4
о проделанной работе, видеть слабые стороны, прикладывать усилия на их устранение, а также планировать дальнейшие действия.
Обычно принятием решения о расстановке приоритетов функциям и модулям приложения при тестировании занимается тест-менеджер. В основном он полагается на собственный опыт и личное знание системы. Какими главными критериями отбора он руководствуется?
Одной из актуальных проблем в процессе разработки является то, что при выпуске новой версии приложения некоторые ее функции могут работать без ошибок, а в некоторых может крыться множество дефектов. Каким образом можно контролировать данную ситуацию? Если провести анализ данных по дефектам основных компонентов системы, то можно определить вероятностный показатель наличия дефектов в компонентах и расставить приоритет функциям приложения,что поможет оптимизировать процесс тестирования и уменьшить риск выпуска версии с ошибками. Этому и посвящена данная работа.
В приведенном ниже исследовании будут решаться следующие задачи:
1. Формирование правил расстановки приоритета функциям.
2. Корректировка правил формирования приоритетов.
Целью исследования является повышение качества тестирования и уменьшение риска выпуска продукта с недостатками.
Работа посвящена формированию правил расстановки приоритета функциям в тестировании, поскольку этот этап разработки является одним из самых трудоемких, ответственных и подверженных рискам пропуска ошибок в программном обеспечении для конечного пользователя. Методика позволит быстро и корректно определить вероятностный показатель наличия дефектов в приложении. При его сравнении с пороговым значением может быть принято решение о выпуске версии или об отправке на доработку. В дополнение вероятностные показатели позволяют определить набор функций приложения, которые требуется протестировать в первую очередь и наиболее тщательно.
Измерение можно разделить на две части. Первая часть заключается в сборе данных, а вторая часть заключается в подготовке вычислений и их анализе, для получения ценной информации, которая может помочь в принятии решения тестирования функций. Информация, собранная в ходе измерения вероятностных показателей может помочь в:
• Нахождении соотношений между данными.
• Корреляции причины и следствия.
• Будущем планировании.
Целью анализа системы являлось повышение качества тестирования, за счет выявления подхода к принятию решения о тестировании модулей системы. Цель была достигнута путем анализа данных о модулях, исследования связей между ними, вычисления показателя, который определяет вероятность наличия дефектов в модуле.
Внедрение данного подхода в процесс разработки позволит улучшить процесс тестирования и поспособствует принятию решения тест-менеджера о построении будущего плана тестирования системы, состоящей из множества модулей.
Для достижения цели ставились две задачи: выявление факторов тестирования, наиболее влияющих на наличие дефектов в модулях системы и установление статистических зависимостей между факторами тестирования и состоянием модуля. Для этих задач были использованы математические модели, которые позволяют из всего объема факторов выбрать только те, которые наиболее связаны с целевым показателем, а именно с состоянием модуля, а также определить вероятности того, насколько модуль может быть подвержен дефектам.
1. Суздальцев В. А., Лекции по дисциплине «Физическое проектирование и внедрение информационных систем».
2. Суздальцев В.А., Лекции по дисциплине «Анализ и логическое проектирование информационных систем».
3. ИСО 9000 - Менеджмент качества [Электронный ресурс]:
Международная организация по стандартизации. - Режим доступа: http://www.iso.org/iso/ru/iso 9000, свободный.
4. ISO/IEC 25010:2011 Systems and software engineering - Systems
and software Quality Requirements and Evaluation (SQuaRE) - System and software quality models [Электронныйресурс]:
Международнаяорганизацияпостандартизации. - Режимдоступа:
https://www.iso.org/obp/ui/#iso:std:iso-iec:25010:ed-1:v1:en, свободный.
5. Nilsen J. 10 Usability Heuristics for User Interface Design
[Электронныйресурс]: NNgroup.com: информ.-справочныйпортал. -
Режимдоступа: https://www.nngroup.com/articles/ten-usability-heuristics/,
свободный.
6. Литовкин Д.В., Сычев О.А. Библиотека модульного тестирования, используемая при обучении программированию // Известия Волгоградского государственного технического университета. 2010. Т.11, вып.9. С. 106-109.
7. Метод главных компонент
[Электронныйресурс]: Профессиональный информационно-аналитический
ресурс, посвященныймашинному обучению, распознаванию образов и интеллектуальному анализу данных. -
Режимдоступа: http: //www. тасЫпе1еагшпд.ги/Мк1/1Ыех.рйр?1й1е=Метод глав ных компонент, свободный.
8. Корреляционный анализ[Электронныйресурс] /Режим
доступа:http://math.semestr.ru/corel/correlation-analysis.php, свободный.
9. Тестирование Программного Обеспечения [Электронный ресурс]
/ Режим доступа: http://www.protesting.ru/, свободный.
10. Многомерная случайная величина [Электронныйресурс]: Профессиональный информационно-аналитический ресурс,
посвященныймашинному обучению, распознаванию образов и интеллектуальному анализу данных.-Режим
доступа: http://www.machinelearning.ru/wiki/index.php?title=Ковариационная матрица, свободный.
11. Risk Based Testing, Strategies for Prioritizing Tests against Deadlines [Электронныйресурс] / Режимдоступа:
http://www.methodsandtools.com/archive/archive.php?id=31, свободный.