39069

Тестированию программного обеспечения с использованием языка программирования C# и NUnit-тестов

Доклад

Информатика, кибернетика и программирование

Тестовая деятельность предусматривающая эксплуатацию программного продукта носит название динамического тестирования. Статическое и динамическое тестирование дополняют друг друга и каждый из этих типов тестирования реализует собственный подход к выявлению ошибок. К четырем компонентам которые должны быть оптимизированы для целей быстрого тестирования относятся персонал процесс комплексных испытаний статическое тестирование и динамическое тестирование. 1 Для выполнения быстрого тестирования нужны хорошо подготовленные и гибкие...

Русский

2013-09-30

82.5 KB

20 чел.

Тестированию программного обеспечения с использованием языка программирования C# и NUnit-тестов (Доп 4

Тестирование программного обеспечения — это процесс анализа или эксплуатации программного обеспечения с целью выявления дефектов.

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

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

Тестирование программного обеспечения выполняет две базовых функции: верификацию и аттестацию:

Верификация обеспечивает соответствие результатов конкретной фазы процесса разработки требованиям данной и предшествующей стадий.

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

Быстрая разработка — это обобщенный термин, который означает то же, что "ускоренная разработка" и "сжатые сроки разработки". Он означает разработку программного продукта за меньшее время, чем это делалось до сих пор.

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

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

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

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

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

Во время исследования каждой стадии разработки, с точки зрения тестировщика,  мы рассчитываем получить ответы на следующие вопросы:

• Может ли тестовая группа предпринять на данной стадии какое-либо действие, способное предотвратить утечку дефектов?

• Может ли тестовая группа предпринять на данной стадии какое-либо действие, позволяющее уменьшить риск нарушения временного графика разработок?

• Можно ли получить какую-либо информацию на текущей стадии разработки, которая позволила бы тестовой группе ускорить планирование тестирования, разработку тестовых случаев или выполнение тестов?

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

В 2001 году Пфлегером процесс определен как "последовательность шагов, в том числе действия, ограничения и ресурсы, которая приводит к желаемому результату определенного рода".

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

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

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

Далее будет дано краткое описание действий, входов и выходов для каждой стадии каскадного процесса тестирования.

1) Тестовой группе нужен набор требований, который позволил бы им составить план проведения испытаний и выполнить системные и приемочные испытания. Очень полезным выходным документом стадии анализа требований является матрица прослеживаемости требований. Матрица прослеживаемости требований представляет собой документ, который отображает каждое требование на промежуточные результаты процесса разработки, такие как компоненты проекта, модули программного обеспечения и результаты тестирования. Она может быть представлена в виде электронной таблицы, таблицы текстового процессора, базы данных или Web-страницы.

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

3) Проектирование тестов состоит из двух компонентов: архитектуры тестов и подробных планов тестов. Архитектура тестов упорядочивает тесты по группам, таким как функциональные тесты, испытания для определения рабочих характеристик, проверка безопасности и т.д. Подробные планы тестов описывают назначение каждого теста, технические средства и данные, необходимые для выполнения теста, ожидаемые результаты каждого теста, а также указывают на требование, на подтверждение выполнения которого ориентируется данных тест.

4) Системное тестирование проводится для удостоверения того, что программное обеспечение делает именно то, что от него ожидает пользователь.

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

6) Если смотреть с точки зрения организации тестирования, то сопровождение означает проверку результатов исправления дефектов, тестирование расширенных функциональных возможностей и выполнение регрессионных тестов на новых версиях программного продукта. Цель всего этого заключается в получении подтверждения того, что ранее исправно работавшие функциональные средства не пострадали от внесения изменений в программный продукт.

Для проведения примера тестирования понадобится среда разработки Visual Studio 2010 с версией .Net 4.0, а также установленной библиотекой для проведения тестов – NUnit Framework.

Основные методы класса Assert для проведения динамического тестирования программного обеспечения:

Название метода

Описание

Пример

IsTrue

IsFalse

Проверка логического выражения на истину или ложь

Assert.IsTrue(true);

Assert.IsFalse(false);

IsNull

IsNotNull

Провекра выражения на пустую ссылку

IsNull(null);

IsNotNull(“string”)

Equals

Проверка на равенство двух объектов или структур

String a = “abc”;

String b = “abc”;

Assert.Equals(a, b)

IsInstanceOf

Проверка на соответствие типов

