Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
124563.rtf
Скачиваний:
35
Добавлен:
26.08.2019
Размер:
1.32 Mб
Скачать
    1. Основные определения в области тестирования программного обеспечения. Цели и задачи тестирования

Тестирование программного обеспечения (software testing) – это процесс анализа или эксплуатации программного обеспечения с целью выявления дефектов. Несмотря на всю простоту этого определения, в нем содержатся пункты, которые требуют дальнейших пояснений. Слово процесс (process) используется для того, чтобы подчеркнуть, что тестирование суть плановая, упорядоченная деятельность.[2]

Согласно этому определению, тестирование предусматривает "анализ" или "эксплуатацию" программного продукта. Тестовая деятельность, связанная с анализом результатов разработки программного обеспечения, называется статическим тестированием (static testing). Статическое тестирование предусматривает проверку программных кодов, сквозной контроль и проверку программы без запуска на машине, т.е. проверку за столом (desk checks). В отличие от этого, тестовая деятельность, предусматривающая эксплуатацию программного продукта, носит название динамического тестирования (dynamic testing). Статическое и динамическое тестирование дополняют друг друга, и каждый из этих типов тестирования реализует собственный подход к выявлению ошибок.

Последний пункт определения, требующий дополнительных пояснений – это понятие дефекта (bug). Дефект (ошибка) – это расхождение между вычисленным, наблюдаемым и истинным, заданным или теоретически правильным значением. [2] Говоря простыми словами, программная ошибка – не что иное, как изъян в разработке программного продукта, который вызывает несоответствие ожидаемых результатов выполнения программного продукта и фактически полученных результатов. Дефект может возникнуть на стадии кодирования, на стадии формулирования требований или на стадии проектирования, либо же его причина может крыться в некорректной конфигурации или данных.[3]

Задача тестирования – определение условий, при которых проявляются дефекты системы и протоколирование этих условий. В задачи тестирования обычно не входит выявление конкретных дефектных участков программного кода и никогда не входит исправление дефектов – это задача отладки, которая выполняется по результатам тестирования системы.

Цель применения процедуры тестирования программного кода – минимизация количества дефектов, в особенности существенных, в конечном продукте. Тестирование само по себе не может гарантировать полного отсутствия дефектов в программном коде системы.[4]

    1. Классификация тестирования

По знанию внутренностей системы:

– черный ящик;

– серый ящик;

– белый ящик.

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

– функциональное тестирование;

– тестирование интерфейса пользователя;

– тестирование локализации;

– тестирование скорости и надежности;

– тестирование безопасности;

– тестирование опыта пользователя;

– тестирование совместимости.

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

– альфа-тестировщик;

– бета-тестировщик.

По времени проведения тестирования:

– до передачи пользователю – альфа-тестирование;

– тест приемки;

– тестирование новых функциональностей;

– регрессивное тестирование;

– тест сдачи;

– после передачи пользователю – бета-тестирование.

По критерию "позитивности" сценариев:

– позитивное тестирование;

– негативное тестирование.

По степени изолированности тестируемых компонентов:

– компонентное тестирование;

– интеграционное тестирование;

– системное тестирование.

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

– ручное тестирование;

– автоматизированное тестирование;

– смешанное/полуавтоматизированное тестирование.

По степени подготовки к тестированию:

– тестирование по документации;

– эд хок-тестирование.[5]

По знанию внутренностей системы

В терминологии профессионалов тестирования, фразы «тестирование белого ящика» и «тестирование чёрного ящика» относятся к тому, имеет ли разработчик тестов доступ к исходному коду тестируемого программного обеспечения, или же тестирование выполняется через пользовательский интерфейс либо прикладной программный интерфейс, предоставленный тестируемым модулем.[Error: Reference source not found]

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

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

Серый ящик. При тестировании серого ящика разработчик теста имеет доступ к исходному коду, но при непосредственном выполнении тестов доступ к коду, как правило, не требуется.[Error: Reference source not found]

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

Альфа-тестировщик. Альфа-тестирование – имитация реальной работы с системой штатными разработчиками, либо реальная работа с системой потенциальными пользователями/заказчиком.[Error: Reference source not found] Альфа-тестировщик – это сотрудники компании, которые профессионально или непрофессионально проводят тестирование: тестировщики, программисты, продюсеры, бухгалтеры, сисадмины, секретарши. [5]

Бета-тестировщик. В некоторых случаях выполняется распространение версии с ограничениями (по функциональности или времени работы) для некоторой группы лиц, с тем, чтобы убедиться, что продукт содержит достаточно мало ошибок. Иногда бета-тестирование выполняется для того, чтобы получить обратную связь о продукте от его будущих пользователей.[Error: Reference source not found] Бета-тестировщик – это нередко баловень судьбы, который не является сотрудником компании и которому посчастливилось пользоваться новой системой до того, как она станет доступна всем остальным. За бета-тестирование иногда даже платят деньги.[5]

По степени изолированности тестируемых компонентов

Компонентное тестирование – это тестирование на уровне логического компонента. И это тестирование самого логического компонента.

Интеграционное тестирование – это тестирование на уровне двух или больше компонентов. И это тестирование взаимодействия этих двух или больше компонентов.

Системное тестирование – это проверка всей системы от начала до конца.[5]

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]