Научная статья на тему 'О подходе к формированию комплекса мер и активностей по обеспечению качества сложных информационных систем'

О подходе к формированию комплекса мер и активностей по обеспечению качества сложных информационных систем Текст научной статьи по специальности «Компьютерные и информационные науки»

CC BY
126
26
i Надоели баннеры? Вы всегда можете отключить рекламу.
Ключевые слова
ИНФОРМАЦИОННАЯ СИСТЕМА / КАЧЕСТВО / ФУНКЦИОНАЛЬНОЕ И НЕФУНКЦИОНАЛЬНОЕ ТЕСТИРОВАНИЕ

Аннотация научной статьи по компьютерным и информационным наукам, автор научной работы — Гребенюк Виктор Михайлович

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

i Надоели баннеры? Вы всегда можете отключить рекламу.

Похожие темы научных работ по компьютерным и информационным наукам , автор научной работы — Гребенюк Виктор Михайлович

iНе можете найти то, что вам нужно? Попробуйте сервис подбора литературы.
i Надоели баннеры? Вы всегда можете отключить рекламу.

Текст научной работы на тему «О подходе к формированию комплекса мер и активностей по обеспечению качества сложных информационных систем»

Гребенюк В.М.

Московский государственный технический университет радиотехники, электроники и

автоматики (МГТУ МИРЭА), аспирант viktor.grebenyuk@gmail.com

О подходе к формированию комплекса мер и активностей по обеспечению качества сложных информационных систем

КЛЮЧЕВЫЕ СЛОВА:

Информационная система, качество, функциональное и нефункциональное тестирование.

АННОТАЦИЯ:

В настоящее время активно разрабатывается большое количество информационных систем дистанционного обучения и систем e-learning. Современные образовательные

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

1. Введение

Роль тестирования, как одного из методов обеспечения качества, в процессе разработки программного обеспечения и программно-аппаратных систем неуклонно растёт: в некоторых методологиях разработки, таких как Test Driven Development, например, тестирование играет ключевую роль при разработке функциональности системы и основных характеристик, а при использовании методологии Scrum, тестовые сценарии, зачастую, служат основой для написания документации [1].

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

2. Актуальность проблемы

Не смотря на то, что существуют стандарты, регламентирующие порядок и типы испытаний программного обеспечения и автоматизированных систем [2, 3, 4], проблема формирования комплекса мер и активностей по обеспечению качества сложных информационных систем всё ещё является актуальной.

Одной из причин является то, что методы, описанные в стандартах, нуждаются в детализации и дополнении в соответствии со спецификой таких систем. Например, стандарт ISO/IEC 90003:2004 "Техника программного обеспечения. Рекомендации по применению ISO 9001:2000 к компьютерному программному обеспечению" [2], содержит следующее пояснение: «В некоторых случаях полная валидация программного продукта путем измерения и мониторинга может оказаться невозможной или неосуществимой. Например, в некоторых случаях программное обеспечение, связанное с безопасностью, невозможно испытать в реальных условиях без риска серьезных последствий или возможно сами условия оказываются случайными и трудными для моделирования. Поэтому все используемые методы должны соизмеряться с рисками и последствиями недостатков проектирования и разработки». Согласно тому же стандарту, верификация сложного продукта также может носить выборочный характер: «Верификация также может распространяться и на приемочные испытания закупленного программного обеспечения, используемого в разработке, однако при этом следует учитывать, что большую часть такого программного обеспечения невозможно верифицировать полностью из-за его широкой функциональности, что позволяет только предполагать степень соответствия».

Стоит также отметить, что существующие стандарты [3] предписывают проведения верификации программного обеспечения на соответствие c требованиям, но известно, что предъявляемые требования не всегда обладают свойством сценарной полноты, то есть могут не позволять разработать полный набор тестов на их основе [5].

3. Предлагаемый подход к формированию комплекса мер и активностей по обеспечению качества сложных информационных систем

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

повышается результативности проводимых мер.

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

3.1 Декомпозиция задачи

Задача формирования комплекса мер и активностей по обеспечению качества сложных систем состоит из нескольких подзадач:

1. Выявление видов тестирования, необходимых для того, чтобы определить соответствие системы предъявляемым требованиям и заданным качественным характеристикам;

2. Определение набора тестов для каждого вида тестирования, необходимых для измерения нужных параметров;

3. Приоритезация и планирование активностей по обеспечению качества.

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

3.2 Анализ изменений, внедряемых в течении всего жизненного цикла сложных информационных систем по их типу

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

Проведя анализ исследований в данной области, и обобщив рассматриваемые в литературе изменения, применимые к сложным информационным системам, можно условно выделить несколько типов изменений [7, 8] - см. таблицу 1.

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

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

