📚 ProTestingInfo 🔷 Канал по тестированию 📚 – Telegram
📚 ProTestingInfo 🔷 Канал по тестированию 📚
14.1K subscribers
1.31K photos
200 videos
232 files
1.18K links
📌Информация для начинающих и для коллег в области QA, для личного закрепления знаний.
📌Теория, тесты, практика
Ментор-Консультация - 5тр/час
Курс
@info_course_protestinginfo
https://protestinginfo.ru
Вопросы @nadin_qa
ИП
РКН: https://clck.ru/3FWD9v
Download Telegram
Я сама кстати до сих пор не могу определиться куда глубже развиваться, на работе я занимаюсь тест-менеджментом по ручному тестированию среди бизнес-команд (вертикальное развитие), на прошлых проектах занималась автоматизацией на Java (горизонтальное развитие) и тестированием требований и архитектурой сервисов. Сейчас в декрете изучаю автоматизацию на Python.


А вам как хочется развиваться вертикально или горизонтально? Или также на перепутье как и я 😄?
Please open Telegram to view this post
VIEW IN TELEGRAM
🤔13👍6👨‍💻53💯3
Как тестировать SQL-функции и как в будущем это автоматизировать?

Такой вопрос мне переадресовала Надя.

Я работал в финтехе на легаси-проекте, где вся логика была построена на хранимых процедурах. Самый большой минус в том, что тестирование на этом уровне не развито в отрасли и представляет довольно часто ряд костылей, одним из которых я поделюсь. Я пробовал писать тесты прямо на синтаксисе SQL, где результаты просто выводились обычными принтами True или False (прошел/не прошел). Это было интересно, но помогало только решению конкретной задачи, и данный подход был нерасширяемым.

Ну ладно, хватит слов, давайте расскажу свой костыль. На мой взгляд, удобнее всего это сделать на Python, на примере MS SQL Server.

Погнали!
С помощью pyodbc сначала я пишу простой клиент, который будет логгировать каждый запрос и преобразовывать его в список словарей для удобства работы с данными по колонкам.

import pyodbc
import os
import structlog

class BaseClient:
def __init__(self, server, database, user, password, autocommit=False, logging_level=logging.DEBUG):
self.log = structlog.get_logger(self.__class__.__name__).bind(service='db')
system_name = os.name
if system_name == 'posix':
driver = 'ODBC Driver 17 for SQL Server'
else:
driver = 'SQL Server'

connection_string = f'DRIVER={{{driver}}};' \
f'SERVER={server};' \
f'DATABASE={database};' \
f'UID={user};' \
f'PWD={password};'\
f'Trusted_Connection={trusted_connection}'

with pyodbc.connect(connection_string, autocommit=self.autocommit, timeout=30) as connect:
self.connect = connect
self.cursor = connect.cursor()

def logged_query(self, query):
log = self.log.bind(request_id=str(uuid.uuid4()))
print(f'\n{query}')
log.msg(
'request',
caller=inspect.stack()[1][3],
func_name=inspect.stack()[0][3]
)
result = self._to_dict(self.cursor.execute(query))
if result:
log.msg(
'response',
result=result,
)
return result

@staticmethod
def _to_dict(cursor):
try:
columns = [column[0] for column in cursor.denoscription]
except TypeError:
return []
else:
dataset = [dict(zip(columns, row)) for row in cursor.fetchall()]
return dataset

После того как базовый клиент написан, можно уже реализовать класс с вызовами хранимых процедур. Можно отнаследовать его от базового класса, чтобы использовать его методы и реализовать вызов.
class ApiTestProcedures(BaseClient):
def some_procedure_execute(self, param1, param2):
"""
SET NOCOUNT ON - это писать обязательно, иначе не будет работать))
"""
query = f"""
SET NOCOUNT ON;
EXEC [test].[SomeProcedure]
@Parameter1 = {param1}
,@Parameter2 = {param2}"""
postings = self.logged_query(query)
return postings

Вся подготовка сделана теперь можно писать тест, тут уже как обычно.
@pytest.fixture(scope="session")
def db_client():
client = ApiTestProcedures("тут параметры подключения")
yield client
client.close()


def test_some_procedure(db_client):
result = db_client.some_procedure_execute(param1=1, param2=2)
for row in result:
assert row["column_name"] == "column_value"


Вы можете использовать другие библиотеки для сериализации данных, например, SQLAlchemy или Pandas для удобства работы и анализа данных. Для этого нужно вместо метода _to_dict реализовать свои функции упаковки данных.

Пишите вопросы в тред, если возникнут интересные темы, постараюсь ответить в новом посте!
🔥10👍32👌1
Приветик всем и хорошего настроения.
🎊Сегодня у меня День рождения 🥳.🎉

