лекции, страница 2
Описание файла
PDF-файл из архива "лекции", который расположен в категории "". Всё это находится в предмете "тестирование на основе моделей" из 9 семестр (1 семестр магистратуры), которые можно найти в файловом архиве МГУ им. Ломоносова. Не смотря на прямую связь этого архива с МГУ им. Ломоносова, его также можно найти и в других разделах. .
Просмотр PDF-файла онлайн
Текст 2 страницы из PDF
Его задача — определить полный список требований, уточнитьнедостаточно четко сформулированные и определить возможные компромиссы в техслучаях, когда различные заинтересованные лица высказывают противоречащие другдругу требования.••Выделение требований включает определение доступных источников требований,извлечение требований из них, в ходе чего, собственно, и фиксируются отдельныетребования, и согласование требований, полученных от разных источников, привозникновении необходимости в этом.При извлечении требований может применяться широкий диапазон различных техник —от простого анализа задач, анализа имеющихся документов, до проведения интервью,опросов и семинаров, с использованием специальных методов для фиксации каквысказываемых пожеланий и формулировок, так и эмоционального состоянияопрашиваемых, чтобы в дальнейшем оценить правдивость и полноту предоставленныхсведений.Систематизация и описание требований, их сведение в единую систему исоставление представляющих ее моделей, отражающих различные аспекты собранныхтребований.
При систематизации особое внимание уделяется полному отражению всехизвлеченных сведений в требованиях, определению связей и зависимостей междутребованиями, идентификации требований, необходимой, чтобы иметь возможностьссылаться на них из различных проектных документов.Валидация и верификация требований.Задача этих видов деятельности — проверка необходимых свойств требований к ПО.Валидация представляет собой проверку адекватности и полноты требований, то естьпроверяет, что зафиксированные в требованиях ограничения и пожелания действительнопредставляют потребности пользователей, заказчиков и других заинтересованных лиц, атакже, что все их существенные потребности нашли соответствующее отражение втребованиях.Верификация проверяет внутреннюю согласованность, непротиворечивость иоднозначность требований, а также их проверяемость и возможность проследить связитребований друг с другом, с кодом, тестами и другими проектными документами.Тестирование и другие методы контроля качества ПОТестирование является методом контроля качества программного обеспечения,выполняющим проверку соответствия его характеристик требованиям.
Однако тестирование— не единственный такой метод. Что же отличает его от других методов контроля качества?Тестирование определяется как проверка соответствия поведения программной системытребованиям, выполняемая по результатам реальной работы этой системы в некоторомконечном наборе специально созданных ситуаций [7,8]. При этом проверяемая системаобычно называется тестируемой системой (system under test или SUT по-английски).В этом определении можно отметить следующие аспекты.•Проверка соответствия требованиям.Как уже указывалось, тестирование возможно лишь при наличии требований кпрограмме.
Если от системы ничего не требуется, она может делать все, что угодно, иэто нельзя считать неправильным.Тестирование позволяет проконтролировать качество программной системы ровнонастолько, насколько полно, четко и недвусмысленно определены требований к ней. Втех случаях, когда явные требования не сформулированы, тестирование можноиспользовать, только основываясь на некоторых неявно подразумеваемых, ножелательных свойствах тестируемой системы, например, отсутствии сбоев в ее работе.•Результаты реальной работы системы.Тестирование основывается на результатах реальной работы тестируемой системы.Проверяемая программа должна выполняться, чтобы проводимую при этом проверкуможно было считать тестированием.Этим тестирование отличается от методов контроля качества ПО, основанных наанализе проектных документов, без выполнения самой программы.
Таковы, например,статический анализ корректности кода или аналитическая верификация при помощидоказательства нужных свойств программы. Тестирование отличается и от методов,использующих функционирование некоторых моделей программы, а не ее самой,например, от проверки моделей (model checking), при которой проверяется, чтонекоторая модель программы обладает некоторым свойством, и отдельно делаютсявыводы о возможности переноса этого свойства на саму программу.Использование реальной работы тестируемой системы позволяет применятьтестирование для проверки корректности поведения системы в ее рабочем окружении,на месте ее эксплуатации, что невозможно сделать при помощи других методовконтроля качества ПО.•Специально созданные ситуации.Тестирование всегда выполняется в специально созданных ситуациях.Такие ситуации называются тестовыми ситуациями, а процедура или программа, привыполнении которой создается одна или несколько тестовых ситуаций и проверяетсяправильность поведения системы в них, называется тестом.
Подготовка к проведениютестирования всегда включает подготовку или разработку тестов.Составляющие тестовых ситуаций будут рассматриваться в следующей лекции, аразличным методам разработки тестов посвящено основное содержание этого курса.Эта характеристика отличает тестирование от пассивного наблюдения за поведениемсистемы или верификационного мониторинга (runtime verification), при которомсобираются и проверяются результаты реальной работы программы, но эта работа неуправляется, не направляется на возникновение определенных ситуаций.•Конечный набор ситуаций.Тестирование всегда выполняется в конечном наборе ситуаций. Более того, возможноеколичество ситуаций, возникающих во время тестирования, ограничиваетсяпрактическими соображениями достижения приемлемого компромисса между затратамивремени и ресурсов проекта на разработку тестов и тестирование и пользой от него —количеством обнаруживаемых ошибок, полнотой и адекватностью получаемой оценкикачества тестируемой системы.Практически значимые системы сейчас настолько сложны, что количество ситуаций,которые необходимо протестировать для полной проверки одной такой системы,превосходит возможности сколь угодно щедро финансируемого проекта и потребует неодной человеческой жизни для выполнения.
Поэтому полное тестирование, хотя ивозможно теоретически, в силу конечности любой вычислительной системы,практически совершенно невыполнимо.С одной стороны, это означает, что проведение тестирования никогда не дает полнойгарантии корректности тестируемой системы, полного отсутствия в ней ошибок. Сдругой стороны, это обстоятельство делает чрезвычайно важным выбор тестов длявыполнения.
За счет выбора тестов можно получить как большой набор,выполняющийся долго и не дающий существенной информации о качестве тестируемойсистемы, так и компактный, но проверяющий большое количество разнообразныхаспектов поведения системы и позволяющий оценить ее качество достаточно адекватно(хотя и без абсолютных гарантий).Критически важно для правильного выбора тестов использовать адекватный,отражающий реальную ситуацию критерий полноты тестирования. Различныеспособы определения таких критериев и методы выбора тестов в соответствии с нимитакже рассматриваются в следующих лекциях данного курса.Перечисленные аспекты определяют как достоинства, так и недостатки тестирования посравнению с другими методами контроля качества программного обеспечения.
В отличие отаналитической верификации, тестирование не может гарантировать полного отсутствияошибок в коде системы, но зато может проверить корректность ее работы на местеэксплуатации, при взаимодействии с другими системами, что сделать при помощианалитической верификации крайне тяжело. Тестирование всегда ограничено по ресурсам,но и предоставляет гибкие возможности управления полнотой и объемом проводимыхпроверок за счет разнообразных техник разработки и выбора тестов.Для успешного проведения тестирования огромное значение имеют требования ктестируемой системе, использовавшиеся в ходе тестирования тестовые ситуации и критерииполноты тестирования.
В общем случае и требования, и критерии полноты представляются ввиде некоторых моделей, на основе которых выбираются тесты и выполняются проверки.Даже при отсутствии явных таких моделей, они присутствуют неявно, в сознаниипроектировщиков тестов и тестировщиков всегда есть какие-то критерии проверкиправильности поведения тестируемой программы, представляющие требования, и критериипродолжения или прекращения тестирования после получения ряда результатов, основанныена понимании его неполноты или достаточной полноты.
Поэтому можно сказать, чтотестирование всегда проводится на основе некоторых моделей, быть может, непредставленных явно.Тестирование на основе моделей, которому посвящен этот курс, отличается только тем,что все используемые при разработке, выборе и выполнении тестов модели формулируютсяявно. Наиболее важную роль среди моделей, используемых при тестировании, играютмодели требований, описывающие желательное поведение системы, и критерии полнотытестирования, определяющие набор разрабатываемых или выбираемых для выполнениятестов.Ошибки в программном обеспеченииНаиболее наглядными результатами тестирования являются обнаруженные в тестируемойсистеме ошибки, то есть расхождения между ее реальным поведением и требованиями.В литературе по программной инженерии термин «ошибка» используется в несколькихразличных значениях.•Иногда, хотя и достаточно редко, так называют произвольный дефект программнойсистемы, будь то сбой, полностью разрушающий данные системы, неточнопрорисованная буква на кнопке графического интерфейса пользователя или простонестандартное форматирование исходного кода.
В англоязычной литературе в этомсмысле чаще всего употребляется термин defect.•Часто ошибкой или сбоем называют наблюдаемое нарушение требований,проявляющееся при некотором сценарии работы рассматриваемой системы. Ванглийском языке этому значению соответствует термин failure.•Ошибка в коде программы, вызывающая наблюдаемое нарушение требований, исостоящаявнеправильномиспользованиикакой-токонструкцииязыкапрограммирования, употреблении лишней конструкции или в пропуске необходимой.