Обновить
139.92

Тестирование веб-сервисов *

Семь раз оттесть, один раз деплой

Сначала показывать
Порог рейтинга

Тестирование документации: залог успешной разработки

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

Почему важно проверять документацию заранее?

Представьте, что вы собираетесь строить дом. У вас есть план, но если он неполный или в нём ошибки, вместо уютного дома может получиться что-то с одной стеной или без крыши. В программировании примерно так же: если требования, то есть документация, составлены плохо, программа может не работать или работать неправильно.

Проверка требований до начала разработки помогает находить проблемы раньше, чем они превратятся в баги. Чем раньше найдёшь ошибку, тем меньше потом придётся исправлять. Это называется "Shift-Left Testing", что по сути означает — тестировать раньше, чтобы потом не было больно.

Вот какие проблемы можно найти на этом этапе:

  • Противоречия в требованиях: например, в одном месте написано "сохранить данные", а в другом — "удалить данные". Так какой из них правильный?

  • Неоднозначные формулировки: когда написано так, что можно понять по-разному, и каждый разработчик это понимает по-своему.

  • Отсутствие важных условий: что-то важное просто забыли описать, и программа не знает, что с этим делать.

  • Ошибки в сценариях использования: не описаны крайние случаи, например, что делать, если пользователь ввёл неправильные данные.

Как можно тестировать требования?

Есть несколько способов проверить, что в документации нет ошибок:

  • Формальная проверка: использование строгих правил, чтобы убедиться, что всё написано правильно.

  • Чтение и обсуждение: собираемся, читаем вместе, обсуждаем и находим проблемы.

  • Моделирование: создаём простые схемы, чтобы понять, как всё должно работать.

  • Анализ текста с помощью ИИ: современные программы могут сами искать ошибки в тексте требований.

Что будет дальше?

Ниже можете видеть видео, где видно, как наш инструмент TestWriter проводит проверку документации с помощью ИИ. Это пока что прототип, но уже видно, как много ошибок можно найти ещё до начала разработки.

Полезные материалы по теме:

P.S.: а вот ссылка на мой блог в Telegram: https://t.me/it_vadimqa

Теги:
Всего голосов 1: ↑1 и ↓0+1
Комментарии2

Как начать практиковаться в тестировании без опыта

Если вы только что окончили курсы по тестированию, знаете теорию, но не имеете реальных кейсов — это нормально. Почти каждый начинающий QA-специалист сталкивается с вопросом: «Где набраться практики, если нет опыта?».

После тренировок в песочницах следующий шаг — попробовать себя в реальном проекте. Участие в open source — отличный способ получить настоящий опыт, поработать с командой и добавить первые кейсы в портфолио. Начать тестировать WordPress можно по простому и понятному алгоритму. Шаги для старта:

  1. Установите WordPress локально.
    Самый простой способ — приложение LocalWP. Также подойдут Docker или XAMPP.

  2. Разберитесь, как устроена работа.
    Загляните на make.wordpress.org — там есть разделы для разработчиков, дизайнеров, переводчиков и тестировщиков. Обратите внимание на Test Handbook — там подробно объясняется, как тестировать, искать баги и писать отчеты.

  3. Найдите первую задачу.
    В баг-трекере Trac ищите задачи с меткой good-first-bug — они идеально подходят для старта. Прочитайте описание, повторите шаги и проверьте, воспроизводится ли баг.

  4. Включайтесь в сообщество.
    Присоединяйтесь к чату #core-test в Slack (ссылка на подключение — в make.wordpress.org/test). Там обсуждают приоритетные задачи и проводят регулярные митинги. Новичкам всегда рады!

    Пример отчета в Make WordPress Core
    Пример отчета в Make WordPress Core

В статье, Юлия Ковшова, руководитель группы компонентного тестирования в YADRO, делится опытом, где найти первые реальные задачи без трудоустройства. Если вы только начинаете карьеру в тестировании и застряли на этапе теории, это руководство поможет сделать уверенный шаг к практике.

