Академический Документы
Профессиональный Документы
Культура Документы
Когда у нас есть список треб. К системе мы составляем утверждение, какие задачи
должна система реализовывать.
Цели тестирования
Задачи:
Цикл тестирования ПО
Принципы тестирования:
1. Функциональное
2. Нефункциональное
1. По состоянию
2. По знанию системы
3. По степени автоматизации:
· Ручное тестирование
Уровни тестирования
Функциональные дефекты:
Дефекты производительности
1. Человеческий фактор
· Ошибки спецификации
· Ошибки проектирования
Отчет об ошибке
Отчет об ошибке:
· Высокий (high)
· Средний (medium)
· Низкий (low)
· Тестовое окружение
Серьёзность: critical
Приоритет: high
Описание
Шаги по воспроизведению:
3. Зайти в корзину
2. Выйти из системы
Если мы наблюдаем похожий баг, который уже встречался, то это не значит что нужно
открывать старую карточку. Потому что причина возникновения дефекта может быть
другой.
Может быть допущена ошибка при программировании, а может потому что идет
загрузка.
Сколько стоят дефекты?
Если на этапе разработки был обнаружен баг в требования, нужно повторять снова
этап анализа и разработки.
Если обнаружили баг на этапе внедрения, то нужно проходить больше шагов: анализ –
разработка – тестирование – внедрение. Потратится в два раза больше времени, чем
могли бы в идеальном случае. Тестирование должно проводится уже на этапе анализа
и быть внедрено в каждый этап разработки.
Эмоциональный интеллект:
Тестовая документация
Виды:
§ цели
§ требования к системе
§ возможные риски
§ список артефактов
§ цели
§ необходимые ресурсы
§ ответственные за тестирование
· Тестовый случай
2. Тестовое окружение
4. Дата тестирования
4. Приоритет дефекта
5. Серьезность дефекта
9. Предусловия
11. Постусловия
§ Финальный отчет
§ Состав команды
Основы тест-дизайна
§ Тестирование документации
§ Какие есть роли пользователя (разные наборы функций для разных категорий
пользователя)?
§ Зарегистрированный пользователь
o Обмениваться сообщениями
o Добавлять друзей
o Создавать записи
o Оставлять комменты
o …
§ Админ группы
§ Незарег пользователь
Составляем тест-кейсы:
Нужно знать какие параметры есть на входе и какие данные получаем на выходе, как
входные параметры влияют на результат.
Как входные параметры влияют на результат: видим то что постит друг, что постит
сообщество, не видим тех, кто в черном списке.
Диаграмма причина-следствие (диаграмма Исикавы):
Части диаграммы:
· Состояние (state)
· ПЕРЕХОД (transition)
Таблица переходов
Т С Р Нов
е о еа ое
к б кц сост
у ы ия оян
щ т ие
е и
е е
с
о
с
т
о
я
н
и
е
В з В под
ы а ал тве
б п ид ржд
о о ац ени
р л ия е
н ф
б и ор
и т м
л ь ы
е
т
о
в
В о У Отм
ы т да ена
б м ле зака
о е ни за
р н е
и ин
б т ф
и ь ор
л м
е ац
т ии
о о
в за
ка
зе
из
ба
зы
… … … …
о о С бил
п п ов ет
л л ер
а а ш
т т ит
а и ь
т де
ь не
ж
н
ы
й
пе
ре
во
д
Это полезно если приложение сложное, у него много частей и есть много
сценариев взаимодействия.
Количество классов:
· 1-10
· 11-99
· Больше 99
· Дробное число
Анализ граничных значений (boundary value analysis) – техника поиска ошибок на
границах классов эквивалентности.
(не полный перечень, все зависит от того что нужно для проверки)
· Дата и время: границы минуты, часа, дня, недели, месяца, года, столетия;
несуществующие значения;
29 февраля;
часовые пояса;
соотношение с «сейчас»;
Описание тест-кейсов
· Обязательно:
o Заголовок (title)
o Шаги (steps)
Steps:
· Чтобы не забыть
Пример тест-дизайна:
Сценарии использования:
Сайт, на котором есть какой-то интерактив. Эл. Почта, соц сеть, онлайн банк и др.
· клиент – браузер
· Много клиентов
· Много серверов
Связь
HTTP-сообщение
(Для chrome) Для начала вызываем инструменты разработчика (developer tools): f12
или ctrl+shift+I или cmd+opt+i
На вкладке нетворк в нижней части выделите нужный вам запрос, в правой части на
вкладке хедерс нажать на кнопку вью ресорс
Структура HTTP-сообщения
Get (метод)
Заголовки (Headers)
Cache-control: max-age=0
Content-type: “application/json”
…………………..dfsgg……………………
}
Методы HTTP-запросов
· Примеры:
Адрес сайта
Картинка
Код статуса: целое трёхзначное число, часть стартовой строки ответа сервера
HTTP/1/1 200 OK
· 200 – ok
Клиент:
Толстый и тонкий клиент
Пример: Онлайн-банк
Структура страницы:
Первоначально dom может меняться динамически. Для этого используется java script –
это скриптовый язык программирования. Он обеспечивает интерактивность на стороне
клиента: анимация, валидация, взаимное расположение и др.
Ошибки при работе java script можно видеть в консоли браузера, которая находится в
инструментах разработчика.
1. Отправка запроса
Практика:
Данные:
Cookie – небольшой фрагмент данных, отправленный веб-сервером и хранимый на
компьютере пользователя (обычно хранится информация по идентификации вашего
компьютера, темы оформлений сайта и другие настройки)
Кэш
Валидация
Типы:
При таком разрешении человеческий глаз перестает замечать, что картинка состоит из
пикселей.
Тестирование обновлений:
Android
IOS
● уникальное имя
● опр. категория
● ссылка для обратной связи с разработчиком
● Human interface Guidelines
● отказ в сертификации по некоторым причинам
● утечка памяти
● обработка ситуаций нехватки памяти для функционирования ОС
● недостаток места для установки или работы приложения
● отсутствие в некоторых устройствах поддерживаемых приложением функций
● установка и перенос на сд карту
● потребление электроэнергии
● временные файлы
Проблемы тестирования
Инструменты тестирования:
● perfecto mobile
● device everywhere
● …
Автоматизация тестирования:
Проектный треугольник
Каскадная модель разработки
Плюсы:
● стабильность требований
● фиксированный порядок этапов проекта
● простота планирования затрат и сроков завершения работ
● полная и согласованная документация на каждом этапе
● прозрачность процессов (фиксированность результатов и их сроков, мы знаем
что мы делаем и что будем делать дальше)
Минусы:
● отсутствие обратной связи между этапами (мы не можем просто вернуться к
анализу и поправить маленький кусочек)
● высокая стоимость ошибки
● нельзя изменить требования (их хочется менять, чтобы они лучше подходили к
реальности)
● у клиента и пользователей нет возможности ознакомиться с предварительной
версией ПО
Agile
Основные идеи:
Принципы agile-манифеста.
1. Наивысший приоритет - удовлетворение потребностей заказчика, благодаря
регулярной и ранней поставке ценного ПО. (Цель - максимально быстро
реагировать на требования от заказчика).
2. Изменение требований приветствуется, даже на поздних стадиях разработки.
Agile-процессы позволяют использовать изменения для обеспечения заказчику
конкурентного преимущества. Работающий продукт следует выпускать как
можно чаще, с периодичностью от пары недель до пару месяцев.
Регрессионное тестирование делаем часто и много. И это нужно закладывать
на этапе планирования.
3. На протяжение всего проекта разработчики и представители бизнеса должны
ежедневно работать вместе. Получать обратную связь. В идеале заказчик сам
хочет помочь вам разобраться в требованиях. Но видимо так не бывает)
4. Над проектом должны работать мотивированные профессионалы. Чтобы
работа была сделана, создайте условия, обеспечьте поддержку и полностью
доверьтесь им. Для команды это значит большие возможности. Если вы
видите, что можно сделать лучше, вы берете и делаете лучше. Но принимаете
на себя ответственность.
5. Непосредственное общение является наиболее практичным и эффективным
способом обмена информацией как с самой командой, так и внутри команды.
Все много общаются между собой. Быстрая передача информации.
6. Работающий продукт - основной показатель прогресса. Если продукт работает,
значит с задачей справились. Иногда могут чуть меньше внимания уделять
мелким дефектам или качеству кода. Но несовершенства могут накапливаться
и мешать выпускать продукт с той же регулярностью. Нужно все равно
исправлять проблемы.
7. Инвесторы, разработчики и пользователи должны иметь возможность
поддерживать постоянный ритм бесконечно. Agile помогает наладить такой
устойчивый процесс разработки.
8. Постоянное внимание к техн. совершенству и качеству проектирования
повышает гибкость проекта. Чтобы мы могли долго работать, нужно чтобы оно
было качественным и технически грамотным и аккуратно сделанным.
9. Простота - искусство минимизации лишней работы - крайне необходима.
Иногда достаточно итерации. Если какая-то работа не приносит пользы, не
нужно делать ее для галочки.
10. Самые лучшие требования, архитектурные и технические решения рождаются
у самоорганизующихся команд. Которые сами знают как наилучшим образома
достичь того что нужно.
11. Команда должна систематически анализировать возможные способы
улучшения эффективности и соответственно корректировать стиль своей
работы. Приложения выдвигают все члены команды.
Agile - команда
Итерация/Спринт (Sprint)
● промежуток времени от 1 недели до 1 месяца (длина итерации), на практике 2-3
недели
● в конце итерации есть готовый инкремент (вариант) продукта
● длина итерации не меняется (если две недели, то всегда две недели)
● задачи заканчиваются в той итерации, в которой начались (отличительная
черта скрама)
● не более одного дня задержки между итерациями
● для каждой задачи команда знает, каким образом и от кого получить доп.
информацию
Kanban
Спиральная модель.