Тебеньков Flashcards

1
Q

Что такое тестирование ПО

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

A

Проверка ПО на соответствие требованиям - явным или неявным

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
2
Q

Цель тестирования (зачем тестировать?)

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

A
  1. Проверка на соответствие требованиям
  2. Выявление ошибок в коде и требованиях
  3. Предоставление актуальной информации о состоянии продукта на данный момент.
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
3
Q

Какие проверки нужны при тестировании API?

A
  • Авторизация
    • Генерация токена
    • Доступ с токеном
    • Доступ без токена
    • Истечение токена
    • Отзыв токена
  • Бизнес требования позитивные и негативные
  • Технические требования позитивные и негативные
  • Доступные методы через OPTIONS - Header Allow
  • Время отклика (например 1000мс, когда в среднем запрос проходит за 100-300мс)
  1. Позитивные и негативные явные - при отправке соответствующих данных по документации получаем ожидаемый код
  2. Без тела
  3. Неверный метод (заменить get на post) - ошибка 405 method not allowed
  4. Обязательные поля (по 3 кейса на каждое поле):
    1. Тело может быть пустое
    2. Неверное значение
    3. Поле отсутствует
  5. Неправильные типы данных (на string отправить int)
  6. query параметры (если обязательный):
    1. Пустой
    2. Неверное значение
    3. Отсутствует
  7. Заголовки важные
    1. Нет заголовка
    2. Пустой заголовок
    3. Неверный заголовок
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
4
Q

Проверки авторизации при тестировании API

A
  • Авторизация
    • Генерация токена
    • Доступ с токеном
    • Доступ без токена
    • Истечение токена
    • Отзыв токена
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
5
Q

Нужно ли проверять все негативные сценарии для API? И если нужно, то когда?

На каждый метод может выходить по 30 проверок, а методов может быть 50 штук и это очень большой проект

A

В случае публичных API требуется проверка всех сценариев.
В случае внутренних API - такая тщательная проверка не требуется.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
6
Q

Можно ли отправлять тело с get запросом?

A

Можно, но это не принято для этого метода. Результат зависит от того, как бэк обработает

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
7
Q

Заголовок keep-alive

A

Заголовок Keep-Alive в HTTP используется для управления поведением соединений, которые поддерживаются активными (persistent connections) между клиентом и сервером. Он работает в паре с заголовком Connection: keep-alive и помогает избежать закрытия соединения после каждого запроса, что снижает нагрузку на сервер и улучшает производительность за счет повторного использования одного и того же соединения для нескольких запросов.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
8
Q

Если отправляя на запрос POST мы отправим GET и получим на 3-х независимых API ошибки 200, 400 и 500 - что делать?
И как они располагаются по критичности?

A

Ожидаем 405 - method not allowed.
Исследуем по логам сервера причины.

Критичность:
1. 200 - обработано успешно - очень плохо
2. 500 - обработало и упало в ошибку - плохо
3. 400 - отвергнуто - минорно

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
9
Q

Заголовок Content type

A

Информация о формате запроса

Например application json - мы говорим серверу, что отправляем json и он обрабатывает это как json
* xml
* plain text

Зависит как реализовано на бэке - он может всегда ожидать json

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
10
Q

Заголовок Accept

A

Какой формат ответа ожидаем

Т.е. если отправили json серверу, то и ожидаем json в ответ

Без этого заголовка может вернуть plain text

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
11
Q

Какие порты по умолчанию используют HTTP и HTTPS

A

80 и 443

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
12
Q

JSON

A

JavaScript Object Notation текстовый формат обмена данными (JavaScript Object Notation) — текстовый формат обмена данными, основанный на JavaScript

Формат: ключ-значение

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
13
Q

Что используется в качестве значений в JSON?

A

Сам JSON это объект и внутри него могут быть объекты (в фигурных скобках)

  • JSON-объект
  • Массив
  • Число (int, float)
  • Литералы True, False и null
  • Строка (string)
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
14
Q

Каким может быть корневой элемент в JSON?

A

Корневой элемент может быть объектом, а может быть массивом:
{} и [] - массив объектов

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
15
Q

JSON схема

A

Описание тела документа JSON

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
16
Q

XML

A

eXtensible Markup Language — расширяемый язык разметки. Используется для хранения и передачи данных.

17
Q

XSD

A

Язык описания структуры XML документа. Его также называют XML Schema.

18
Q

Что такое БД?

A

Базы данных (БД) — это структурированная информация, которая хранится в связанных электронных таблицах.

19
Q

Реляционная система управления базами данных (РСУБД)

A

Это означает, что это система управления данными, представленными в виде отношений (relation)

20
Q

SQL

A

Язык структурированных запросов (Structured Query Language), позволяющий хранить, манипулировать и извлекать данные из реляционных баз данных (далее — РБД, БД).

21
Q

Команды SQL

A

Стандартными командами для взаимодействия с РБД являются

  1. CREATE,
  2. SELECT,
  3. INSERT,
  4. UPDATE,
  5. DELETE
  6. DROP
22
Q

SQL инъекция

A

Вводятся SQL запросы в поля на сайте с рассчётом, что они выполнятся в базе

23
Q
A