Табл. 1. Типы изменений и их примеры

Типы изменений Примеры изменений

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

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

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

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

5. Изменение данных в системе а. Изменение отдельных записей в системе. б.Восстановление данных после потери или удаление данных.

6.Изменение в документации системы а. Уточнение документации и исправление ошибок. б. Описание дополнительных примеров и сценариев использования.

3.3 Анализ существующих методик и практик функционального и нефункционального тестирования

Анализ существующих исследований, требований и рекомендаций, посвященных проблеме формирования комплекса мер и активностей по обеспечению качества [2, 9, 10, 11, 12] позволяет сделать несколько основных выводов:

1. Количество методов и техник обеспечения качества неуклонно растёт;

2. Существующие методологии продолжают совершенствоваться и развиваться;

3. Отсутствует единый подход к терминологии мер по обеспечению качества;

4. Не существует единого подхода к обеспечению качества сложных систем.

Для того, чтобы обобщить виды испытаний, рассматриваемые в литературе, предлагается упорядочить их на категории, а также выделить наиболее крупные виды активностей по обеспечению качества в каждой категории. Данная задача не является тривиальной, ввиду проблемы отсутствия единой терминологии, упомянутой выше: в русской язычной литературе часто встречается различный перевод одних и тех же англоязычных терминов, более того, значение одних и тех же терминов в различной литературе разнится. Предлагаемая классификация видов тестирования основана на общем значении каждого вида тестирования и не является конечной, ввиду выводов №2 и 3 приведённых выше.

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

Классификация видов испытаний сложных информационных систем по уровню, на который оно нацелено:

1. Испытание элементов, т. е. автономное испытание компонентов (модулей) системы;

2. Комплексные и интеграционные испытания, т. е. испытаний агрегации отдельно взятых компонентов (модулей) системы;

3. Непрерывное испытание всей системы, т.е. проверка правильности работы системы в целом, от начала до конца.

Классификация видов испытаний сложных информационных систем по назначению проводимых тестов:

1. Тестирование новой и/или изменённой функциональности.

2. Регрессионное тестирование.

3. Общие тесты на проверку готовности к работе.

4. Приёмочные испытания.

5. Опытная эксплуатация.

6. Проверка ранее найденных дефектов.

7. Тестирование документации.

8. Эксплоративное (случайное, исследовательское) тестирование.

9. Тестирование референс даты (контрольных данных). Классификация видов испытаний сложных информационных систем

по типу проверяемых требований и/или технических условий (список приведённый ниже является примерным, так как конечный список такого рода испытаний напрямую зависит от требований, предъявляемых к

конкретной системы):

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

2. Тестирование надёжности и отказоустойчивости.

3. Тестирование производительности.

4. Тестирование эксплуатационных характеристик.

5. Тестирование безопасности.

6. Тестирование масштабируемости.

7. Тестирование совместимости.

3.4 Испытания, рекомендуемые для проведения при внедрении различных типов изменений

На основе существующих практик и рекомендаций [2-4, 11-17], предлагается определить набор испытаний, необходимый для проведения при внедрении каждого типа изменений таким образом, чтобы с помощью полученной матрицы можно было бы определить рекомендуемый набор тестов для каждого обновления системы (релиза), даже имея ограниченное количество информации о нём. Таблица 2 отображает рекомендуемые («Р») и условно рекомендуемые («У») виды испытаний для каждого вида изменений. Предлагается считать испытание условно рекомендуемым, в случаях, если необходимость в проведении данного вида испытаний должна определяться исходя из анализа конкретных внедряемых изменений данного типа.

Табл. 2. Пример формирования наборов испытаний для различных изменений в сложной

информационной системе

Типы изменений

Доб-е, изм-е или уд-е комп. системы с возд. на ост. комп. системы Доб-е, изм-е или уд-е комп. системы без возд. на ост. комп. системы Изм-е инфраст р. системы без изм-я функц-ти Пересбо рка комп. системы без планир. функц. изм-й Изм-е данны х в систе ме Изм-е в док. систе мы

Виды испытаний по уровню, на который они нацелены Испытание элементов Р Р У Р У

Комплексные и интеграц. испытания Р Р Р Р Р У

Непрерывное испытание всей системы Р Р Р Р У

Виды испытаний по назначению проводимых тестов Тестирование новой и/или изм-й функц. Р Р Р Р Р

Регресс. тестирование (полное или выборочное) Р Р Р Р Р

Общие тесты на проверку гот. к работе Р Р Р Р У

Приёмочные испытания У У У У У У

Опытная эксплуатация У У У У У У