A1 = new A();

B1 = new A();

IsIstanceOf(A1, B1)


 

А также другие работы, которые могут Вас заинтересовать

18455. ФЕДЕРАТИВНОЕ УСТРОЙСТВО РОССИИ 261.5 KB
  ТЕМА 17. ФЕДЕРАТИВНОЕ УСТРОЙСТВО РОССИИ 17.1. Основные этапы развития российского федерализма 17.2. Общая характеристика и основные принципы федеративного устройства России их особенности 17.3. Предметы ведения и полномочия РФ и ее субъектов 17.4. Правовой статус ...
18456. ОБЩЕСТВО, ПОЛИТИЧЕСКАЯ ВЛАСТЬ, ГОСУДАРСТВО. ПОЛИТИЧЕСКАЯ СИСТЕМА ОБЩЕСТВА 177.53 KB
  ОСНОВНЫЕ ПОЛОЖЕНИЯ О ПРАВЕ ТЕМА 1. ОБЩЕСТВО ПОЛИТИЧЕСКАЯ ВЛАСТЬ ГОСУДАРСТВО. ПОЛИТИЧЕСКАЯ СИСТЕМА ОБЩЕСТВА. 1.1. Общество 1.2. Определение власти 1.3. Происхождение государства 1.4. Понятие и сущность государства 1.5. Функции государства 1.6. Форма государс...
18457. ПОНЯТИЕ И СОЦИАЛЬНОЕ НАЗНАЧЕНИЕ ПРАВА 57.63 KB
  ТЕМА 2. ПОНЯТИЕ И СОЦИАЛЬНОЕ НАЗНАЧЕНИЕ ПРАВА 2.1. Понятие права 2.2. Сущность и социальное назначение права 2.3. Соотношение государства и права 2.4. Функции права 2.5. Принципы права Контрольные вопросы Темы рефератов 2.1. Понятие права Право воз
18458. ПРАВО В СИСТЕМЕ СОЦИАЛЬНЫХ НОРМ 49.97 KB
  ТЕМА 3. ПРАВО В СИСТЕМЕ СОЦИАЛЬНЫХ НОРМ 3.1. Социальные нормы и их виды 3.2. Взаимоотношение права и морали 3.3. Моральные нормы юристапрофессионала Контрольные вопросы Темы рефератов 3.1. Социальные нормы и их виды Люди в современном цивилизованном
18459. ПРАВОСОЗНАНИЕ И ЮРИДИЧЕСКАЯ КУЛЬТУРА 70.42 KB
  ТЕМА 4. ПРАВОСОЗНАНИЕ И ЮРИДИЧЕСКАЯ КУЛЬТУРА 4.1. Понятие правосознания и его функции 4.2. Основные виды правосознания 4.3. Правовое воспитание 4.4. Правовая культура Контрольные вопросы Темы рефератов 4.1. Понятие правосознания и его функции Будучи
18460. НОРМА ПРАВА 110.03 KB
  ТЕМА 5. НОРМА ПРАВА 5.1. Понятие и характерные черты норм права 5.2. Структура норм права 5.3. Виды норм права Контрольные вопросы Темы рефератов 5.1. Понятие и характерные черты норм права Правовая норма это исходный элемент первичная клеточка права....
18461. ИСТОЧНИКИ ПРАВА 84.52 KB
  ТЕМА 6. ИСТОЧНИКИ ПРАВА 6.1. Понятие источника права. Виды источников права 6.2. Понятие и виды законов. Конституция конституционные и обыкновенные законы 6.3. Подзаконные нормативные акты 6.4. Действие нормативного акта во времени в пространстве и по кругу лиц ...
18462. СИСТЕМА ПРАВА 38.6 KB
  ТЕМА 7. СИСТЕМА ПРАВА Контрольные вопросы Темы рефератов Система права это объективное обусловленное системой общественных отношений внутреннее строение национального права заключающееся в разделении единых по своей социальной сущности и назначению в...
18463. ПРАВООТНОШЕНИЯ. Понятие и виды правоотношений 110.67 KB
  ТЕМА 8. ПРАВООТНОШЕНИЯ 8.1. Понятие и виды правоотношений 8.2. Содержание правоотношения 8.3. Юридические факты Контрольные вопросы Темы рефератов 8.1. Понятие и виды правоотношений В процессе реализации права возникают правоотношения урегулирован