среда, 28 апреля 2010 г.

Виды тестирования программного обеспечения


Что такое тестирование программного обеспечения? Грубо говоря (я не буду здесь приводить цитаты из стандартов) тестирование – это проверка программы правильно ли она работает в различных условиях.

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


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

По объекту тестирования виды тестирования программного обеспечения бывают:

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

2. Нагрузочное тестирования – необходимо для проверки работоспособности программного обеспечения на различных уровнях нагрузки.

a. Тестирование производительности
b. Тестирование стабильности

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

4. Тестирование интерфейса пользователя – тут все понятно, проверяется на правильность интерфейс программы.

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

6. Тестирование локализации – проверка того, правильно (и точно) вы выполнили локализацию программного обеспечения (адаптацию под конкретную культуру).

7. Тестирование совместимости – этот вид тестирования программного обеспечения проверяет, совместимо ли ПО с различными версиями операционных систем, оболочек и т.д.

По знанию системы виды тестирования программного обеспечения бывают:

1. Тестирование черного ящика – мы о системе ничего не знаем. То есть мы видим ПО так же, как видит его потенциальный пользователь.

2. Тестирование белого ящика – у нас есть все спецификации ПО, его код и т.д.

3. Тестирование серого ящика – пока я с этим не сталкивался, так что точно сказать, что это за вид тестирования программного обеспечения не могу.

По степени автоматизации виды тестирования программного обеспечения бывают:

1. Ручное тестирование – все тесты проводятся руками.

2. Автоматизированное тестирование – тестирование полностью выполняется компьютером.

3. Полуавтоматизированное тестирование – в тестировании принимает участие и человек и компьютер.

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

1. Модульное тестирование – тестированию подвергается минимальный элемент программы (модуль, процедура, функция).

2. Интеграционное тестирование – тестируются интерфейсы между различными модулями ПО.

3. Системное тестирование – проверяется соответствие требованиям ПО.

По времени проведения тестирования виды тестирования программного обеспечения бывают:

1. Альфа тестирование – в данном виде тестирования программного обеспечения принимают участие разработчики ПО, но ведут они себя как потенциальные пользователи.

a. Тестирование при приёмке
b. Тестирование новой функциональности
c. Регрессионное тестирование
d. Тестирование при сдаче

2. Бета тестирование – ПО отдано на проверку реальным (ограниченному числу) пользователям.

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

1. Позитивное тестирование – в ходе проведения данного вида тестирования программного обеспечения показывается, что ПО работает правильно.

2. Негативное тестирование – а при этом виде показывается то, что ПО работает неправильно (и при каких случаях).

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

1. Тестирование по документации – мы о ПО знаем все.

2. Интуитивное тестирование – о ПО ничего не знаем.

По состоянию:

1. Динамическое – ПО выполняется на компьютере.

2. Статическое – анализируется код ПО.

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

3 комментария: