Испытание программных средствРефераты >> Программирование и компьютеры >> Испытание программных средств
1. Опытного образца ПС на полное соответствие требованиям технического задания;
2. рабочей версии ПС, адаптированной к условиям конкретного применения;
3. версии модернизированного ПС при сопровождении.
Для обеспечения полноты приемосдаточных испытаний опытного образца ПС как программного средства при их планировании целесообразно выделять категории тестирования, во многом аналогичные этапу комплексной отладки.
Функциональное тестирование — наиболее обширное и труднее всего систематизируемое. Набор испытательных тестов полностью определяется функциональными задачами и сложностью ПС. Эти тесты должны обеспечивать проверку и демонстрацию заказчику или пользователю качества решения функциональных задач, сформулированных в техническом задании и конкретизированных в документации. Поскольку исчерпывающее тестирование для сложных ПС невозможно, большое значение имеют уточнение областей варьирования тестовых данных и выделение областей их изменения, наиболее важных для последующего использования программ [2].
Стрессовое тестирование (в критических ситуациях) базируется на классификации областей определения исходных данных и использует граничные или экстремальные значения параметров и условий. Комбинация критических значений и условий испытаний в большинстве случаев очень разнообразна, и необходим тщательный анализ для выделения достаточно представительной выборки. Кроме того, при стрессовых испытаниях должно быть показано, что при изменении исходных данных за допустимыми пределами эти ситуации обнаруживаются, селектируются и выдается диагностика о нарушении ограничений на условии эксплуатации программ.
Тестирование использования ресурсов ЭВМ комплексом программ в значительной степени является стрессовым тестированием. При этом внимание сосредоточивается на исследовании зависимости объема памяти и длительности решения задач от характеристик исходной информации. Определяются допустимые размерность задач и интенсивности потоков исходных данных, при которых возможно нормальное функционирование ПС на данной ЭВМ.
Тестирование параллельного решения задач в многомашинных или многопроцессорных вычислительных комплексах состоит в испытаниях взаимодействия программ и данных при одновременном исполнении компонент ПС. Эти испытания можно разделить на две части: при детерминированных запланированных ситуациях и при случайном нормальном функционировании программ. В первом случае основная проблема состоит в создании представительного многообразия ситуаций параллельного функционирования программ. Вторая часть тестирования может совмещаться с остальными видами испытаний и заключается в основном в выделении случайных тестов и условии, при которых проверяется недетерминированное параллельное исполнение программ [6].
Особенности испытаний на надежность программ
В теории надежности разработан ряд методов, позволяющих определять характеристики надежности сложных систем: прямые экспериментальные методы определения показателей надежности систем в условиях нормального функционирования и форсированные методы испытаний реальных систем на надежность.
Прямые экспериментальные методы определения показателей надежности программ в нормальных условиях функционирования в ряде случаев весьма трудно использовать при испытаниях из-за большого времени наработки на отказ (десятки и сотни часов). Сложность выявления и регистрации редких отказов, а также высокая стоимость экспериментов при длительном функционировании сложных ПС приводят к тому, что на испытаниях получаются малые выборки зарегистрированных отказов. Кроме того, при таких экспериментах трудно гарантировать представительность выборки исходных данных, так как режимы эксплуатации определяются конкретными условиями использования данного ПС на испытаниях.
При испытаниях ПС на надежность функционирования необходимо разделять причины отказов и отказовых ситуаций на обусловленные ненадежностью аппаратуры и ошибками в программах. Устойчивые отказы аппаратуры селектируются достаточно просто. Однако кратковременные сбои в аппаратуре и последствия ошибок в программе требуют тщательного анализа для выделения и диагностики их источника. Значительную помощь может оказать программа анализа сбоев. Эта программа автоматически регистрирует наличие отказа и отказовой ситуации, а также условия их возникновения, осуществляет первичный анализ и классификацию возможных источников аномалий функционирования. Для диагностики и локализации причин отказа обычно требуется дополнительное стохастическое и детерминированное тестирование, которое позволяет либо выделить первичную ошибку в программе, либо отнести источник отказа к сбою в аппаратуре. При дополнительном тестировании одна из задач заключается в подготовке стохастических тестов, способных значительно повысить частоту проявления отказов вследствие ошибок. Это позволяет в конце концов зафиксировать значения тестовых данных, при которых происходит отказ, и детерминированным тестированием локализовать ошибку [1].
На этапе испытаний целесообразно устранять в программах локализованные ошибки. Вследствие этого характеристики надежности ПС в среднем улучшаются, однако возможны изменения программы, которые их ухудшают. Изменения показателей надежности необходимо связывать во времени с моментами корректировки программ. Анализируя связь между значениями надежности и процессом изменения программ, можно выявить корректировки, которые содержат ошибки и ухудшают надежность.
Получающиеся при этом показатели надежности позволяют прогнозировать число ошибок, подлежащих исправлению для достижения заданной надежности. Для этого используются математические модели изменения ошибок и основных показателей надежности в зависимости от длительности тестирования. При высокой надежности ПС организуются многочасовые прогоны реального функционирования программ в условиях широкого варьирования исходных данных. Такие прогоны позволяют измерить и зафиксировать достигнутые показатели надежности и степень их соответствия требованиям технического задания, а также закрепить их в технических условиях на ПС.
Форсированные методы испытаний реальных систем на надежность осуществляются путем тестирования ПС при повышенной интенсивности искажений исходных данных с широким варьированием их значений, а также специальным увеличением загрузки ПС выше нормальной. Планирование форсированных испытаний должно предусматривать последующий пересчет полученных показателей надежности на условия нормального функционирования. Для этого необходимо изучать надежность испытываемых программ в зависимости от интенсивности искажений данных или от характеристик перегрузки ЭВМ и способы пересчета получаемых показателей на нормальные условия эксплуатации.
Особым видом форсированных испытаний является тестирование эффективности средств контроля и восстановления программ, данных и вычислительного процесса. Для этого имитируются запланированные экстремальные условия функционирования программ, при которых в наибольшей степени вызываются средства программного рестарта. При таких испытаниях основная задача состоит в проверке качества функционирования средств повышения надежности, а оценка интегральных показателей надежности отходит на второй план [13].