15
Тестирование ПО

Тестирование ПО

Embed Size (px)

DESCRIPTION

 

Citation preview

Page 1: Тестирование ПО

Тестирование ПО

Page 2: Тестирование ПО
Page 3: Тестирование ПО

От 50 к 90• Переход от нацеленности на доказательство

отсутствия ошибок к поиску ошибок в ПО.

• Процесс тестирования расширяется на

весь период разработки ПО.

• Появление специализированных программ.

• Появление отдельной профессии.

• Тестирование не только для поиска ошибок.

Page 4: Тестирование ПО

По цели тестирования• Функциональные тесты. Поиск ошибок в ПО.

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

• Нагрузочное тестирование. Определение работы ПО при

ожидаемой нагрузке.

• Стресс-тестирование. Анализ пропускной способности ПО

при максимальной нагрузке.

• Тестирование надежности. Проверку стабильности работы

ПО при длительном периоде и рабочей нагрузке.

• Тестирование пользовательского интерфейса (usability).

Проверка эргономичности работы с ПО.

• Тестирование безопасности.

Page 5: Тестирование ПО

По открытости системы• Черный ящик. Нам ничего не известно

о коде и ПО. Тестирование

производится с позиции конечного

пользователя.

• Белый ящик. Предполагается, что нам

доступен исходный код системы.

Page 6: Тестирование ПО

if(condition){

DoWork1();}else{

DoWork2();}

На такой код дайте два теста!

Page 7: Тестирование ПО

По степени автоматизацииРучное тестирование Автоматизированное

тестирование

Page 8: Тестирование ПО

По степени изолированности• Модульное или юнит-тестирование. В качестве компонентов

выделяют классы или даже методы классов.

• Интеграционное тестирование. При данном тестировании

программные модули (классы) объединяются и

автоматизировано тестируются совместно по методу черного

ящика.

• Системное тестирование. Тестируется вся система целиком по

методу черного ящика.

Page 9: Тестирование ПО

Библиотеки для unit-тестирования

• NUnit. Имеются дополнения для

тестирования WinForms и WebForms:

NUnit.Forms и NUnit.ASP

соответственно.

• msTest. Распространяется

компанией Microsoft.

• xUnit.

• mbUnit.

Page 10: Тестирование ПО

Основные принципы unit-тестирования

• Fast (Быстрота). Тесты должны выполняться быстро.

• Independent (Независимость). Результаты выполнения одного

теста не должны быть входными данными для другого.

• Repeatable (Повторяемость). Тесты должны давать одинаковые

результаты независимо от среды выполнения. 

• Self-Validating (Очевидность). Тест либо прошел, либо не прошел.

• Timely (Своевременность). Тесты должны создаваться

своевременно.

Page 11: Тестирование ПО

Преимущества unit-тестов

• Отличный источник спецификации системы,

может выступать вместо документации.

• Unit-тесты позволяют легко вносить

изменения в ПО. Нету страха что-нибудь

сломать.

• Unit-тесты положительно влияют на

архитектуру и дизайн системы.

Page 12: Тестирование ПО

TDD (test driven development)

• Добавление теста. Любое

добавление функциональности

начинается с написания тестов к

нему.

• Реализация заявленной

функциональности.

• Рефакторинг. Внесение изменений

в код, с целью повышения его

читабельности.

Page 13: Тестирование ПО

Программист не использующий TDD

TDD евангелист

Page 14: Тестирование ПО

ПО и литератураCIS

• TeamCity

• TFS

• Jenkins

Bugtracker

• Redmine

• JIRA

• Bugzilla

Selenium

• http://software-testing.ru

• Кент Бек, Экстремальное

программирование: разработка через

тестирование

• Roy Osherove, The Art of Unit Testing

• Andy Hunt, Pragmatic Unit Testing in C#

with NUnit

Page 15: Тестирование ПО