Теги:
Всего голосов 4: ↑4 и ↓0+4
Комментарии0

Как тестировать фронтенд?

Для меня уже нет вопроса - нужны ли тесты на фронтенде? Личный опыт подсказал, что нужны, как и согласованный цельный подход к архитектуре. Тому есть несколько причин:

  • Без unit-тестов и автоматических e2e-тестов ручное тестирование занимает много времени. К тому же человек, скорее всего, при регрессионном тестировании что-то пропустит, и баги попадут в production. Особенно это актуально для больших проектов с большой кодовой базой.

  • Без автоматических тестов страшно рефакторить код. А если нет выстроенной архитектуры с соблюдением low coupling/high cohesion, то этот страх вполне оправдан. А без регулярного пересмотра кода приложение рано или поздно превратится в большой комок грязи.

  • У unit-тестов есть интересный побочный эффект. Если пользоваться подходом TDD и писать тесты сразу вместе с кодом (и даже перед написанием кода), то качество модулей и архитектуры в целом повышается. Это происходит, потому что с позиции написания теста мы думаем не только о том, как нам побыстрее завершить работу над модулем, но и о том, как этот модуль будет выглядеть снаружи, удобно ли будет его использовать внутри других модулей, так как тест в этом случае служит ещё и образцом вызывающего модуля.

  • Тесты - это дополнительная документация к коду. Причём такую документацию не получится держать в неактуальном состоянии, иначе упавшие тесты не пропустят код в production при наличии настроенного шлюза проверки качества в CI/CD пайплайне.

Это всё прекрасно и, как показывает практика, работает, как ожидается, но остаются вопросы.

  • Как тестировать уровень представления приложения? Например, в случае с каким-нибудь фреймворком с использованием React это будут React-компоненты, виджеты, представляющие отдельные элементы пользовательского интерфейса. Тестировать там, по сути, нужно функцию. Передали ряд аргументов (пропсов или состояний) - получили одно представление. Передали другие аргументы - другое. Зависимость результата от набора аргументов - однозначная. Чтобы это проверить, можно использовать тесты со скриншотами. Я предпочитаю snapshot-тесты, они дают больше контроля, но работают довольно медленно и могут быть хрупкими, если недостаточно грамотно отделять слой представления от логики.

  • А что со временем написания кода вместе с тестами? Будем ли мы вовремя успевать сдавать новые модули и радовать наших пользователей и руководство? Я думаю, что это не совсем правильные вопросы. Спрашивать надо о том, сколько будут стоить ошибки, попавшие на production из-за отсутствия тестов? Если ваше приложение - landing page с минимумом логики, то вряд ли цена ошибки будет высока. В небольшой кодовой базе её будет легко локализовать и исправить. А если вы работаете с финансами и у вас миллионы пользователей? В этом случае цена ошибки на production будет намного выше.

  • Как донести необходимость тестов до команды и правильно включить автоматизацию тестирования в процесс разработки? Это на самом деле серьёзный вопрос. Не все разработчики понимают, зачем вообще тесты на фронтенде и обоснование их необходимости может вылиться в не слишком продуктивный холивар. А если продавливать такое решение сверху, то без понимания и принятия командой этого решения будут попытки обойти систему и снижение мотивации. Мне когда-то в подобной ситуации помогла практика парного программирования и выстраивание инженерной культуры в команде (совместное чтение технической литературы, архитектурные встречи с использованием white board).

А какие практики для тестирования применяете вы?

Теги:
Рейтинг0
Комментарии0

Тестировщики, общий сбор!

Мы часто видим исследования про разработчиков, продактов, аналитиков… А про QA? Почти ничего. Пора это исправить.   

Мы запускаем исследование сообщества QA, чтобы разобраться:

  • что нас радует и раздражает,

  • какие инструменты и практики мы выбираем,

  • как меняется наша роль и работа.   

