Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
SFT.EXT.01_IntroductionToSFT_conspect.docx
Скачиваний:
0
Добавлен:
01.07.2025
Размер:
1.62 Mб
Скачать

Title: SFT.EXT.01 Введение в тестирование

Confidential

Saved: 19-Feb-2015 09:40

EPAM Systems, RD Dep., RD Dep.

Конспект и раздаточный материал

SFT.EXT.01 Введение в тестирование

REVISION HISTORY

Ver.

Description of Change

Author

Date

Approved

Name

Effective Date

<1.0>

Первая версия

Святослав Куликов

<7.02.2012>

Содержание

1. История развития тестирования 3

2. Важность тестирования 5

3. Модели жизненного цикла ПО 5

4. Жизненный цикл тестирования 16

5. Технические навыки и личностные качества тестировщика 17

6. Основная терминология тестирования 18

  1. История развития тестирования

На протяжении десятилетий истории развития разработки программного обеспечения к вопросам тестирования и обеспечения качества подходили очень и очень по-разному. Можно выделить несколько основных «эпох тестирования».

В 60-х годах прошлого века основное внимание уделялось т.н. «исчерпывающему тестированию» – проверке всех возможных путей выполнения кода со всеми возможными входными данными.

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

В итоге «исчерпывающее тестирование» было признано невыполнимым.

В первом издании своей книги «Искусство тестирования программного обеспечения» Гленфорд Майерс приводил пример, показывающий невозможность исчерпывающего тестирования. Простая программа, содержащая всего лишь 20 вложенных операторов if – даже такой «кусочек кода на один экран» давал сумасшедшее количество ветвей выполнения программы.

В начале 70-х тестирование ПО обозначалось как «процесс, направленный на демонстрацию корректности продукта» или как «деятельность по подтверждению правильности работы ПО».

В зарождавшейся программной инженерии верификация ПО значилась как «доказательство правильности».

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

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

Успешный тест – такой, который обнаруживает ранее неизвестные проблемы.

Данный подход прямо противоположен предыдущему (применяемому в 60-х годах).

Указанные два определения представляют собой «парадокс тестирования», в основе которого лежат два противоположных утверждения:

а) с одной стороны, тестирование позволяет убедиться, что продукт работает хорошо;

б) с другой  – выявляет ошибки в ПО, показывая, что продукт не работает.

Вторая цель тестирования является более продуктивной с точки зрения улучшения качества, так как не позволяет игнорировать недостатки ПО.

В 80-х годах тестирование ПО расширилось таким понятием, как предупреждение дефектов. Проектирование тестов – наиболее эффективный из известных методов предупреждения ошибок.

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

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

«Традиционное тестирование», существовавшее до начала 80-х, относилось только к скомпилированной, готовой системе (сейчас это обычно называется «системное тестирование»).

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

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

В 90-х в понятие «тестирование» стали включать планирование, проектирование, создание, поддержку и выполнение тестов и тестовых окружений, и это означало переход от тестирования к обеспечению качества, охватывающего весь цикл разработки ПО.

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

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

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