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

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

CC BY
262
85
i Надоели баннеры? Вы всегда можете отключить рекламу.
Ключевые слова
ОБЕСПЕЧЕНИЕ КАЧЕСТВА / ТЕСТИРОВАНИЕ / СЛОЖНЫЕ СИСТЕМЫ / ИНФОРМАЦИОННЫЕ СИСТЕМЫ

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

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

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

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

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

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

Расширение метода формирования комплекса испытаний сложных информационных систем

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

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

Ключевые слова— обеспечение качества, тестирование, сложные системы, информационные системы.

I. Введение

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

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

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

Данная статья является продолжением темы, впервые описанной автором в работе [1].

Статья получена 12 ноября 2013.

Гребенюк В.М. - аспирант, Московский государственный технический университет радиотехники, электроники и автоматики (e-mail: viktor.grebenyuk@gmail.com).

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

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

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

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

III. ПРЕДЛАГАЕМЫЙ ПОДХОД К ФОРМИРОВАНИЮ КОМПЛЕКСА МЕР И АКТИВНОСТЕЙ ПО ОБЕСПЕЧЕНИЮ

качества сложных информационных систем

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

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

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

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

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

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

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

1. Добавление, изменение или удаление компонента

системы с воздействием на остальные компоненты системы.

2. Добавление, изменение или удаление компонента сложной системы без воздействия на остальные компоненты системы.

3. Изменение инфраструктуры системы без изменения функциональности.

4. Пересборка компонентов системы без планируемых изменений.

5. Изменение данных в системе.

6. Изменение в документации системы.

Предполагается, что любое обновление или релиз

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

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

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

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

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

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

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

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

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

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

Предлагается избегать классификации видов

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

времени в направлении начала проекта.

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

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

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

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

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

1. Тестирование новой и/или изменённой функциональности - испытания внедрённой или изменённой функциональности продукта для подтверждения его соответствия установленным требованиям.

2. Регрессионное тестирование - тестирование, нацеленное на проверку существующей и не подверженной изменению функциональности.

3. Общие тесты на проверку готовности к работе -набор поверхностных тестов, обычно служащих для обнаружения грубых ошибок в коде, проблем среды тестирования или некорректной сборки компонентов системы (также называемые smoke tests или sanity checks).

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

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

корректировке (при необходимости) документации.

5. Опытная эксплуатация - испытания, которые проводят для определения соответствия системы техническому заданию, оценки качества опытной эксплуатации и решения вопроса о возможности приемки системы в постоянную эксплуатацию.

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

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

8. Эксплоративное (случайное, исследовательское) тестирование - неупорядоченное тестирование, направленное на выборочную проверку отдельных аспектов функционирования системы.

9. Тестирование контрольных данных - проверка модели данных, предполагаемой к использованию в системе на предмет соответствия установленным требованиям, существующим в системе данным, а также предусмотренные вариантам использования данных.

Классификация видов испытаний сложных информационных систем по типу проверяемых требований и/или технических условий (список

приведённый ниже является примерным, так как

конечный список такого рода испытаний напрямую зависит от требований, предъявляемых к конкретной системе) [14]:

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

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

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

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

установленный период времени

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

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

5. Тестирование безопасности, то есть набора атрибутов системы, относящихся к её способности предотвращать несанкционированный доступ, случайный или преднамеренный, к программам и данным..

6. Тестирование масштабируемости, то есть набора атрибутов системы, относящихся к её способности горизонтального и вертикального роста.

7. Тестирование совместимости, то есть набора атрибутов системы, относящихся к её способности взаимодействовать с конкретными системами.

С. Испытания, рекомендуемые для проведения при

внедрении различных типов изменений

На основе существующих практик и рекомендаций [2-

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

Таблица 1 отображает рекомендуемые («Р») и условно рекомендуемые («У») виды испытаний для каждого вида изменений. Предлагается считать испытание условно рекомендуемым, в случаях, если необходимость в проведении данного вида испытаний определяется исходя из анализа конкретных внедряемых изменений данного типа.

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

испытаний, соответствующих требованиям

(техническим условиям), предъявляемым к данной системе.

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

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

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

§1 1 ^ § а ° к 2 ^ К ^ § § а и • К и § ° К о. т £ Испытание элементов Р Р У Р У

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

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

И о н 0 1 О И о . с 5 к 53 к 0 С 6 е к 1 к т Тестирование новой и/или изм-й функц. Р Р Р Р Р

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

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

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

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

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

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

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

Тестирование контрольных данных У У У У Р У

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

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

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

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

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

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

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

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

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

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

Б. Возможности расширения предложенного метода определения структуры испытаний

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

1. Расширение списка типов изменений в результате детального анализа возможных изменений для выбранной системы.

2. Введение подкатегорий для отдельных типов испытаний. Например, введение подкатегорий «Изменение сетевой архитектуры системы» и «Изменение состава серверного парка» для существующего типа изменений «Изменение инфраструктуры системы без изменения функциональности».

3. Расширение списка видов испытаний, т.е. дополнение существующего списка видов испытаний новыми, не перечисленными ранее видами (например, «Тестирование пользовательского интерфейса»)

4. Введение подкатегорий для отдельных видов тестов. Например, введение подкатегорий «Полное регрессионное тестирование» и «Выборочное регрессионное тестирование» для существующего вида испытаний «Регрессионное тестирование».

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

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

7. Введение дополнительных характеристик, зависящих от сочетания выбранных значений типов

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

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

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

Библиография

[1] Гребенюк В.М., О подходе к формированию комплекса мер и

активностей по обеспечению качества сложных информационных систем. Сб. трудов VIII Международной научно-практической конференции «Современные

информационные технологии и ИТ-образование». М.:, 2013. с 439-447.

[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/whi te_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] ГОСТ 34.603-92 Информационная технология. Виды испытаний автоматизированных систем.

[14] ГОСТ Р ИСО/МЭК 9126-93. Информационная технология. Оценка программной продукции. Характеристики качества и руководства по их применению.

[15] 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.

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

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

[18] 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.

Extending the proposed method to build a testing framework for complex systems

Grebenyuk V.M.

Abstract - The article describes the method which might be used to define a list of tests recommended to be executed against a complex information system, as well as a possible ways to extend the proposed method for more precise planning and enhanced quality of the complex information system under test.

Keywords - quality assurance, testing, complex systems, information systems.

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