Присоединяйтесь! Это важно и интересно 🔥

Пройти опрос → https://qa-25.testograf.ru

В анкете 45 вопросов, потребуется 15–20 минут времени. А среди всех участников разыграем оригинальный подарок. Доходи до конца и всё поймёшь:)

Теги:
Рейтинг0
Комментарии0
Эээ... есть вопрос...
Эээ... есть вопрос...

Друзья, ночи доброй.

Если позволите, вкратце о себе. Зовут меня Саней. Имею опыт в тестирование более 3-х лет. В послужном списке тестирования были desktop-приложения для операторов БПЛА, системы защиты информации, система кредитования физических лиц и многое другое.

В настоящий момент работаю в компании QA-специалистом и одновременно являюсь ментором для людей, решивших стать тестировщиками.

Имеется богатый опыт теории и практики в тестировании, а также есть желание поделиться с ним.

Пишу пост на Хабре впервые и хочу узнать, "стоит ли игра свеч" и будет ли кому-то это интересно. Буду раз в неделю выкладывать статью о профессии QA, делаю упор на практику, которая вам в последующем пригодится на работе. И не будем забывать о теории, чтобы успешно пройти интервью)))

Всем огромное спасибо!

Теги:
Всего голосов 8: ↑5 и ↓3+2
Комментарии0

Представлен проект Scroll Buddy — анимация на полосе прокрутки.

«Вместо скучной полосы прокрутки я подумал, что было бы забавно иметь анимированную фигурку, которая ходит вверх и вниз по краю страницы, когда вы прокручиваете. Это первый прототип, который я сделал. Собираюсь сделать скейтбордиста, скалолаза или белку следующим», — пояснил авто проекта.

Теги:
Всего голосов 2: ↑2 и ↓0+3
Комментарии2

Разница между масштабирование и зумом в CSS. Зум работает так же, как и масштабное преобразование, но в отличие от масштабирования, он влияет на макет страницы. Другими словами, макет страницы пересчитывается с учётом нового размера масштабируемого элемента.

Теги:
Рейтинг0
Комментарии0

На ресурсе SLUM опубликован сборник пиратских научных библиотек, которые дают доступ к статьям, исследованиям и диссертациям. Сайт показывает статусы каждой из актуальных ссылок на хранилища знаний. Если одна из них «умирает», то её статус поменяется, а ссылка обновится. Данные обновляются в режиме реального времени.

Теги:
Всего голосов 3: ↑3 и ↓0+6
Комментарии1

Как с помощью ИИ починить любой сломанный код и заставить его работать. Теперь не нужно писать нейронке «код не работает» по 20 раз и смотреть на её мучения — достаточно этого промпта:

“Reflect on 5–7 different possible source of the problem, distill those down to 1–2 most likely sources, and the add logs to validate your assumptions before we move onto the implementing the actual code fix”.

Промпт универсальный и работает в любой нейронке и ИИ-среде — от ChatGPT до Cursor.

Теги:
Всего голосов 4: ↑3 и ↓1+3
Комментарии5

В США нашли получателя пособий возрастом 360 лет и несколько миллионов американцев старше 120 лет, которые также сидят на госвыплатах. Такой список опубликовал Илон Маск. «Возможно, „Сумерки“ реальны, и здесь много вампиров, которые получают социальные пособия», — написал Маск.

Теги:
Всего голосов 2: ↑2 и ↓0+3
Комментарии4

Представлен проект капчи DOOM CAPTCHA, где нужно убить минимум трёх монстров на карте secret level E1M9 в режиме Nightmare. Стрейфиться нельзя, управление - стрелки вперёд. назад, вправо, влево, стрельба - пробел.

Теги:
Всего голосов 9: ↑9 и ↓0+13
Комментарии0

В 2010 году сайт Bitcoin Faucet раздавал по 5 биткоинов каждому посетителю, который пройдёт капчу. Если бы вы тогда потратили 5 минут своего времени и дважды прошли капчу, сейчас бы были долларовым миллионером. В общей сложности тогда сервис раздал 19 700 BTC или $1,97 млрд по текущему курсу.

