3.55M

П11. Тестирование

1.

C какими багами и ошибками вы сталкивались в
играх, приложениях или на сайтах?

2.

Mars Climate Orbiter
Ошибка Mars Climate Orbiter
заключалась в том, что одна из команд
разработчиков использовала
британскую систему единиц (фунтсила), а другая — метрическую
(ньютоны). Из-за несоответствия в
расчетах тяги двигателя, аппарат
отклонился от запланированного курса
и сгорел в атмосфере Марса на высоте
около 57 км вместо ожидаемых 110 км.

3.

Ущерб: Стоимость миссии составляет около 125
миллионов долларов.

4.

Ariane 5
Главная ошибка ракеты «Ariane 5»
произошла 4 июня 1996 года.
Причиной стала попытка
конвертировать 64-разрядное
число с плавающей запятой в 16разрядное без обработки
исключений. В результате ракета
самоуничтожилась спустя 40
секунд после старта, уничтожив
четыре спутника.

5.

Ущерб: Стоимость потерь оценивалась от $360
до $500 миллионов.

6.

Какие выводы можно сделать?

7.

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

8.

Тестирование — это процесс проверки соответствия
ПО заявленным требованиям. Это сравнение
«Ожидаемого результата» и «Фактического
результата».

9.

Схожие понятия
QA (Обеспечение качества) - Это процесс. Набор мероприятий,
охватывающих все этапы разработки, направленных на предотвращение
дефектов (налаживание процессов, стандарты кода, обучение).
QC (Контроль качества) - Это проверка результатов. Анализ готового
продукта на соответствие требованиям.
Тестирование - Это инструмент. Непосредственное выполнение тестов
(руками или кодом) для обнаружения ошибок.

10.

QA: Создать инструкцию по сборке автомобиля, чтобы на конвейере не
ошибались.
QC: Проверить, закручены ли гайки на готовом автомобиле.
Тестирование: Проехать на автомобиле и проверить, работают ли тормоза.

11.

А почему еще важно тестирование?

12.

Цель
Главная цель тестирования: Предоставить информацию о качестве продукта
и снизить риски появления дефектов у конечного пользователя.

13.

Классификация. По знанию системы
Черный ящик - Мы не видим код. Мы действуем как пользователь: подаем
что-то на вход и проверяем выход. (Пример: проверить форму логина на
сайте).
Белый ящик - Мы видим код и структуру. Мы проверяем логику, условия,
циклы. (Пример: Unit-тесты, Code Review).
Серый ящик - Комбинация.

14.

Классификация. По объекту тестирования
Функциональное - "Что система делает?" (Может ли пользователь положить
товар в корзину?).
Нефункциональное: - "Как система работает?"
● Нагрузочное: Выдержит ли сайт 10 000 пользователей одновременно?
● UI/UX: Удобно ли пользователю? Не "поехала" ли верстка?
● Безопасность: Можно ли взломать систему?

15.

Классификация. По степени автоматизации
Ручное: Тестировщик проходит сценарии руками.
Автоматизированное: Специальные скрипты проверяют другой код.

16.

Unit-тесты (Модульные):
Основа пирамиды. Пишут
разработчики. Проверяют
маленькие куски кода
(функции). Их должно быть
много.

17.

Проверка взаимодействия
между модулями (например,
API и База Данных).

18.

Системное: Проверка всей
системы целиком.

19.

Приемочное: Проверка
заказчиком/пользователем
перед релизом.

20.

21.

Баг-репорт
Тема: Кратко и емко. Где? Что? Когда?
Шаги воспроизведения:
Открыть сайт...
Нажать кнопку...
Фактический результат: Что случилось?
Ожидаемый результат: Как должно было быть.
Серьезность: Насколько технически сильно это ломает систему
Приоритет: Как срочно это нужно чинить

22.

23.

Из чего состоит тест?
Предварительные условия: Что нужно сделать до начала
Шаги: Куда нажать, что ввести.
Ожидаемый результат: Что должно произойти. (сверить)

24.

Еще немного основных принципов тестирования

25.

1. Тестирование демонстрирует наличие дефектов, а не их отсутствие.
2. Исчерпывающее тестирование невозможно.
3. Раннее тестирование.
4. Скопление дефектов.
5. Тестирование зависит от контекста.
6. Заблуждение об отсутствии ошибок.

26.

Тестируем лифт

27.

Представьте программу. Она принимает на вход три
целых числа (длины сторон треугольника). Программа
должна вывести, какой это треугольник:
Разносторонний, Равнобедренный или
Равносторонний.
Написать список тестовых наборов (входные данные ->
ожидаемый результат), чтобы проверить эту
программу. (с пояснением)

28.

Базовые тесты: 3, 4, 5 (разносторонний); 5, 5, 5 (равносторонний); 5, 5, 3
(равнобедренный).
Не треугольник: 1, 2, 5 (сумма двух сторон должна быть больше третьей,
иначе треугольник не сложится). Это главная проверка логики!
Нули: 0, 5, 5 (сторона не может быть нулем).
Отрицательные числа: -5, 5, 5.
Нечисловые данные: Ввести букву "А" вместо цифры.
Перестановки: Если баг в коде, то 5, 5, 2 может сработать, а 2, 5, 5 — нет.

29.

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

30.

Тестирование банкомата

31.

Классификация оценок
0-39: Неудовлетворительно
40-59: Удовлетворительно
60-79: Хорошо
80-100: Отлично

32.

Тестирование чайника (UX/Нефункциональное
тестирование)
Новый умный Wi-Fi чайник. Он имеет кнопки управления, экран, приложение
для смартфона и функцию поддержания температуры.
Тесты, проверяющие его:
Производительность
Удобство
Безопасность
Среда

33.

Тестирование регистрации
Поле "Имя пользователя" при регистрации. Поле принимает от 3 до 50
символов.

34.

Программа принимает на вход целое число X и
выдает целое число Y

35.

Нейтральный элемент: X=0
Отрицательное число: X=-5
Очень большое число: X=2147483647
Нечисловой ввод: X= "Привет"
English     Русский Правила