Проверка дефектов У У У У У У

Тестирование докум-и Р Р У У У Р

экспл. тестирование У У У У У У

Тестирование референс даты У У У У Р У

Виды испытаний по типу проверяемых требований (технических условий) Тестирование функц. требований Р Р У У У У

Тестирование надёжности и отказоуст-и Р Р Р Р У У

Тестирование произв. Р Р Р Р У У

Тестирование эксплуатац. хар-к Р Р Р У У У

Тестирование безопасности Р Р У У У У

Тестирование масштабир-и Р Р У У У У

Тестирование совмест-и Р Р Р У У У

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

Для того, чтобы определить необходимый список испытаний для отдельно взятого релиза или версии системы, предлагается отметить

столбцы, соответствующие типам изменений, внедряемым в данном релизе (версии системы) в таблице, построенной на основе Таблицы 2. Обобщив строки, значения ячеек которых соответствуют выбранным столбцам, можно получить набор рекомендуемых испытаний для конкретного релиза по уровню, на который они нацелены, по назначению проводимых тестов и по типу проверяемых требований. 4. Заключение

Разработанный метод по формированию структуры рекомендуемых испытаний для каждого релиза (обновления) системы может помочь добиться прогнозируемого уровня качества сложных систем, а также может стать удобным инструментом для планирования мер по обеспечению качества, тем самым, повысив их результативность. Предполагается, что данный подход будет особенно актуален для тестирования промежуточных (рабочих) версий системы (т.е. тех версий, которые не будут доступны для использования конечными пользователями), а также при первоначальном анализе большого количества изменений на предмет определения примерного списка испытаний. Стоит отметить, что окончательный список необходимый тестов должен определяться с учётом результатов детального анализа требований, ограничений и других факторов.

Литература

1. Deemer P. et al, The scrum primer. Режим доступа: http://www.brianidavidson.com/agile/docs/scrumprimer121.pdf

iНе можете найти то, что вам нужно? Попробуйте сервис подбора литературы.

2. ISO/IEC 90003:2004. Техника программного обеспечения. Рекомендации по применению ISO 9001:2000 к компьютерному программному обеспечению.

3. ГОСТ Р ИСО/МЭК 12207-99. Информационная технология. Процессы жизненного цикла программных средств.

4. ГОСТ Р 51904 - 2002. Программное обеспечение встроенных систем. Общие требования к разработке и документированию.

5. Камкин А.С., Тестирование в условиях неполной информации. Подход к разработке спецификаций и генерации тестов, Труды Института системного программирования РАН. Режим доступа: http://citforum.ru/SE/testing/incinftesting/

6. ГОСТ Р ИСО/МЭК 20000-1-2010 Информационная технология. Менеджмент услуг. Часть 1. Спецификация

7. Change Management: Best Practices, whitepaper, Cisco Systems, 2008. Режим доступа: http://www.cisco.com/en/US/technologies/collateral/tk869/tk769/white_paper_c11-458050.pdf

8. Липаев В.В., Сопровождение и управление конфигурацией сложных программных средств. - М.: СИНТЕГ, 2006. - 372 с.

9. Липаев В.В., Тестирование компонентов и комплексов программ. Учебник. - М.: СИНТЕГ, 2010. - 400 с.

10. Ключёв А.О., Маковецкая Н.А., Проблемы тестирования системного информационного обеспечения распределённых информационно-управляющих систем. Режим доступа: http://www.ict.edu.ru/ft/001795/vestnik10_7.pdf

11. Sahil B. et al, Improving quality using testing strategies, Journal of Global Research in Computer Science, Volume 2 Issue (6), 2011.

12. Липаев В.В. Методы обеспечения качества крупномасштабных программных средств. - М.: СИНТЕГ, 2003. - 520 с.

13. Whyte G., Mulder D.L. Mitigating the Impact of Software Test Constraints on Software Testing Effectiveness, The Electronic Journal Information Systems Evaluation Volume 14 Issue 2, 2011.

14. ГОСТ Р ИСО/МЭК 12119-2000. ИТ Требования к качеству и тестирование.

15. ГОСТ Р ИСО/МЭК 9646-1-93 Информационная технология. Взаимосвязь открытых систем. Методология и основы аттестационного тестирования.

16. Xie T, Notkin D., Macro and Micro Perspectives on Strategic Software Quality Assurance in Resource Constrained Environments, Proceedings of the 4th International Workshop on Economics-Driven Software Engineering Research (EDSER 2002), Orlando, Florida.

17. ГОСТ 34.603-92 Информационная технология. Виды испытаний автоматизированных систем.

i Надоели баннеры? Вы всегда можете отключить рекламу.