Этот курс предназначен для обучения тестировщиков программированию на языке Java (для тех, кого интересуют другие языки, у нас есть аналогичные курсы для Python и C#).
Бытует мнение, что тестировщикам вредно уметь программировать. Якобы это умение мешает им потому, что из-за него они слишком много думают о реализации программы и слишком мало о том, как же её протестировать.
Определенный смысл в этом есть, возможно для кого-то умение программировать действительно служит отвлекающим фактором. Но если вы умеете бороться с искушениями, тогда этот навык может оказаться весьма полезным, потому что он даёт возможность переложить часть своей работы на компьютер.
Да, имеется в виду автоматизацию тестирования. Но под автоматизацией подразумевается не только написание скриптов, которые эмулируют взаимодействие пользователя с графическим интерфейсом программы. Помимо этих скриптов можно автоматизировать генерацию тестовых данных, проверку содержимого базы данных, развёртывание и настройку тестового окружения, проверку отсутствия сообщения об ошибках в лог-файлах, генерацию отчётов, и многое-многое другое.
Сложно ли научиться программировать? Вероятно, бывают люди, для которых алгоритмический стиль мышления абсолютно неприемлем. Но большинство айтишников по крайней мере на интуитивном уровне уже обладают алгоритмическим мышлением. Многие тест-дизайнеры пишут весьма подробные инструкции для ручного тестирования, это почти готовые программы, но предназначенные для "биороботов". Осталось сделать один небольшой шаг и научиться управлять настоящими роботами-компьютерами.
Разучитесь ли вы тестировать, научившись программировать? Вовсе нет, существующие навыки тестировщика от вас никуда не денутся. Но в дополнение к ним в ваших руках появится ещё один инструмент, и весьма мощный. Разумеется, владение навыками программирования не означает, что их нужно применять здесь и там без разбора, стремясь автоматизировать всё подряд. Силу нужно держать под контролем и применять её лишь там, где её применение обосновано. Для этого нужно хорошо овладеть силой, чтобы она подчинялась вам, чтобы это был привычный инструмент с понятными принципами работы, а не магический артефакт, управляемый загадочными заклинаниями.
Ну что ж, довольно слов, пора перейти к делу.
Как и всякий навык, умение программировать нужно тренировать и закреплять. Недостаточно просто прочитать книжку и выучить набор команд. Знать ещё не значит уметь. Поэтому тренинг "Программирование для тестировщиков" будет содержать как теоретические сессии, так и практические задания для самостоятельного выполнения.
Вы наверняка читали о том, что гарантированно найти все ошибки в сколь-нибудь сложной программе средствами тестирования невозможно. Равно как невозможно доказать, что ошибок в программе нет. Это в теории. А на практике некоторые тестировщики находят дефектов в программе больше, чем другие, в том числе они умеют находить весьма нетривиальные дефекты. Почему? Как им это удаётся? Что за секретные техники они применяют? Увы, никаких особых приёмов проектирования тестов, о которых не было бы написано в любой книжке, не существует. Эффективные тестировщики применяют те же самые техники, что и все остальные. Разница лишь в том, КАК они их применяют. На этом тренинге я не буду ничего говорить о том, как и в каком формате записывать тесты, я буду рассказывать только о том, как их придумывать. Мы постоянно будем держать в уме два противоборствующих фактора:
с одной стороны, тестов надо придумать достаточно много и они должны быть достаточно разнообразными, чтобы выявить как можно больше дефектов;
с другой стороны, тестов надо придумать как можно меньше, чтобы не делать лишней работы.
Компания занимается разработкой мобильных приложений. (есть свои проекты и проекты на заказ).
Обязанности: – Ручное тестирование мобильных приложений на платформах Android и iOS. – Функциональное, интеграционное, регрессионное, нагрузочное тестирование и т.д. – Регистрация обнаруженных дефектов в bug-tracking системе, отслеживание исправление дефектов и их повторное тестирование.
Требования: – Опыт тестирования мобильных приложений от года. – Понимание методологии тестирования ПО, процесса тестирования. – Умение писать понятные и работающие тест-кейсы и тест-планы. – Дотошность до деталей и умение создавать для приложений такие ситуации, о которых никто никогда не думал. – Умение поддерживать конструктивный диалог с другими членами команды. – Умение работать в Redmine или Jira. – Ответственный подход к задачам и исполнительность.
Условия: – Работа в 5 минутах от метро Тульская. – Участие в интересных и известных проектах. – Возможность карьерного роста и профессионального развития. – Вкусные фрукты и кофе-машина. – Гибкое начало рабочего дня. – Лояльное руководство и веселый коллектив.
Присылайте резюме и вопросы сюда vypikn@mail.ru Наталья
Подскажите, есть ли в природе задокументированый список требований для тестового стенда? Задался этим вопросом на работе - необходимо описать требования для тестовой среды, а с чего конкретно начать не знаю. В дальнейшем это войдет в проект по улучшению тестовой среды.
Как обычно - начинаешь пользоваться новым инструментом и наступаешь на грабли. Особенно это тяжело, ибо документация весьма минималистичная и примеров использования не так уж и много. Сейчас упёрся в такую проблему
Проходит ожидание типа
Selenide.Wait().withTimeout(10, TimeUnit.SECONDS).until(ExpectedConditions.textToBePresentInElementLocated(pageTitle, "My Page"));
Element: 'StaleElementReferenceException: {"errorMessage":"Element is no longer attached to the DOM",...
В чём разница я понять не могу. На мой взгляд это идентичные ожидания... Если я поставлю перед ожиданием waitUntil Selenide.sleep(5000), то всё проходит. Но вот этого я как раз таки хотел бы избежать. Вроде Селенид рекламировался как весьма умный в плане ожидания загрузки страницы и доступности элементов. :) Вопрос, наверное, прежде всего к Андрею.
В Группе компаний InfoWatch, которая объединяет ряд российских и зарубежных разработчиков программных продуктов и решений для обеспечения информационной безопасности организаций, противодействия внешним и внутренним угрозам, на конкурсной основе открыта вакансия "Старший инженер по нагрузочному тестированию".
Вы будете заниматься:
проведением нагрузочного тестирования, разработкой и написанием скриптов, утилит и т.п.;
анализом результатов проведенных испытаний;
контролированием тестовой среды в рамках проектов нагрузки;
выработкой методологии, построением стратегии развития в рамках отдела;
участием в оптимизации производительности продуктов Компании;
ревью продуктовой документации в разрезе анализа и обеспечения производительности продукта;
развитием экспертизы, ведением Best Practices.
Что мы ждем от Вас:
опыт нагрузочного тестирования систем корпоративного уровня не менее 2 лет;
отличное знание HP Load Runner;
знание операционных систем Linux на уровне продвинутого пользователя;
хорошее понимание кластеризации и распределения (масштабирования) нагрузки;
хорошее знание сетевых технологий, понимание протоколов TCP/IP, HTTP, SMTP, OSCAR; понимание работы и архитектуры сетевых приложений на прикладном уровне;
владение одним из перечисленных языков программирования – Python, Ruby, C/C++/C#, Java;
хорошее знание языка SQL, опыт оптимизации базы данных, запросов к базе данных;
хорошее знание принципов работы прокси серверов,знание серверного и сетевого оборудования;
технический английский.
Условия:
конкурентоспособная оплата труда;
полное соблюдение ТК РФ;
работа в сплоченной команде единомышленников;
самореализация;
ориентация на результат;
забота о здоровье: мини-спортзал в офисе, оплачиваемое питание, возможность оформления льготного ДМС, велопарковка;
уютный офис: зоны отдыха с настольным теннисом, аэрохоккеем и видеоиграми, чай-кофе-плюшки-печеньки в течение дня, снековые автоматы;
интересные события и активный отдых: регулярные фотовыставки, творческие конкурсы для сотрудников и их детей, корпоративные мероприятия;