5 декабря 2024 года курс биткоина впервые превысил $100 тыс. (более 10 млн рублей).

Теги:
Всего голосов 2: ↑2 и ↓0+2
Комментарии4

Ближайшие события

Как Telegram искажает ссылки с Habr

Отправил в телеграм ссылку на статью с habr, скопировав из адресной строки.

Выглядит как просто адрес статьи - habr/companies/.../articles/xxxxxxx

Но после создания предпросмотра в телеграм кроме ссылки появляется КДПВ, заголовок и начало текста статьи. Вроде всё правильно. Но только ссылка уже дополнительно после адреса содержит ?utm_source=vk_habr&utm_medium=social&utm_campaign=yyyyyyy

И при нажатии на ссылку предпросмотра пойдёт другая статистика - не прямая ссылка, а из рекламной кампании.

Как минимум - это сработало при пересылке статьи "Как устроен китайский завод электроники глазами русского инженера".

Я подумал, что такой адрес у КДПВ, но нет - вроде картинки все на habrastorage.

Или хабр отдаёт тегированные ссылки.

Жалко, нет хаба "Телеграм"

Теги:
Рейтинг0
Комментарии0

Отладка before-хуков в mocha

Недавно при создании приёмочных тестов для плагина столкнулся с необычной ситуацией. В before-хуке настраивалось окружение: записи в БД, моки зависимостей. В after-хуке происходила зачистка. Отдельно тест работал, но в группе начинал сбоить: оставались следы от предыдущих тестов.

При запуске под отладчиком it-секции пропускались и сразу выполнялись after-хуки. "Игорь Иваныч" (ИИ) объяснил, что mocha пропускает тесты, если в before-хуке есть ошибки. Использование try-catch и несколько часов отладки и рефакторинга убедили меня только в том, что ошибок нет, но it-блоки всё равно пропускаются.

Однако на следующий день при запуске всех тестов мой проблемный тест неожиданно заработал. Хотя при попытке отладки он опять начинал сбоить. Правильно заданный вопрос "Игорь Иванычу" привёл к получению правильной "таблетки":

before(async function () {
    this.timeout(60000); // 1 min
});

Всё. Это сняло проблему. В mocha по-умолчанию timeout для выполнения before-хука составляет 2 секунды. Ошибкой с точки зрения mocha было то, что разработчик (т.е. - я) тупил в отладчике больше 2 секунд и не оповестил её об этом в явном виде.

Это вполне себе логичное поведение фреймворка, о котором нужно просто знать. Теперь я знаю. Но если бы я знал об этом перед началом отладки, то я бы сэкономил несколько часов своей жизни.

Теги:
Рейтинг0
Комментарии0

Сайт, готовый ко всему — Никита Дубко / Ural Digital Weekend 2024

Опубликовали запись доклада секции «Разработка» с Ural Digital Weekend 2024.

Вспомните, где вы обычно тестируете свое веб-приложение. Скорее всего, у вас есть несколько вьюпортов, в которых вы быстро проверяете верстку и, возможно, пишете автотесты. И багов от пользователей почти нет — значит, все делаете правильно. Но как вашим сайтом пользуются на самом деле? Что нужно предусмотреть, чтобы сайт работал действительно почти везде?

В докладе вы найдете множество интересных примеров и отсылок. Заходите посмотреть!

Ссылка на запись доклада в ВКонтакте.

Ссылка на презентацию: https://goo.su/NRS

Теги:
Всего голосов 2: ↑2 и ↓0+2
Комментарии0

В ноябре стартует новая программа «Fullstack-тестировщик». Начинаем приём заявок!

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

Плюсы программы

➕ Материалы для самообучения доступны в любое время, практические занятия проходят с тренером в онлайн-формате.

➕ Программа разработана в 2024 году.

