🛑 Данный туториал отображается на GitHub 🔴 не корректно! Это лишь исходник.
Правильная версия https://www.epic1h.com/became_a_tester

Туториал: ломаем приложение онлайн-банка

Подойдет тем, кто хочет почувствовать себя в роли тестировщика ПО.

👍 Что сделаем

🙋‍ Перед началом

😍 Живая обратная связь

Каждый вторник я провожу бесплатные онлайн стендапы в Zoom.

Если у тебя есть вопрос или проблема, подключайся:

@[Anton Breslavsky|https://t.me/breslavsky_anton|assets/anton.jpg]

Что бы следить за анонсами новых туториалов подписывайся на телеграмм канал


🔢 Шаги

Коротко о тестировании 😂

Тестировщик проводит краш-тесты программных продуктов.

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


1. Ищем 🐞 баги на форме входа

✅ Грамматика

Тестировщик — проверяет грамматику и пунктуацию.

  • Нет ли ошибок в тексте?
  • Все знаки препинания расставлены правильно?
  • Все ли сообщения понятны пользователю?
Находим ошибки в текстах на форме
  • 🐞 Ошибка в слове, правильно — защищены
  • 🐞 Ошибка в сообщении, правильно — Введите логин и пароль
  • 🐞 В заголовках не ставятся точки в конце, правильно — Вход в систему
  • 🐞 Пробел перед и точка после : в предложении, правильно — Введите логин и пароль:

✅ Красота и аккуратность

Тестировщик — проверяет красоту и аккуратность.

  • Визуально интерфейс выглядит приятно?
  • Размеры элементов, шрифты, сочетание цветов?
Некрасивости 🤮
  • 🐞 Заголовок Вход в систему обрезан снизу.
  • 🐞 Поле пароль смещено наверх.
  • 🐞 Размер шрифта полей Логин и Пароль разный.
  • 🐞 Ширина поля Логин не вмещает вспомогательный текст.
  • 🐞 Зеленый шрифт на синем фоне? Реально? Кровь из глаз 😂

Ну как уже много багов? А мы ведь только начали.

Как развивать чувство вкуса?
  • Наслаждайся прекрасным дизайном приложений на Dribble
  • Установи и изучи топовые приложения в Apple App Store

✅ Удобство и простота использования

Тестировщик — проверяет юзабилити

  • Насколько удобно взаимодействовать с интерфейсом?
  • Все кнопки нажимаются?
  • Все данные в поля ввода вводятся?
  • Понятно, что делает программа сейчас?
Что не удобно на форме
  • 🐞 После неудачного входа поле логин очищается.
  • 🐞 Выводится сообщение на английском Wrong password
  • 🐞 Сообщение об ошибке показывается 2 раза
  • 🐞 Не отражается прогресс входа
Лучший интерфейс в мире 😂

✅ Безопасность

Тестировщик — проверяет безопасность

  • Программа не компрометирует пользователя?
  • Не причиняет боль, не травмирует?
Не безопасно

🐞 Поле пароль не скрывает символы.


✅ Совместимость

Тестировщик — проверяет совместимость

  • Как программа работает в разных браузерах?
  • На разных устройствах: ноутбуке, смартфоне, планшете?
  • На разных операционных системах?
  • С разной скоростью Интернета?

❓ Что сломалось на форме?

Сломалось

🐞 Поле пароль не отображается. Как теперь вообще войти в приложение?


❓ Что сломалось на форме?

Сломалось
  • 🐞 Форма обрезает поле ввода пароля
  • 🐞 Что за красная рамка вокруг формы? Кровь из глаз 😂

Мы протестировали только одну форму входа и везде 🐞 Ох, уж эти программисты! Бездельники 😡


Релиз 🚀 новой версии

Мы отправили разработчикам список багов 🐞, они их исправили и выпустили версию 1.1

Что было 👎

Что стало 👍

2. Используем Инструменты разработчика

Тестировщик — понимает как разрабатываются программы и как они работают на устройствах.

Тогда он сможет находить в них ошибки!

В окне нашего приложения:

Ты видишь Инструменты разработчика Chrome

Элементы пользовательского интерфейса

С помощью тегов HTML и стилей CSS рисуется пользовательский интерфейс.

На вкладке элементы:

❓ Кто удалил кнопку из приложения? И как теперь работать?

Перезагрузка страницы перезапускает приложение в браузере.

Панель устройств

Активируй панель устройств

Важно

Это не полноценный эмулятор устройств, а только тест размера экрана.

Консоль сообщений

❓ Что видишь в консоли?

фронтенд загружен
запрос на бекенд GET /api/users/summary
ответ сервера: {count: 3}
запрос на бекенд POST /api/login {username: 'test', password: 'test'}
POST http://localhost:3000/api/login → 404
Пользователь не найден
Кто такой Фронтенд и Бекенд? 😂

Что делает Фронтенд

Что делает Бекенд

❓ Это тоже баг?


Работа с сетью


3. Делаем SQL запросы

Бекенд разработчики предоставили нам для целей тестирования доступ в Базу данных на сервере.

❓ Что выводится на экране?

Бинго 🥳 У нас есть логины и пароли.


4. Входим в приложение банка

Ты видишь простое приложение банка с фичей перевода денег от одного человека к другому.

Инсайт

Тестировщик — это этичный хакер!

Что делать?

  • Переведи от chester к bob 100 рублей.
  • Выйди из chester, зайди под bob и проверь баланс.
  • Попробуй перевести 0 рублей.
  • Попробуй перевести -100 рублей.
  • Попробуй переводить деньги от разных пользователей.

❓ Что ты видишь?

Все баги нашел? 😂

  • 🐞 Можно переводить деньги самому себе.
  • 🐞 Можно переводить 0 рублей.
  • 🐞 Можно переводить отрицательное кол-во рублей.
  • 🐞 Можно отправить 0.000001 рублей.
  • 🐞 При переводе денег marry деньги поступают bob.
  • 🐞 После отправки денег баланс текущего пользователя на форме не обновляется.

5. Смотрим логи на сервере

Разработчики для целей тестирования предоставили доступ к логу программы на Сервере.

❓ Есть там залогированные баги? Что в этом логе опасного?

6. Хакнем базу

🙀 Разработчики не подумали и разместили файл базы данных в публичной части сервера!

❓ Это критический баг? Почему?

❓ Какие там таблицы и поля? За что они отвечают?

7. Сессия пользователя и Печеньки

В приложении есть еще один большооой баг.

🐞 Кнопка выход не работает на самом деле, сессия пользователя не закрывается.

❗ Ты все еще авторизован под chester!

Сессия пользователя

❓ Как Бекенд понимает, что запрос ему делает chester, а не bob например?

Не забудьте вместо xxx записать свое значение сессии!

Сессия исправлена

🤩 Хочу еще

🙏 Фидбек пожалуйста

Полезный материал?

* 🤩 Очень полезный материал
* 😃 В целом полезный
* 😐 Возможно что-то пригодится
* 😒 Нет ничего полезного
* 😬 Абсолютно бесполезно


**Спасибо за ответ!**

Все ли было понятно?

* 🤩 Все понятно на 100%
* 😃 В целом все понятно
* 😐 Что-то понятно, что-то нет
* 😒 Понял только малую часть
* 😬 Ничего не понял


**Спасибо за ответ!**

Как тебе такой формат туториала?

* 🤩 Очень удобно
* 😃 Мне понравилось
* 😐 Нормально
* 😒 Не удобно
* 😬 Ужасно


**Спасибо за ответ!**

Словарь терминов

Читать и смотреть

Вопросы на собеседованиях

❓ Чем отличаются кэш и куки? И зачем очищать кэш?

Ответ мастера

Кэш (cache) браузера — это хранилище посещённых пользователем веб-страниц.

Кэш включает в себя ресурсы: HTML, CSS, Java Script, картинки, аудио и видео файлы и т.д.

Браузер загружает файлы из кэша, что бы ускорить скорость повторной загрузки посещённых веб-страниц и их ресурсов.

При наличии кэша браузер возьмет файлы локально, без повторной загрузки с сервера.

Куки — данные текущей сессии пользователя которые передаются веб-серверу в каждом HTTP запросе.

Кэш — это файлы веб-ресурсов, куки — это данные сессии пользователя.

Если разработчики на веб-сервере неверно настроили управление кэшом для Браузера, то может возникнуть проблема, когда на сервере страница или ее ресурсы обновятся, а браузер продолжает использовать старую версию из кэша.

В этом случае нужно чистить кэш.

Где посмотреть или очистить кэш?

Откройте веб-сайт, далее Инструменты разработчикаПриложениеХранилище

❓ Как можно использовать вкладку Network в DevTools для тестирования?

❓ Какие цели преследует тестирование?

❓ Можно ли начать тестирование, если разработчик еще не сделал фичу?