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

Содержание

Слайд 2

Пирамида тестирования 70-80% юнит-тестов 10% интеграционных тестов 5% системных тестов 5% GUI тестов.

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

70-80% юнит-тестов
10% интеграционных тестов
5% системных тестов
5% GUI тестов. 

Слайд 3

Unit testing Unit testing — процесс в программировании, позволяющий проверить на

Unit testing

Unit testing — процесс в программировании, позволяющий проверить на корректность

отдельные модули исходного кода программы.
Слайд 4

Применение Быстрая проверка на ошибки в коде Спецификация приложения Система надежно

Применение

Быстрая проверка на ошибки в коде
Спецификация приложения
Система надежно протестирована
Система рассказывает

о себе путем тестов
Слайд 5

Когда применять Простой код без зависимостей Сложный код с большим количеством

Когда применять

Простой код без зависимостей
Сложный код с большим количеством зависимостей
Cложный код

без зависимостей
Не очень сложный код с зависимостями
Слайд 6

Тесты должны быть: Достоверными Не зависеть от окружения, на котором они

Тесты должны быть:

Достоверными
Не зависеть от окружения, на котором они выполняются
Легко поддерживаться
Легко

читаться и быть простыми для понимания
Соблюдать единую конвенцию именования
Запускаться регулярно в автоматическом режиме
Слайд 7

Фрейморки тестирования MS Test: фреймворк юнит-тестирования от компании Microsoft, который по

Фрейморки тестирования
MS Test: фреймворк юнит-тестирования от компании Microsoft, который по умолчанию

включен в Visual Studio
NUnit: портированный фреймворк с JUnit для платформы .NET
xUnit.net: фреймворк тестирования от создателей NUnit для платформы .NET
Слайд 8

Правила именования тестов Выберите способ именования проектов с тестами .Core.Tests Используйте

Правила именования тестов

Выберите способ именования проектов с тестами .Core.Tests
Используйте такой же

способ именования для тестовых классов
Выберите «говорящий» способ именования методов тестирующих классов [Тестируемый метод]_[Сценарий]_[Ожидаемое поведение] Sum_2Plus5_7Returned
Слайд 9

Правила написания unit-тестов Выберите логическое расположение тестов в вашей VCS Придерживайтесь

Правила написания unit-тестов
Выберите логическое расположение тестов в вашей VCS
Придерживайтесь единого стиля

написания тела теста
Тестирование одной вещи за один раз
Борьба с зависимостями
Слайд 10

Arrange-Act-Assert (AAA) Arrange: подготовка среды, в которой выполняется код Act: тестирование

Arrange-Act-Assert (AAA) 

Arrange: подготовка среды, в которой выполняется код
Act: тестирование кода (обычно

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

class CalculatorTests
{
public void Sum_2Plus5_7Returned()
{
var calc = new Calculator(); // arrange
var res = calc.Sum(2,5); // act
Assert.AreEqual(7, res); // assert
}
}

class CalculatorTests
{
public void Sum_2Plus5_7Returned()
{
Assert.AreEqual(7, new Calculator().sum(2,5));
}
}

Слайд 11

Test Double (дублер) Dummy Fake Stubs Mocks

Test Double (дублер)

Dummy
Fake
Stubs
Mocks

Слайд 12

Слайд 13

Stub

Stub

Слайд 14

Mock

Mock