Как контролировать качество системы?



Лекция 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; Мы поможем в написании вашей работы!

Поделиться с друзьями:






Мы поможем в написании ваших работ!