➕ Мы специализируемся на корпоративном обучении, точно знаем, что востребовано у бизнеса, и учим именно этому.

➕ Решение реальных задач, работа с тестовым стендом.

➕Диплом о профессиональной переподготовке гособразца.

Кому подойдет программа

🧑‍🎤 Junior QA. Научитесь основам тестирования и освоите автоматизацию.

🥷 Manual QA с опытом от года. Углубите знания и расширите компетенции в области автоматизации и работы с API.

👩‍🚒 Специалисту техподдержки. Разберетесь в процессах тестирования и автоматизации.

👉 Оставить заявку на обучение

Теги:
Всего голосов 2: ↑2 и ↓0+6
Комментарии0

Путь тестировщика: ошибки, опыт, деньги. Вышел новый Sravni Podcast!

В новом выпуске поговорили о сути QA, отношениях тестирования и разработки, неизбежности багов и ответственности за плохие релизы. Гость — Анна Серенькова, QA Mobile Lead Сравни.

В этом выпуске:

  • Что должен уметь тестировщик и сколько ему платят?

  • В чём разница тестирования в вебе и на мобильных устройствах?

  • Почему в ИТ важно доказывать свою ценность, и в чём здесь отличия для женщин и мужчин?

  • Право на какое количество ошибок есть у тестировщика, прежде чем его уволят?

Подкаст доступен по ссылкам:

YouTube
RUTUBE
VK
Яндекс.Музыка

Оперативно узнавать о наших новых подкастах, докладах, лекциях и других полезных ИТ-материалах, можно в тг-канале Sravni Tech.

Теги:
Всего голосов 11: ↑11 и ↓0+13
Комментарии0

Яндекс Практикум запустил расширенный курс «Автоматизатор тестирования на Python»

Базовый курс даёт всё необходимое, чтобы стать автоматизатором тестирования на Python, но мы пошли дальше и запустили расширенный курс. Мы добавили больше тем, больше проектов для портфолио, а также индивидуальные консультации. 

Что будет на расширенном курсе:

• Основы Python, объектно ориентированное программирование, юнит-тестирование, UI-тестирование, тестирование API, инфраструктура и архитектура, Selenide, базы данных;

• 7 учебных проектов;

• Вебинары для разбора сложных тем каждые 2 недели;

+ дополнительный модуль «Развёртывание, настройка и запуск тестов из CI/CD»;

+ дополнительный модуль «Создание образов и работа с ними в Docker»;

+ 3 дополнительных учебных проекта в портфолио;

+ 8 индивидуальных консультаций с опытными автоматизаторами на Python по темам курса, техническому собеседованию, настройке автотестов или по любому интересующему вопросу.

Расширенный курс длится 6 месяцев, нагрузка умеренная — учёбе нужно уделять ≈14 часов в неделю. 

Этот курс для специалистов с опытом. Вы должны уметь составлять чек-листы и тест-кейсы, применять техники тест-дизайна: классы эквивалентности и граничные значения, а также представлять, как работают веб- или мобильные приложения. Навыки программирования не нужны.

→ Узнать подробнее и начать учиться бесплатно

Теги:
Всего голосов 4: ↑3 и ↓1+4
Комментарии0

Как организовано нагрузочное тестирование на production в Авито

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

— требования по производительности к сценариям;
— запас производительности (стресс-тестирование).

Полный обзор процесса нагрузочного тестирования (регламент, проблемы, метрики, примеры реализации) — в новом выпуске avito.code с руководителем команды тестирования Игорем Стародубцевым.

А здесь вы можете узнать про эксперимент по написанию 5000 тестов и сборку генератора для тестирования: как мы к этому пришли и что это нам дало. 

Подписывайтесь на канал AvitoTech в Telegram, там мы рассказываем больше о профессиональном опыте наших инженеров, проектах и работе в Авито, а также анонсируем митапы и статьи.

Теги:
Всего голосов 13: ↑13 и ↓0+13
Комментарии0