Хочу вам сказать спасибо за то, что подписаны на мой канал, за вашу поддержку, за ваши реакции и комментарии!💝
Я продолжаю и буду делиться полезной информацией.

Огромное спасибо за доверие к моему курсу по закреплению знаний, а также к менторству - за этот год было очень много офферов! И я очень счастлива!
Я планирую также направлять, обучать и поддерживать людей.

Хочу вновь пожелать себе побольше сил, энергии и меньше усталости.

Коллеги, желаю
крепкого здоровья вам, достижения целей и развития!

Спасибо всем вам за то, что вы со мной. 🥰

🎉С днем рождения меня!🎊🎉

Для тех кто хочет сделать мне подарочек - ссылка или карта 2202202297499497

Желаю всем отличного настроения! Обнимаю каждого и каждую 🥰
Please open Telegram to view this post
VIEW IN TELEGRAM
🎉19029🔥12👍3🦄3🤣2
Напоминаю про 2 модуль - бесплатно!!!! Добавила новый тест как контрольную работу - 11 вопросов! Важно пройти, так как актуально на рынке!

На время - 20 минут, 10 попыток, хотя было меньше и времени, и попыток 😅 как на собесе - 1 попытка и 15 минут.

Есть рандомизация вопросов! И рандомизация вариантов ответов!

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

Нажать Участвовать, затем пройти Регистрацию/Авторизацию и обновить страницу или перейти снова по ссылке

Старт курс с середины августа - оповещения здесь.
👍851🎃1
25 вопросов о тестировании API.pdf
493 KB
Гайд для собеседований (Автор - Alex Meshkov).
Здесь указаны ответы на 25 основных вопросов по тестированию API.

Размещено на канале @protestinginfo
61👍16👌2
📚 ProTestingInfo 🔷 Канал по тестированию 📚 pinned «Пост обновлен - то, что я изучала по автоматизации и мои рекомендации. Сперва проверь подписку на канал @protestinginfo. Спасибо💙 Хочу порекомендовать прочитать и сохранить: Чек-лист перехода в автоматизацию (есть полезные ссылки) Как подготовиться по Java…»
Forwarded from Та. Данкова (Tatiana Dankova)
👩‍💻Минимум знаний для тестировщиков!
Часть 1.

Когда-то я проводила опрос о том, какой контент вам интересен. Второе место заняла тема "QA и тестирование". И пока у меня есть время, я решила собрать и рассказать про минимум, который должен знать каждый. Будет несколько постов, поэтому напоминаю, что по #проQA можно будет это всё найти.

Для самых пытливых в конце оставлю ссылки для глубокого изучения, а пока...

Начнем с ОСНОВ — теория тестирования:

Так уж сложилось, что я люблю базу и искренне считаю, что каждый тестировщик должен понимать, что именно он делает. И да, я не буду расписывать, что есть что, а расскажу, ПОЧЕМУ это нужно и важно знать, даже если у тебя 100500 лет опыта в тестировании, в IT и вообще.

А ещё то, за что я выступаю, — ПРИМЕРЫ! Почему важно приводить примеры из вашего реального (или нереального) опыта? Потому что так вы показываете, что вы понимаете, о чём речь. И если есть примеры, значит, есть и практика.

📍Виды тестирования

Классификация — обязательно. Если мы хотим быть действительно классным специалистом (а мы хотим), то самое важное — это содействие команде. Понимая про виды тестирования, вы сможете повышать уровень взаимодействия между членами команды.

📍Уровни тестирования

Да, та самая пирамида и почему именно так. Пирамида — это база. Но опять-таки, для расширения познаний можно почитать про кубок и песочные часы (подумать, проанализировать в эту сторону).

📍Артефакты тестирования

Мне очень нравится этот термин, как будто мы с вами в приключении, где у нас тест-кейсы, чек-листы, багрепорты, и мы их все собрали в наш рюкзак тестировщика.

📍Создание этих артефактов

Здесь у меня один простой совет: берём и выстраиваем себе тренировки (написать 10 тест-кейсов, 10 чек-листов и 10 багов), а потом можно кинуть какому-нибудь приятелю(или самому пройтись по ним через недельку), чтобы он сказал, ок или не ок. Несмотря на то что это всё кажется очень простым занятием, ох, как иногда грешат тестировщики хорошим оформлением.

За ориентир можно держать понимание, что вам НУЖНО ДОНЕСТИ ИНФОРМАЦИЮ о том, в каком состоянии находится задача/продукт.

А ещё тут есть острый подводный камень — приоритет и критичность. Я бы на это сделала отдельный упор.

📍Тестирование документации

Тоже очень скользкая тема, и многие её не любят, но это очень важно — понимать, как работает продукт, находить противоречия, недостающие моменты и задавать вопросы. Правильные вопросы, осмысленные.

Это ПЕРВЫЙ минимум, который необходим. Не думайте, что это мало — всё это нужно опробовать на практике и переходить к следующему шагу.

