Авторский канал тестировщика, который ушел в сферу IT с образованием журналиста. Только откровенные заметки про работу в российской и американской компаниях.
👉🏼 Разница между позитивным и негативным тестированием
🐞 Позитивное тестирование должно проверить, что приложение нормально работает в нормальных условиях. Негативное — в ненормальных 🐞
Заметки тестировщика
👉🏼Далее потенциальные ситуации, когда случаются (могут случиться) ошибки и краши:
📍Сбор данных из обязательных полей
Есть много софта и веб-страниц, в которых самой важной частью являются поля ввода, заполняемые пользователем. При негативном тестировании пишутся тесты, оставляющие обязательные поля пустыми.
📍Несоответствие между типом данных и типом поля
Большинство форм и диалогов способны получать данные в определенной форме; самые частые - это текст, число, дата и время. Пишется тест-кейс, в котором в поле вводятся данные другого типа и проверяется реакция приложения.
📍Допустимые границы и лимиты
В большинстве приложений в полях ввода принимаются только данные в заданном диапазоне или текст определенного формата. Пишутся тесты, в которых вводятся значения выше или ниже диапазона.
📍Разрешенное количество символов
Есть страницы и приложения, поля ввода в которых принимают лишь определенное количество символов. В негативном тесте вводится запрос с большим количеством символов.
📍Тестирование сессий
В некоторых браузерах для входа на некую страницу требуется ввести сначала логин пользователя. Пишется тест, пытающийся открыть страницу без логина.
📍Специфические данные
Существуют приложения и страницы с полями ввода, принимающими данные со специфическими ограничениями. Негативный тест проверяет некорректные данные вне этих ограничений.
Заметки тестировщика
🙇🏻♀️ Вопрос-ответ: что такое негативное тестирование?
Всем доброго выходного дня! Я рада, что до сих пор в бот @QaNoteBot от вас поступают вопросы) А если вы еще не задали - то самое время это исправить ☺️
Ну а пока закрываем один из теоретических вопросов про негативное тестирование.
Давайте вспомним еще раз, что тестирование в целом — это проверка, работает ли софт должным образом, соответствует ли необходимым требованиям, а также выдерживает ли он нестандартную нагрузку.
Негативное тестирование олицетворяет негативный подход к тестированию. Его можно назвать тестированием на сбой.
Его цель — найти негативные стороны приложения путем написания специфического тест-кейса; другими словами, все крутится вокруг того, как приложение реагирует на некорректные данные. И в таком подходе есть смысл, как будет видно далее.
👉🏼 Как это выглядит на практике
Далее приведены техники, применяемые при негативном тестировании.
📍Анализ граничных значений (Boundary Value Analysis - BVA)
Метод подразумевает написание тест-кейсов в стандартном для тестировщиков виде: проверка значений, выходящих за пределы, например, для поля со значениями от 1 до 100.
📍Разделения по классам эквивалентности (Equivalence Partitioning - EP)
Метод проверки функциональности путем группирования тестовых значений по нескольким “классам эквивалентности”.
📍Угадывание ошибок (Error Guessing - EG)
В ходе процедуры тестировщик задает специальные условия, выдающие сообщения об ошибке. Если возможно, тестировщик пытается идентифицировать и исправить проблему, не допуская падения приложения.
📍Чеклисты
Базовый, и все еще критически важный метод в QA, документирующий условия, в которых проводится тестирование. Обычно применяется в работе в команде.
📍Антипаттерны
Если есть паттерны дизайна, то могут быть и антипаттерны. Если паттерн — лучший способ решить проблему, то антипаттерн — решение, которое точно не работает. Антипаттерны — идеальный источник негативных тестов.
📍Исследовательское тестирование
Метод, повышающий скиллы тестировщика и его понимание приложения в процессе работы. Применяется параллельно с другими тестами. Делает «общую картину» приложения яснее — в каких условиях приложение работает, а в каких нет.
📍Небольшая автоматизация
Отлавливаются ошибки с памятью, грубые ошибки в коде и другие проблемы, неожиданно возникающие на проде. Несколько сотен или тысяч раз проводится прогонка, чтобы посмотреть, что происходит с приложением.
📍Фаззинг-тестирование
Техника тестирования ПО, часто автоматическая или полуавтоматическая, заключающаяся в передаче приложению на вход неправильных, неожиданных или случайных данных.
📍Тестирование перехода состояний
Техника поиска багов, построенная на концепции, что софт в момент времени должен пребывать в одном конкретном состоянии. Приложение должно быть в своем нормальном состоянии, пока не появится проблема.
Заметки тестировщика
Всем доброго четверга! Ведь четверг - это почти пятница 😄
У меня пока перерыв, а дальше тяжелый митинг..
Но все это неважно, просто отвлекитесь и посмотрите на этого милого котенка ❤️
Решение о проведении приемочного тестирования принимается, когда:
📍продукт достиг необходимого уровня качества
📍заказчик ознакомлен с Планом Приемочных Работ(Product Acceptance Plan) или иным документом, где описан набор действий, связанных с проведением приемочного тестирования, дата проведения, ответственные и т.д.
📍Фаза приемочного тестирования длится до тех пор, пока заказчик не выносит решение об отправлении приложения на доработку или выдаче приложения.
👉🏼 Прикрепляю шаблон плана приемо-сдаточных испытаний
Заметки тестировщика
🙇🏻♀️ Вопрос-ответ: что такое приемочное тестирование?
📝 Приемочное тестирование (Acceptance Testing)
- формальный процесс тестирования, который проверяет соответствие системы требованиям и проводится с целью:
🖍определения, удовлетворяет ли система приемочным критериям
🖍вынесения решения заказчиком или другим уполномоченным лицом о приемке системы в эксплуатацию. Выполняется заказчиком или пользователем системы.
Поиск дефектов не является целью.
- Эксплуатационное тестирование в фазе приемочного проверяет насколько система пригодна для внедрения в конкретном операционном окружении.
- Альфа-тестирование(часто используется как форма внутреннего приемочного тестирования перед проведением бета-тестирования) выполняется в стенах компании, которая разрабатывает программный продукт.
Бета-тестирование выполняется заказчиком или пользователем на его оборудовании.
Заметки тестировщика
PyCharm поддерживает разработку Python напрямую.
Просто откройте новый файл и пишите код. Запускайте и отлаживайте код Python непосредственно внутри PyCharm.
Плюс он поддерживает управление версиями и проектами.
Плюсы:Это де-факто среда IDE Python, с тонной поддержки в целом и поддержки сообщества. Редактирует, запускает и отлаживает Python из коробки.
Минусы:PyCharm может медленно грузиться, а настройки по умолчанию нуждаются в настройке для существующих проектов.
Заметки тестировщика
🗳 IDE и редакторы кода. PyCharm
👉🏼 Что такое IDE и редакторы кода?
IDE (или интегрированная среда разработки) — программа, предназначенная для разработки программного обеспечения. Как следует из названия, IDE включает в себя инструменты, специально предназначенные для разработки программного обеспечения.
Стандартно инструменты содержат :
- Редактор, предназначенный для обработки кода (например, с подсветкой синтаксиса и автозавершением).
- Средства сборки, выполнения и отладки.
- Систему контроля версий.
- Большинство IDE поддерживают множество языков программирования и содержат другие дополнительные функции. Поэтому они требуют много времени для загрузки и установки.
👉🏼Требования к среде разработки на Python
Итак, что нужно знать о среде программирования. Списки функций варьируются от приложения к приложению, но есть основной набор функций, который упрощает разработку:
▫️Сохранять и перезагружать файлы
IDE или редактор позволят сохранить работу и открыть ее позже, в том же состоянии, в котором она была до закрытия.
▫️Запустить код в среде программирования
С помощью IDE запустить код Python, будет не сложнее, чем из простого текстового редактора.
▫️Поддержка отладки
Возможность проверить код во время перед запуском — особенностью всех IDE и прочих редакторов кода.
▫️Подсветка синтаксиса
Определение ключевых слов, переменных и символов в коде делает чтение и понимание кода намного проще.
▫️Автоматическое форматирование кода
Любой редактор или IDE будет распознавать двоеточие в конце for или while.
Есть много других функций: управление исходным кодом, модель расширения, инструменты сборки и тестирования, помощь с синтаксисом языка и другие. Но приведенный выше список — основные функции, которые поддерживает хорошая среда редактирования.
👉🏼JetBrains PyCharm — это интегрированная среда разработки (IDE), используемая для написания программ на Python. В ней есть инструменты для анализа кода, графический отладчик, встроенное модульное тестирование и поддержка веб-разработки с Django.
👉🏼 Для установки PyCharm сперва нужно установить интерпретатор Python
Заметки тестировщика
📉 Вопрос-ответ: на какую зарплату может рассчитывать ручной тестировщик?
Поговорим о з/п по порядку. Цифры, разумеется, не могу брать с потолка, а потому привожу статистику из нескольких источников. Вы можете быть с ней согласны или не согласны, но цифры остаются цифрами.
Даже самой стало интересно на какую з/п сейчас можно рассчитывать 😄
Еще давайте брать в расчет то, что выборка всегда условная. Т.к. в вакансиях "Тестировщик" могут не уточнять, ручной это или нет (а прописывать в требованиях). И точных данных вы нигде не найдете. В аналитике обычно обобщают мануальщиков и автотестеров, не говоря уж о солянке из регионов. Мы даже не знаем наверняка, учитывали ли тех же trainee.
Для своего расчета "стоимости" ручного тестера пользуюсь такой формулой: средняя з/п - 20-30% = з/п ручного по рынку.
Формула грубая, но я всегда исхожу из наихудшего.
И после всех этих "но" смотрим, что имеем:
👉🏼 На что можно рассчитывать опытным специалистам?
SuperJob поделились, что QA-инженеры в 2022 стали получать на 20-25% больше (до 300 тыс р..) в зависимости от региона и работодателя. Ну-ка делитесь мыслями, где в России можно столько получать, не работая на зарубежье? 😑
Но рост зарплат затронул только опытных тестировщиков.
Например, московские Тестировщики получают в среднем 150 тыс руб. в месяц. В Санкт-Петербурге средняя зарплата составляет 125 тыс руб. в месяц. Города-аутсайдеры в этом плане – это Волгоград и Уфа, где тестеры могут рассчитывать в среднем на 105 тыс. руб. каждый месяц.
В другой аналитике уточняют, что миддл или сеньор с опытом от 3 лет получает от 130 000 до 180 000 руб.
👉🏼 Что с начинающими тестировщиками?
Джуниорможет рассчитыватьна заработную плату от 20 000 до 70 000 рублей.
В большей части объявлений указан оклад от 48 000 руб.
За последний год показатель менялся: минимум был в мае 2022 г. – около 45 700 руб., максимум в октябре прошлого года – более 60 000 руб.
🔎 Для справки:
В январе 2021 года я писала о джунах (аналитика QA_PRO|Тестирование). Курс $ отличался.
👉🏼 З/п джунов на тот момент:
⚡️Средняя зп: 34 265 ~ 450$
⚡️Диапазон: 350-550$
Июль 2022, свежая статистика от QA Studio:
⚡️Средняя зп QA без опыта: 52 500
Как по мне, тенденцию роста зп можно проследить. Но инфляция, "раздувание ИТ пузыря" и общая ситуация в мире не дают нам понять, что вообще рост есть. Ваше мнение?
Заметки тестировщика
Ребята, всем привет 🙇🏻♀️
Вы часто спрашиваете, нужен ли английский для работы тестировщиком 🤔
Да, если вы хотите устроиться в хорошую компанию, да и в целом стремительно продвигаться вверх по карьерной лестнице. Так сейчас работает индустрия.
А с чего можно начать изучение, если совершенно не знаешь английского? Вокруг столько курсов и марафонов, что можно потеряться.
👉🏼И я нашла для вас проверенный базовый курс английского EngLove.
📌Вы сможете преодолеть языковой барьер, так как будете общаться с носителем языка. А это даёт огромное преимущество среди других кандидатов.
📌Вы гарантированно будете знать базу грамматики и лексики английского языка, которая поможет вам развиваться дальше.
От себя добавлю, что рекомендую этот курс из-за его подхода: нет обучения на потоке, каждому ученику даётся обратная связь. А через 3 месяца сможете уверенно заговорить на английском 💪
❇️ Для кого этот курс?
📌 для тех, кому фраза “I very good speak English” кажется правильной
📌 для тех, кто вообще не изучал английский или изучал в школе/на курсах/в университете, но ничего не помнит
📌 для тех, кто хочет преуспеть в карьерном плане
❇️ Что потребуется от вас:
📌 В течение 3 месяцев стабильно заниматься английским 60 минут в день.
📌 раз в неделю на выходных заниматься 60 минут устно в мини-группе с преподавателем и носителем языка.
🚀 Старт 3-го потока - 12 сентября.
Много писать не буду, могу лишь подчеркнуть, что<b> ENGLOVE станет вашим незаменимым помощником в начале изучения 👍🏼
Подписывайтесь на телеграмм-канал курсаEngLove 😉
Теперь посмотрим, что из себя представляет протокол SSH
⚜️ SSH или Secure Shell (безопасная оболочка) — это один из сетевых протоколов безопасного обмена данными, как вы уже могли понять. С его помощью можно подключаться к удаленному серверу по зашифрованному каналу.
В 1995 году была разработана первая версия протокола. В то время подключение было возможно только по Telnet или FTP — протоколам, которые не обеспечивали безопасное соединение. Несмотря на это, протокол так и не получил полное доверие пользователей из-за наличия технических уязвимостей. Во второй версии протокола SSH были учтены все ошибки предшественника. В 2006 году её признали стандартом.
В первую очередь протокол SSH предназначен для безопасного соединения. Помимо этого он позволяет:
♾ обмениваться данными (файлами, базами данных, таблицами),
♾ запускать программы в удаленном режиме,
♾ делать переадресацию портов,
♾ передавать зашифрованный трафик между портами.
⚜️ Как работает протокол
Установить безопасное SSH-соединение возможно только в том случае, если в процессе участвуют две системы — клиент и сервер.
SSH-клиент — это локальное устройство, с которого пользователь осуществляет удаленное управление. SSH-сервер — это удаленная машина, которой управляют. Управление машиной происходит с помощью различных команд. Их передает командный интерпретатор (shell).
Важно понимать, что к серверу можно подключиться только, если на нём установлено специальное ПО — daemon. Без него пользователь не получит доступ к серверу, а также не сможет использовать защищенные SSH-порты при обмене данными. Это условие касается и устройства пользователя — на нём должна быть запущена специальная программа-клиент. Например, на операционных системах по типу Linux по-умолчанию установлена программа OpenSSH. А пользователи ОС Windows чаще всего используют программную утилиту Putty. Такое безопасное взаимодействие клиента и сервера называется SSH-сессией.
➡️ Итак, мы поняли, какие нужны компоненты, чтобы запустить сессию. Теперь разберемся, из каких этапов состоит SSH-подключение.
1 этап: Соединение по TCP.
TCP — один из базовых протоколов передачи данных, без которого невозможно установить ни одно безопасное соединение. Благодаря его работе возможно подключение пользователя к серверу не только на техническом, но и на сетевом уровне. При подключении по TCP клиент соединяется с защищенным TCP-портом. Как правило, это порт 22.
2 этап: Настройка защищенного канала.
На этом этапе сервер и клиент договариваются о том, по каким правилам будут взаимодействовать: проверяют совместимость, обмениваются идентификационными данными и выбирают алгоритмы работы. Затем они договариваются об основном сеансовом ключе, который будут использовать для всех операций конкретной сессии. После окончания сессии этот ключ уничтожается.
3 этап: Аутентификация.
После того как всё настроено для безопасного удаленного управления, сервер проверяет ключ пользователя. У него есть список, в котором указано, какие ключи можно допускать к соединению, а какие нет. Клиент посылает свой ключ, и сервер проверяет его достоверность. Если ключ совпадает с одним из ключей из списка — аутентификация проходит успешно. Таким образом пользователь получает по SSH доступ к серверу. После этого он может приступить к безопасному управлению.
Заметки тестировщика
🔑 Для чего нужен SSH-ключ и как его создать под Windows
Давайте потихоньку возвращаться к основной теме автоматизации.
Как и было обещано, начинаем раскрывать понятия из моего поста об автотесте.
Начнем с SSH-ключа.
🟠 SSH-ключ — это специальный код, который позволяет удалённому компьютеру понять кто вы есть и какими правами на этом компьютере обладаете.
Протокол SSH нужен в первую очередь для того, чтобы создавать безопасный канал связи с удалённым компьютером, позволяя им управлять, но также может использоваться и для других целей, например, передачи файлов.
🔹Если по-простому, то он разделён на 2 части. Одна часть называется приватной и должна всегда храниться только на вашем компьютере.
🔸Вторая часть ключа называется публичной и ее нужно копировать на другие компьютеры. При подключении к удалённому компьютеру, он сравнивает публичную часть, которую вы ему дали, с приватной частью, которая хранится у вас. Если части ключа совпадают, то вы получаете доступ к удалённому компьютеру (на самом деле всё гораздо сложнее, но принцип работы именно такой). На вашем компьютере может быть создано сколько угодно SSH-ключей. То есть вы можете использовать один SSH-ключ для доступа к сотне компьютеров или для каждого удалённого компьютера создавать отдельный ключ.
🔺 Защита SSH ключа
Вы никогда и ни при каких обстоятельствах не должны никому передавать приватную часть своего ключа. Чтобы эту приватную часть нельзя было украсть, можно её зашифровать, тогда даже если она попадёт в чужие руки - её не смогут использовать. Если вы зашифруете приватную часть SSH-ключа, то каждый раз при его использовании вам нужно будет вводить ключ шифрования, называемый passphrase. Есть общее правило безопасности: если ключ используется не скриптом, а человеком, то он должен быть зашифрован.
Дополнительно:
1. Генерация открытого SSH ключа
2. Создание SSH под Windows
3. Как создать и разместить на сервере SSH-ключи
Заметки тестировщика
🙇🏻♀️ Вопрос-ответ: можно пожалуйста поподробнее раскрыть прямые обязанности на первое время работы ручного тестировщика(джуна)
Как вообще обычно проходит день в такой роли и тд)
Заранее спасибо😊
Я как-то уже писала какими скиллами и качествами должен обладать тестировщик. А теперь взглянем на то, чем именно он занимается после трудоустройства.
Оговорюсь сразу, что все описанное сильно усреднено. Поскольку в каждой компании, естественно, свои задачи и распорядок. Но общие моменты выделить можно.
🔍 Как правило, новенькому прежде всего устраивают онбординг (англ. onboarding — «введение, вхождение»). Для тех, кто не знает - это такой процесс погружения сотрудника в новый проект, знакомство с самим продуктом и его пользователями. И, конечно же, с компанией и коллективом. Т.е. полное погружение в среду.
🔍 Исходя из обязанностей на текущем проекте, тестировщик может заниматься разными проверками. В одном месте тестируют, например, десктопное приложение с использованием одних инструментов, а в другом месте тестируют веб и мобильную платформы уже с помощью других инструментов.
Но! Типичная последовательность работы мануального тестера выглядит примерно так:
📌 Изучить спецификацию продукта (ПО)
📌 Ознакомиться с существующими методами проверки или создать новые (если старые методы устарели или отдел тестирования только появился)
📌 Провести проверку продукта
📌 Сделать выводы по итогам проверки
📌 Перечислить найденные уязвимости и недочеты продукта в техническом документе (чаще всего на английском языке)
📌 Проконтролировать исправление найденных недочетов
+ ко всему добавим ежедневные митинги/созвоны/митапы/дейлики (как их только не называют). К слову,у нас дейлики проходят занимательно 😅👍🏻
🔍 Если говорить о конкретном примере как проходит день у тестировщика, с раскрытием внутренностей продукта и используемых инструментов... то это практически невозможно.
Уверена, что многие блогеры делились бы такой информацией, но NDA никого не щадит. И только на первый взгляд кажется, что ничего такого в этом нет. На самом деле последствия могут быть серьезными.
Собственно, чтобы не привлекать к себе лишний раз внимание я и не раскрываю своего ФИО и места работы. Только таким образом я могу честно рассказать вам о том, что происходит. И обезопасить себя.
Напомню, что я готовлю материал в продолжение темы о<b> своей первой работе, в котором постараюсь максимально наглядно показать изнанку профессии 🙃
Задать свой вопрос: @QaNoteBotЗаметки тестировщика