⚛️Мутационное тестирование
Основная идея мутационного тестирования:
Пробуем изменить код и смотрим, проходят ли после этого тесты.
Обычно применяется к unit тестам.
Если тесты прошли, то:
1) данный код не покрыт тестами
или
2) в тестах не учтена данная область
Мутационное тестирование состоит в выборе мутирующих операторов и применения их одного за другим к каждому фрагменту исходного кода программы.
Результат одного применения мутационного оператора к программе называется мутантом.
Если набор тестов способен обнаружить изменение (то есть один из тестов не проходит), то мутант называется убитым.
Например, есть код на C++:
if (a & & b) {
c = 1;
} else {
c = 0;
}
Оператор мутации условий заменит & &(и) на || (или), и создаст следующий мутант:
if (a || b) {
c = 1;
} else {
c = 0;
}
Для того, чтобы тест мог убить этого мутанта, необходимо чтобы были выполнены следующие условия:
1️⃣Тест должен достигнуть (Reach) мутированного оператора.
2️⃣Входные данные теста должны привести к разным состояниям программы-мутанта и исходной программы. Например, тест с a = 1 и b = 0 приведет к этому.
3️⃣Значение переменной c должно повлиять на вывод программы и быть проверено тестом.
Данные условия вместе называются RIP моделью.
Слабое мутационное тестирование (или слабое мутационное покрытие) требует выполнение только первых двух условий.
Сильное мутационное тестирование требует выполнение всех трех условий и гарантирует что набор тестов в действительности может обнаружить изменение. Слабое мутационное тестирование тесно связано с методами покрытия кода.
#виды_тестирования
@testorest
Основная идея мутационного тестирования:
Пробуем изменить код и смотрим, проходят ли после этого тесты.
Обычно применяется к unit тестам.
Если тесты прошли, то:
1) данный код не покрыт тестами
или
2) в тестах не учтена данная область
Мутационное тестирование состоит в выборе мутирующих операторов и применения их одного за другим к каждому фрагменту исходного кода программы.
Результат одного применения мутационного оператора к программе называется мутантом.
Если набор тестов способен обнаружить изменение (то есть один из тестов не проходит), то мутант называется убитым.
Например, есть код на C++:
if (a & & b) {
c = 1;
} else {
c = 0;
}
Оператор мутации условий заменит & &(и) на || (или), и создаст следующий мутант:
if (a || b) {
c = 1;
} else {
c = 0;
}
Для того, чтобы тест мог убить этого мутанта, необходимо чтобы были выполнены следующие условия:
1️⃣Тест должен достигнуть (Reach) мутированного оператора.
2️⃣Входные данные теста должны привести к разным состояниям программы-мутанта и исходной программы. Например, тест с a = 1 и b = 0 приведет к этому.
3️⃣Значение переменной c должно повлиять на вывод программы и быть проверено тестом.
Данные условия вместе называются RIP моделью.
Слабое мутационное тестирование (или слабое мутационное покрытие) требует выполнение только первых двух условий.
Сильное мутационное тестирование требует выполнение всех трех условий и гарантирует что набор тестов в действительности может обнаружить изменение. Слабое мутационное тестирование тесно связано с методами покрытия кода.
#виды_тестирования
@testorest
👍4🔥1😱1
Так и хочется спросить: "Где живут все эти люди, у которых постоянно проблемы с интернетом? в 19 веке?🙃))
@testorest
@testorest
😁4🤣4
У вас часто бывают проблемы с подключением к интернету во время рабочего дня?
Anonymous Poll
13%
Да, часто
73%
Нет, очень редко
14%
Бывает, но быстро чинят
Сегодня, предлагаю просто насладиться этими картинками, с изображением мафиози в виде котов, сделанными с помощью нейросети Midjourney.
Город засыпает, просыпается мафия...
@testorest
Город засыпает, просыпается мафия...
@testorest
❤15
⚛️Стажировки для тестировщиков:
📌https://fintech.tinkoff.ru/start/
Можно и тем кто давно закончил вуз.
📌https://internship.vk.company/vacancy/525
Открыт набор. Начало с апреля 2023.
#стажировка
@testorest
📌https://fintech.tinkoff.ru/start/
Можно и тем кто давно закончил вуз.
📌https://internship.vk.company/vacancy/525
Открыт набор. Начало с апреля 2023.
#стажировка
@testorest
🔥6
-Все ли баги вы завели, перед уходом с работы, Ваша Светлость?
-Нет
-Тогда никакая вы не Светлость!
Не заставляйте разжаловать ваш титул!
P.S. Если бы в QA были титулы и вы пересмотрели
исторических сериалов😁
@testorest
-Нет
-Тогда никакая вы не Светлость!
Не заставляйте разжаловать ваш титул!
P.S. Если бы в QA были титулы и вы пересмотрели
исторических сериалов😁
@testorest
😁7❤1👍1
⚛️ Идентификация. Аутентификация. Авторизация.
Три кита, с которыми сталкиваемся при тестировании логина в приложение🤓
🔹Идентификация
Процедура, в результате которой выявляется идентификатор, однозначно определяющий субъекта(пользователя, например).
Идентификатор часто состоит из логина/пароля.
Например, идентификатор присваивается пользователю при первичной регистрации в системе.
🔹Аутентификация( authentication - реальный, подлинный)
Процедура проверки подлинности.
Вы ввели логин/пароль на форме входа в систему.
Сервер вас признает, т.е. убеждается, что действительно есть пользователь в базе данных с таким логином/паролем.
Иногда, после этого вам приходит смс с кодом.
Вы вводите его в появившееся поле.
Тогда это называется двухфакторной аутентификацией.
🔹Авторизация(authorization - разрешение, уполномочивание)
Предоставление определённому лицу или группе лиц прав на выполнение определённых действий в системе.
Вы зашли в систему и приложение дает вам доступ к функционалу, согласно правам вашего пользователя.
Это и есть Авторизация.
#авторизация #для_информации #аутентификация
@testorest
Три кита, с которыми сталкиваемся при тестировании логина в приложение🤓
🔹Идентификация
Процедура, в результате которой выявляется идентификатор, однозначно определяющий субъекта(пользователя, например).
Идентификатор часто состоит из логина/пароля.
Например, идентификатор присваивается пользователю при первичной регистрации в системе.
🔹Аутентификация( authentication - реальный, подлинный)
Процедура проверки подлинности.
Вы ввели логин/пароль на форме входа в систему.
Сервер вас признает, т.е. убеждается, что действительно есть пользователь в базе данных с таким логином/паролем.
Иногда, после этого вам приходит смс с кодом.
Вы вводите его в появившееся поле.
Тогда это называется двухфакторной аутентификацией.
🔹Авторизация(authorization - разрешение, уполномочивание)
Предоставление определённому лицу или группе лиц прав на выполнение определённых действий в системе.
Вы зашли в систему и приложение дает вам доступ к функционалу, согласно правам вашего пользователя.
Это и есть Авторизация.
#авторизация #для_информации #аутентификация
@testorest
❤6👍5
⚛️Ошибки связанные с аутентификацией:
403
Если пользователь аутентифицирован, но у него нет прав на функционал, к которому он запросил доступ.
https://http.cat/403
#аутентификация
@testorest
403
Если пользователь аутентифицирован, но у него нет прав на функционал, к которому он запросил доступ.
https://http.cat/403
#аутентификация
@testorest
❤8
⚛️Ошибки связанные с аутентификацией:
407
Если вы не аутентифицированы на прокси-сервере, который может стоять между клиентом и сервером.
#аутентификация
@testorest
407
Если вы не аутентифицированы на прокси-сервере, который может стоять между клиентом и сервером.
#аутентификация
@testorest
❤7
⚛️Ошибки связанные с аутентификацией:
511
Генерируется прокси-сервером, который контролируют доступ к сети. Возникает в местах публичного пользования, таких как кафе, гостиница, аэропорт.
Идентификация клиентов при этом выполняется по MAC-адресу устройства, с которого совершалась попытка выхода в сеть, по логину и паролю, выданному при регистрации в гостинице, номеру телефона или другим учетным данным.
#аутентификация
@testorest
511
Генерируется прокси-сервером, который контролируют доступ к сети. Возникает в местах публичного пользования, таких как кафе, гостиница, аэропорт.
Идентификация клиентов при этом выполняется по MAC-адресу устройства, с которого совершалась попытка выхода в сеть, по логину и паролю, выданному при регистрации в гостинице, номеру телефона или другим учетным данным.
#аутентификация
@testorest
❤7