Для пытливых

Святослав Куликов — если не читали, читайте!

И вот ТУТ его бесплатный курс.

И вот ТУТ много полезного для обучения и понимания.

И Артем Русов

#проQA
👍36🔥121
Что из следующих выражений является комментарием в SQL?
Anonymous Quiz
30%
// комментарий //
22%
# комментарий
3%
& комментарий
45%
/* комментарий */
👍103😁2
Какой компонент технологии клиент-сервер производит обработку информации независимо от сервера и использует последний в основном лишь для хранения данных?
Anonymous Quiz
60%
Толстый клиент
21%
Тонкий клиент
10%
Клиент
9%
Сервер
👍92🔥1
С помощью какого ключевого слова можно задать условия фильтрации после выполнения группировки в SQL?
Anonymous Quiz
26%
WHERE
9%
FILTER
26%
GROUP BY
39%
HAVING
👍14🔥4🆒31
На курсе одним из первых вебинаров был вебинар про тестирование API с использованием Postman.

И этот вебинар я добавила в бесплатный модуль 2, а потом на YouTube.

2 модуль доступен до 25 августа.
Успейте посмотреть. Нажать на кнопку «Участвовать».

15 августа - старт нового потока, просмотреть тарифы.

А еще немного изменился дизайн курса, но это ненадолго - пока на три месяца.
🙏31🔥1
Чем отличается тестирование Бэкенда от тестирования API?

Cперва ответим на вопрос: «Что входит в тестирование бэкенда?»
От вас (из нельзяграма) пришли следующие ответы, а я допишу детальнее, в тестирование Бэкенда входят:
🎈Тестирование базы данных, а именно проверка правильности и целостности структуры базы данных, проверка корректности операций CRUD (Create, Read, Update, Delete), проверка обеспечения целостности данных при проведении транзакций.

🎈Тестирование логики приложения, серверной части. Подробно: бизнес-логика: проверка правильности выполнения правил, валидация данных, транзакции, интеграции, проверка выполнения пользовательских сценариев.

🎈Само тестирование API входит в тестирование бэкенда: проверка статус кода, тело запроса и ответ от сервера, время отклика, притом…

🎈Время отклика это один из основных ключевых показателей тестирования производительности.
Тестирование производительности бэкенда включает в себя проверку, как система справляется с нагрузкой. Оно оценивает скорость, масштабируемость и устойчивость серверной части приложения.

🎈Тестирование очередей и асинхронных задач: проверка корректности выполнения задач в очередях и асинхронных процессов.

🎈сюда можно добавить тестирование безопасности.


Отличия:
Тестирование API, цель которого убедиться, что API корректно обрабатывает запросы и возвращает ожидаемые ответы. Тестирование API входит в тестирование бэкенда.

Тестирование бэкенда, цель которого убелиться в правильности работы всей серверной части приложения, включает в себя тестирование всех аспектов серверной логики, также архитектура сервиса.

Добавляйте свои комментарии по этому вопросу.

@protestinginfo
Please open Telegram to view this post
VIEW IN TELEGRAM
1🔥41👍138
Открыты продажи на курс по тестам и по подготовке на собеседования! Ураа!!!

Тесты для проверки знаний по тестированию ПО
Данная проверка необходима для повторения изученного материала и для подготовки на собеседования на позицию "Инженера по тестированию ПО".

Сайт курса по тестам и по подготовке на собес с вебинарами: посмотреть

Продажи c 15 августа до 23 августа июля 2024г.

Есть Промокод на 10% PROMO10 до 20 августа 2024г.


Есть два тарифа с практикой и без практики.
Просмотреть по ссылке Тарифы:

Выбрать тариф!

По всем вопросам вы можете написать в телеграм @nadin_qa.
Есть рассрочка, оплата частями для РФ и оплата из разных стран.

ВАЖНО для прошлых потоков: если необходимо продлить доступ, то для вас будет промокод в зависимости от выполненных заданий. Напишите @nadin_qa, указав адрес электронной почты.

После покупки обновите страницу с курсом в течении 3-5 минут.
При выполнении всех заданий будет выдан сертификат (есть на английском и русском языках).

Основные темы для разбора в интерактивном формате:
• Основные понятия тестирования
• Классификация видов тестирования
• Тестовая документация
• Техники тест-дизайна
• Основы SQL-запросов
• Протоколы HTTP/HTTPS, + другие протоколы, cURL
• Тестирование API
• REST, SOAP, JSON, XML
• DevTools
• Postman (создание коллекций, параметризация, сниппеты)
• Git в рамках тестирования
+ Вебинары в записи про собеседование, тестирование API, логирование, тестовая модель, техники тест-дизайна.
+ Живые вебинары раз в месяц.
+ Доступ к чату с автором курса.
+ Обратная связь по проверке заданий по практике в зависимости от тарифа.

+ НОВШЕСТВО: Проверка вашего готового резюме и рекомендации по улучшению

Читать программу курса и просмотреть тарифы

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

Все оповещения (вебинары, уроки) по курсу: https://news.1rj.ru/str/info_course_protestinginfo
16😭2👍1😁1👨‍💻1🆒1
📚 ProTestingInfo 🔷 Канал по тестированию 📚 pinned «Открыты продажи на курс по тестам и по подготовке на собеседования! Ураа!!! Тесты для проверки знаний по тестированию ПО Данная проверка необходима для повторения изученного материала и для подготовки на собеседования на позицию "Инженера по тестированию…»
Закрепление знаний — важный этап в процессе обучения и подготовки. Оно помогает лучше усвоить материал и уверенно применять его на практике. Особенно это актуально, когда речь идет о подготовке к собеседованиям.

Ко мне коллеги приходят с разными целями на курс:
- Кто-то планирует сменить работодателя и хочет чувствовать уверенность на собеседованиях, освежив знания и углубив понимание ключевых тем.
- Другие стремятся повторить пройденный материал, систематизировать уже имеющиеся знания и устранить пробелы перед важными собеседованиями.
- Есть те, кто хочет повысить грейд и укрепить свои позиции на рынке, особенно если последнее собеседование было более года назад и теория начала забываться.

Какая бы цель ни стояла перед вами, важно закреплять знания и готовиться заранее. Это не только поможет вам лучше проявить себя на собеседовании, но и сделает вас уверенным в своих силах.

Кому актуальна эта тема, завтра 18 августа на канале https://news.1rj.ru/str/info_course_protestinginfo в 16:00(MSK) в рамках курса по закреплению знаний и подготовке на собеседования буду проводить эфир на тему брейншторма по ситуационным вопросам.
Приходите.
Спасибо за идею моим ученикам-коллегам).
Благодаря
обратной связи добавляю то, что необходимо.
2112🔥4🙏1
Получила вопросы с собеседования от менти!

Моя менти недавно прошла собеседования, и я хотела поделиться с вами вопросами, которые ей задали! 📋💬 Это отличный способ подготовиться и понять, на что стоит обратить внимание.

Вот список вопросов, которые ей задали:

Первая компания:

🔹 HR-вопросы:

🎂 Какой у вас возраст?
💸 Какова ваша ожидаемая зарплата?

🔹 Технические вопросы:

🧪 Что такое тестирование?
📋 Какие основные принципы тестирования вы знаете?
🌍 Что означает "тестирование зависит от контекста"?
🐞 Как вы понимаете "эффект пестицида" в тестировании?
🔄 Когда и как нужно обновлять тест-кейсы?
📜 Что делает требования хорошими?
🤔 Как тестировать, если нет требований?
📝 Что такое тест-кейс и какие его атрибуты?
✔️ Как выглядит хороший тест-кейс?
🔄 Какие этапы включает жизненный цикл разработки ПО?
🔍 В чем разница между регрессионным и smoke тестированием?
🌐 Как работает клиент-серверная архитектура?
🔧 Какие функции DevTools вам полезны?
💡 Почему вы выбрали карьеру в тестировании?
Что вдохновляет вас в работе?
🥚🏢 Как бы вы решили задачу с 100 этажами и 2 яйцами?
🧹 Как протестировать робот-пылесос?


Вторая компания:

🔹 HR-вопросы:

🚬 Что такое smoke тестирование?
🕵️‍♀️ Что такое ad-hoc тестирование?
🔄 Чем микросервисы отличаются от монолита?
📊 Какие SQL-запросы вы писали?
🎓 Как вы пришли в тестирование?

🔹 Технические вопросы:

🚨 Релиз через 2 дня, и вы находите критичный баг. Что будете делать?
🔄 Аватар загружается, но исчезает после перезагрузки страницы. В чем может быть причина?
Вы вводите правильный логин и неправильный пароль. Какой ответ сервера?
🌐 Какие HTTP-методы вы знаете и для чего они используются?
🔐 Какой метод лучше использовать для передачи логина и пароля и почему?
📩 Из чего состоит HTTP-запрос?
🏷 Для чего нужны заголовки в HTTP-запросах?
🔁 Что такое идемпотентные и неидемпотентные методы?
🗃 Как связываются таблицы в базе данных?
📚 Как вы пришли в тестирование и что делали на курсах с ментором?

Надеюсь, этот список окажется полезным для тех, кто готовится к собеседованиям в области тестирования. Если у вас есть вопросы или дополнительные советы, делитесь в комментариях! 👇😊

#собеседование

Два вопроса разберём на эфире в 16:00 на канале https://news.1rj.ru/str/info_course_protestinginfo.
4🔥325👍5👨‍💻1