Анализ причинно-следственных связей

Предоставить в отчете:

Исходники любой программы (например, своей лабораторной по программированию)

Документацию к этой программе (понятно, что документация будет маленькая и корявенькая, но уж как смогут)

В исходниках и документации должны соблюдаться:

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

- полнота - должна быть описана и реализована вся функциональность

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

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

В документации также должно быть описано, как они в процессе разработки будут определять уровень качества (например, какие виды тестирования будут проводиться, каково будет покрытие кода тестами, приведен набор тестов).

Тестирование программного обеспечения

 

По объекту тестирования:

● Функциональное тестирование (functional testing)

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

Функциональные требования включают:

● Функциональная пригодность (англ. suitability).

● Точность (англ. accuracy).

● Способность к взаимодействию (англ. interoperability).

● Соответствие стандартам и правилам (англ. compliance).

● Защищённость (англ. security).

● Тестирование производительности (performance testing)

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

○ Нагрузочное тестирование (load testing)

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

○ Стресс-тестирование (stress testing)

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

○ Тестирование стабильности (stability / endurance / soak testing)

проверка работоспособности приложения при длительном тестировании со средним (ожидаемым) уровнем нагрузки.

● Юзабилити-тестирование (usability testing)

исследование, выполняемое с целью определения, удобен ли некоторый искусственный объект (такой как веб-страница, пользовательский интерфейс или устройство) для его предполагаемого применения

 

пользователю предлагают в «лабораторных» условиях решить основные задачи, для выполнения которых этот продукт разрабатывался, и просят высказывать во время выполнения этих тестов свои замечания.

● Тестирование интерфейса пользователя (UI testing)

● Тестирование безопасности (security testing)

оценка уязвимости программного обеспечения к различным атакам.

● Тестирование локализации (localization testing)

● Тестирование совместимости (compatibility testing)

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

 

По знанию системы:

● Тестирование чёрного ящика (black box)

Методы стратегии чёрного ящика

1.Эквивалентное разбиение.

2.Анализ граничных значений.

3.Анализ причинно-следственных связей.

4.Предположение об ошибке.

Эквивалентное разбиение

Разработка тестов этим методом осуществляется в два этапа: выделение классов эквивалентности и построение теста.

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

1.Если входное условие описывает область значений, например «Целое число принимает значение от 0 до 999», то существует один правильный класс эквивалентности и два неправильных.

2.Если входное условие описывает число значений, например «Число строк во входном файле лежит в интервале (1..6)», то также существует один правильный класс и два неправильных.

3.Если входное условие описывает ситуацию «должно быть», например «Первый символ должен быть заглавным», тогда один класс правильный и один неправильный.

4.Если есть основание считать, что элементы внутри одного класса эквивалентности могут программой трактоваться по-разному, необходимо разбить данный класс на подклассы.

Определение тестов:

1.Каждому классу эквивалентности присваивается уникальный номер.

2.Если еще остались не включенные в тесты правильные классы, то пишутся тесты, которые покрывают максимально возможное количество классов.

3.Если остались не включенные в тесты неправильные классы, то пишут тесты, которые покрывают только один класс.

Анализ граничных значений

Граничные условия — это ситуации, возникающие на высших и нижних границах входных классов эквивалентности.

Существует несколько правил:

1.Построить тесты с неправильными входными данными для ситуации незначительного выхода за границы области значений. Если входные значения должны быть в интервале [-1.0 .. +1.0], проверяем −1.000001, 1.000001.

2.Обязательно писать тесты для минимальной и максимальной границы диапазона.

3.Использовать первые два правила для каждого из входных значений (использовать пункт 2 для всех выходных значений).

4.Если вход и выход программы представляет упорядоченное множество, сосредоточить внимание на первом и последнем элементах списка.

Анализ причинно-следственных связей

Этапы построения теста:

1.Спецификация разбивается на рабочие участки.

2.В спецификации определяются множество причин и следствий. Под причиной понимается отдельное входное условие или класс эквивалентности. Следствие представляет собой выходное условие или преобразование системы. Здесь каждой причине и следствию присваивается номер.

3.На основе анализа семантического (смыслового) содержания спецификации строится таблица истинности, в которой последовательно перебираются всевозможные комбинации причин и определяются следствия для каждой комбинации причин.

Предположение об ошибке

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

● Тестирование белого ящика (white box)

Покрытие

 

По степени автоматизации:

● Ручное тестирование (manual testing)

● Автоматизированное тестирование (automated testing)

 

 

РЕФЕРАТ:

Ме́трика програ́ммного обеспе́чения (англ. software metric) — это мера, позволяющая получить численное значение некоторого свойства программного обеспечения или его спецификаций.

 

Набор используемых метрик включает:

● количество строк кода,

● количество ошибок на 1000 строк кода,

● степень покрытия кода тестированием,

● покрытие требований,

● количество классов и интерфейсов,

 


Дата добавления: 2018-04-05; просмотров: 388; Мы поможем в написании вашей работы!

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




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