Как контролировать качество системы?
Лекция 1
Основныепонятиявтестировании
Чтопредставляетсобойтестирование.
КакопределитькачествоПО.
Категориипрограммныхошибок.
Терминология.
V 1.1
Основные понятия в тестировании
Что представляет собой тестирование
Тестирование программного обеспечения (SoftwareTesting) - проверка соответствия между реальным и ожидаемым поведением программы, осуществляемая на конечном наборе тестов, выбранном определенным образом. [IEEE GuidetoSoftwareEngineeringBodyofKnowledge, SWEBOK, 2004]
В более широком смысле, тестирование - это одна из техник контроля качества, включающая в себя активности по планированию работ (TestManagement), проектированию тестов (TestDesign) , выполнению тестирования (TestExecution) и анализу полученных результатов (TestAnalysis).
Тестировщик - специалист, занимающийся тестированием. В его обязанности входит поиск вероятных ошибок и сбоев в функционировании объекта тестирования (напр., программы). Тестировщик моделирует различные ситуации, которые могут возникнуть в процессе использования программы (чтобы разработчики смогли исправить обнаруженные ошибки).
Найти хорошего тестировщика — большая проблема, т. к. инженер-тестировщик — это, в идеале, человек, который разрешает технические проблемы, связанные с разработкой ПО. Он одновременно выступает и как пользователь, и как эксперт; то есть, должен уметь воспроизводить действия пользователя программы и анализировать поведение программы, входящие параметры и полученные результаты с точки зрения инженера.
|
|
Помимо технических навыков ему очень важно обладать такими качествами, как внимательность и пытливый ум, быть активным и уметь донести мысль и отстоять свою точку зрения на любом уровне.В каком-то роде, тестировщики — это исследователи из мира разработки ПО. Поэтому в руках инженера-тестировщика легко узнаваемый символ — лупа (линза), наблюдающая за жучками. Как нельзя лучше характеризует она работу тестировщика: используется как по прямому назначению для выявления дефектов, так и для «прожигания дырочек», с её помощью можно добывать огонь и даже, имея целую систему линз, наблюдать за звёздами. Главное — уметь это делать.
Цель тестирования
Цель тестирования - это нахождение ошибок в программе до того, как их найдут пользователи.
По примерным оценкам на обнаружение и исправление ошибок тратит ся от 40 до 80 процентов общей стоимости разработки программного обеспечения. Такие огромные деньги компании платят не за то, чтобы убедиться, что программы работают. Они вынуждены тратить деньги потому, что их программы не работают — в них есть ошибки, и владельцы компаний хотят, чтобы эти ошибки были исправлены. Как бы грамотно, по самым современным методикам, ни была организована разработка, ошибки остаются всегда, те кто пишет ПО тоже люди и им свойственны ошибки.
|
|
Цель тестировщика
Цель тестировщика - найти как можно больше ошибок, и чем серьезнее найденные проблемы, тем лучше. В конечном счете большинство ошибок исправляют, и качество программы улучшается. (данная фраза достаточно двусмысленна, в конце лекции спросить с чем согласны, а с чем нет)
Для работы тестировщика очень важно то, как он настроен. Если вы уверены, что в программе есть ошибки, вы будете искать их гораздо тщательнее, чем если скажете себе: "Это прекрасная программа, и она правильно работает, мне нужно просто в этом убедиться". Любой пси холог охотно подтвердит, что человек всегда видит только то, что хочет видеть. Поэтому, например, так трудно при чтении текста заметить в нем орфографические ошибки: ведь ум сразу корректирует увиденное глазами.
Нужно считать программу плохой, желать, чтобы в ней произошел сбой, и концентрироваться на поиске ее самых слабых мест.
|
|
Как определить качество ПО (стандарты ISO, критерии качества, метрики)
Каждый день в своей работе мы сталкиваемся с достаточно абстрактным понятием «качество ПО» и если задать вопрос тестировщику или программисту – «что такое качество?», то у каждого найдется своё толкование.
Если вкратце, то качество программы определяется:
• возможностями, благодаря которым она понравится пользователю;
• недостатками, которые вынуждают пользователя приобрести другую программу.
Главное, что тестировщик может сделать для улучшения качества программы, — это выявить ее недостатки, сбои в ее работе и явные ошибки, до того момента как их обнаружит конечный пользователь. Если руководитель проекта примет решение в последний момент добавить какую-нибудь очень важную функцию, это тоже может способствовать повышению качества, даже несмотря на то, что от этого программа станет менее надежной. Ни надежность, ни функциональность программы не могут быть абсолютными, и ее качество в конечном счете означает разумный баланс между этими двумя характеристиками.
Так или иначе, Качество (как и его отсутствие) - это результат
● Деятельности всех участников процесса разработки ПО, а так же
|
|
● Отлаженности и настройки самого процесса.
Характеристики качества ПО
На данный момент наиболее распространена и используется Многоуровневая Модель Качествапрограммного обеспечения( описывающая внутреннее и внешнее качество ПО), представленная в серии стандартов ISO 9126.
Согласно этой модели:
Функциональность (Functionality) - определяется способностью ПО решать задачи, которые соответствуют зафиксированным и предполагаемым потребностям пользователя, при заданных условиях использования ПО. Т.е. эта характеристика отвечает за то, что ПО работает исправно и точно, функционально совместимо, соответствует стандартам отрасли и защищено от несанкционированного доступа.
Надежность (Reliability) – способность ПО выполнять требуемые задачи в обозначенных условиях на протяжении заданного промежутка времени или указанное количество операций. Атрибуты данной характеристики – это завершенность и целостность всей системы, способность самостоятельно и корректно восстанавливаться после сбоев в работе, отказоустойчивость.
Удобство использования (Usability) – возможность легкого понимания, изучения, использования и привлекательности ПО для пользователя.
Эффективность (Efficiency) – способность ПО обеспечивать требуемый уровень производительности в соответствие с выделенными ресурсами, временем и другими обозначенными условиями.
Удобство сопровождения (Maintainability) – легкость, с которой ПО может анализироваться, тестироваться, изменяться для исправления дефектов, для реализации новых требований, для облегчения дальнейшего обслуживания и адаптироваться к именующемуся окружению.
Портативность (Portability) – характеризует ПОс точки зрения легкости его переноса из одного окружения (software/hardware) в другое.
Таким образом характеристики и атрибуты качества ПО позволяют систематически описывать требования к нему, определяя следующее:
• Что ПО должно делать, например: Позволять клиенту оформить заказы и обеспечить их доставку; Обеспечивать контроль качества строительства и отслеживать проблемные места; Поддерживать нужные характеристики автоматизированного процесса производства, предотвращая аварии и оптимальным образом используя имеющиеся ресурсы.
• Насколько оно должно быть надежно, например: Работать 7 дней в неделю и 24 часа в сутки; Допускается неработоспособность в течение не более 3 часов в год. Никакие введенные пользователями данные при отказе не должны теряться.
• Насколько им должно быть удобно пользоваться, например: Покупатель должен легко находить нужный ему товар; Инженер по специальности «строительство мостов» должен в течение одного дня разобраться в 80% функций системы.
• Насколько оно должно быть эффективно, например: Поддерживать обслуживание до 10000 запросов в секунду; Время отклика на запрос при максимальной загрузке не должно превышать 3 с; Время реакции на изменение параметров процесса производства не должно превышать 0.1 с; На обработку одного запроса не должно тратиться более 1 MB оперативной памяти.
• Насколько удобно должно быть его сопровождение, например: Добавление в систему нового вида запросов не должно требовать более 3 человеко-дней; Добавление поддержки нового процесса производства не должно занимать более 24 человеко-месяцев.
• Насколько оно должно быть переносимо и заменяемо, например: ПО должно работать на операционных системах Linux, Windows XP и MacOS X; ПО должно работать с документами в форматах MS Word 97 и HTML; ПО должно сохранять файлы отчетов в форматах MS Word 2000, MS Excel 2000, HTML, RTF и в виде обычного текста. ПО должно сопрягаться с существующей системой записи данных о заказах.
Приведенные атрибуты качества закреплены в стандартах, но это не значит, что они полностью исчерпывают понятие качества ПО.
Метрики качества
Помимо перечисленных характеристик и атрибутов качества, стандарт ISO 9126 определяет наборы метрик для оценки (получения численного значения) каждого атрибута:
• Полнота реализации функций— процент реализованных функций по отношению к перечисленным в требованиях. Используется для измерения функциональной пригодности.
• Корректность реализации функций— правильность их реализации по отношению к требованиям. Используется для измерения функциональной пригодности.
• Отношение числа обнаруженных дефектов к прогнозируемому. Используется для определения зрелости.
• Отношение числа проведенных тестов к общему их числу. Используется для определения зрелости.
• Отношение числа доступных проектных документов к указанному в их списке. Используется для измерения удобства проведения анализа.
• Наглядность и полнота документации. Используется для оценки понятности.
Как контролировать качество системы?
Как точно узнать, что программа делает именно то, что нужно, и ничего другого? Как определить, что она достаточно надежна, переносима, удобна в использовании? Ответы на этот вопрос можно получить с помощью процессов верификации и валидации.
• Верификацияобозначает проверку того, что ПО разработано в соответствии со всеми требованиями к нему или что очередной этап разработки выполнен в соответствии с ограничениями, сформулированными на предшествующих этапах.
• Валидация— это проверка того, что сам продукт правилен, т.е. подтверждение того, что он действительно удовлетворяет требованиям и ожиданиям пользователей, заказчиков и других заинтересованных сторон.
Эффективность верификации и валидации, как и эффективность разработки ПОв целом зависит от точности и корректности формулировки требований к программному продукту.
Дата добавления: 2018-08-06; просмотров: 974; Мы поможем в написании вашей работы! |
Мы поможем в написании ваших работ!