Признаки неэффективного автотеста в порядке от наиболее терпимого изъяна к наиболее критичному. Это всего лишь срез, который завтра может быть другим.
Автотесты в общей структуре обеспечения качества, выбор теста на автоматизацию и критерии хорошего автотеста, портрет и карьера автоматизатора.
Perl-скрипт выполняет операции со снапшотами (создание, откат), а также старт виртуальных машин.
Аддоны к браузерам вряд ли пригодятся в автоматизации тестирования web-систем, но при ручном тестировании они могут оказаться полезны.
Перемены в автоматизации тестирования: от отрицания проблемы к решению задачи на примере перехода с Selenesse на FitWebDriver.
Обертки вокруг базовых методов Sikuli пригодятся для работы с изменяющимися элементами интерфейса, а ключ в реестре позволит Sikuli работать в свернутой RDP-сессии.
Альтернативный подход к распараллеливанию тестов на основе WebDriver. Тесты запускаются параллельно в рамках одного узла и одновременно на всех узлах.
Краткое изложение преимуществ паттерна Page Object, реализуемого с помощью библиотеки PageFactory из состава WebDriver, и механизмов работы с динамическими локаторами.
А что если в 0,1% случаев тест зависает и препятствует выполнению других тестов? Здесь не хочется “подталкивать” тест, особенно если это происходит ночью, но можно мониторить процессы и убивать их, если становится очевидно, что процесс завис.
У FitNesse есть плюсы и минусы. Их нужно учитывать. К примеру, создавать acceptance-тесты для user stories и в то же время уделять внимание более серьезным тестам. Несколько примеров того как можно интегрировать FitNesse-тесты в общую систему автотестов.
Sikuli представляет собой технологию для автоматизации действий в графическом интерфейсе. Пользователь готовит скриншоты элементов интерфейса и определяет операции, которые с этими элементами нужно выполнить.
Эффективность применения PowerShell в автоматизации тестирования графического интерфейса напрямую зависит от объекта тестирования.
Автотесты – это такой же программный код, как и приложение, которое они проверяют. Ошибки, приводящие к багам в продукте, в автотестах приводят к искажению результатов. Вот пример: “A” и “Б” сидели на трубе. “A” упало. Кто остался на трубе?
Подводные камни на пути автоматизации тестирования.
В AutoIt не хватает многих возможностей, которые присутствуют в специализированных инструментах. В то же время, AutoIt отлично подходит для автоматизации рутинных операций, и зачастую его функциональность может оказаться весьма полезной…
Грамотно написанные и отлаженные автотесты позволят оперативно провести регрессионное тестирование функциональности продукта, а у тестировщиков будет время на тестирование новой функциональности, на интуитивный, творческий анализ работы приложения – на тот анализ, на те баги, которые невозможно найти при автоматизированном тестировании, но исправление которых критически важно для качественной работы продукта.
В составе AutoIt есть отличные возможности для считывания конфигурации системы и передачи ее автотесту.
В целом, обращаясь к AutoItX из Python через COM, мы можем интегрировать богатые возможности Python (exceptions, OOP и т.п.) и функциональность AutoIt.
Рассмотрим простой пример: разрабатывается сервис мониторинга системных ресурсов. Продукт планируется выпускать в виде исходного кода. Что принять во внимание? Вот далеко не полный список: операционная система, платформа, ядро, средства защиты, компилятор, run level, настройки iptables и многое-многое другое…
Функциональность Expect реинкарнировалась в других полезных инструментах. Знакомьтесь: дети лейтенанта Шмидта.
При разработке программных продуктов периодически возникают задачи, требующие многократного выполнения одних и тех же операций. Например, инсталлировать или деинсталлировать компонент в процессе его отладки. Или эмулировать системные события и действия пользователя. В таких случаях хочется сберечь дорогое время разработчика/тестировщика, а также избежать досадных ошибок, связанных с усталостью, невнимательностью и прочими человеческими факторами.
AutoIt позиционируется как freeware-инструмент для автоматизации рутинных операций в среде Windows.
В дуэли между багами и разработчиками последние имеют право на выбор оружия. Как правило, у доброго молодца (красной девицы) есть три базовых варианта…
Docker может заблокировать доступ к машине извне в случае конфликта диапазонов IP-адресов. Что день грядущий нам готовит?
Автоматизация интерактивного общения с системой по протоколу telnet: краткое описание утилиты и примеры использования.
“Ножик может, ножик может все что угодно”. Операции с файлами: волшебство в командной строке.
Аддон GreaseMonkey позволяет кастомизировать отображаемую web-страницу с помощью JavaScript. Содержимое и поведение web-страниц в наших руках.
Иными словами, в наших руках есть инструменты, которые зачастую снимают с повестки дня вопрос “как сделать что-либо”. Гораздо важнее становится вопрос “что именно мы хотим сделать и почему”.
PowerShell – это программная оболочка и скриптовый язык для выполнения административных задач в среде Windows. Многогранность возможностей PowerShell может оказаться полезной при тестировании приложений: API- и performance-тесты, регрессионные проверки графического интерфейса, анализ результатов и выдача отчетов.
Пополнение в полку средств для анализа производительности в Linux. К широко известным vmstat, top, sar добавился инструмент collectl. Утилита позиционируется как средство мониторинга различных подсистем: CPU, Disks, Memory, Network, TCP, Sockets, Files, NFS. Что понравилось: богатство возможностей и гибкость настройки.
Даниел выяснил, что причиной такого поведения был кусок кода, в котором “живучесть” удаленного сервера оценивалась по результатам RPC ping с тайм-аутом 100 mc. Время прохождения пакетов между Лондоном и Бостоном составляло 100+/-5mc, что объясняло случающиеся время от времени неудачные попытки монтирования. Увеличить временной интервал было несложным делом, но Даниел задумался, как организовать надежное тестирование системы в подобных случаях.
Поисковый гигант предоставляет хорошие возможности для обучения. Краткий обзор ресурсов.
Модульные тесты и TDD. Аргументы и контраргументы. В каких случаях модульные тесты будут полезны? При каких условиях шкурка выделки не стоит? Практические рекомендации.
Модуль MiniMock – пожалуй, один из наиболее изящных способов создания mock-объектов в Python.
Он пытался сопоставить скорость с потерей высоты, охваченный глубоким, вызывающим тошноту, ужасом от вида земли, неумолимо приближающейся с каждой секундой. Самолет переваливался с боку на бок, пропеллеры то замирали, то вновь начинали вращаться с бешеной скоростью. Через мгновение, показавшееся ему вечностью, колеса чиркнули по раскаленному асфальту, оттолкнулись, машина зависла в воздухе, но тут же, с ударом, опустилась на полосу…
Мартин Фаулер, словно черт из табакерки, вырастает перед глазами. Отбирает каравай и дает вам пинка. Линус пытается вас защитить, но тщетно. Мартин непреклонен: “Парень перепрыгнул через мою ступеньку! Караул! Он ничего не знает про fake, dummy, mock и stub”. И вы смиренно бредете прочь, несолоно хлебавши – осваивать “ступеньку Мартина”.
Модуль Test::MockObject может оказаться полезным при эмуляции объектов и методов избранного класса.
Раздельное тестирование зависимых компонентов предполагает наличие заглушек (stubs) на каждый из них. Рассмотрим небольшой пример: текстовый файл test.txt содержит цитаты, а скрипт first.pl выводит их в случайном порядке…
Модуль unittest входит в стандартную библиотеку Python и служит базовым инструментом для организации регрессионных unit-тестов. Рассмотрим небольшой пример. Файл account.py содержит класс BankAccount, предоставляющий средства для работы с банковским счетом: создание счета с начислением бонуса, добавление и снятие денег, начисление процентов…
Модуль doctest, входящий в стандартную библиотеку Python, удобен при решении следующих задач: создание и прогон регрессионных unit-тестов; документирование программного кода.
Чем обернется переход от десктопного приложения к облачному сервису для компании-разработчика? Какие преимущества получит компания, каким аспектам стоит уделить особое внимание?
Развертывание сервиса в среде Windows Azure с использованием слота Staging для обеспечения бесперебойной работы web-приложений.
Задача: автоматизировать внесение изменений в конфигурационные файлы и развертывание сервисов в облаке. Инструменты: PowerShell & XSLT.
Субъективное мнение о будущем облачных технологий по опыту работы с Eucalyptus, VMware vSphere и Microsoft Windows Azure.
Технический пост для автоматизаторов, внедряющих Eucalyptus. Три варианта поднятия виртуальных Windows-машин.
Таким образом, задача владельца облака – реализовать интерфейс управления, позволяющий отслеживать состояние облака, выполнять запросы на поднятие гостевых машин и извлекать результаты их работы. Рассмотрим варианты организации такого интерфейса для Eucalyptus.
Eucalyptus позиционируется как открытое (open source) решение для организации доступа к вычислительным ресурсам с возможностью динамического масштабирования системы и балансировки нагрузки. В данной статье мы рассмотрим архитектуру Eucalyptus, вопросы его установки и создании “облака”, а также возможности использования в разработке программных продуктов и предоставлении услуг для пользователей.
Механизм назначения прав на объекты в Linux может сыграть веселую шутку как с пользователем, так и с разработчиком автотестов.
В древние времена маги разработали систему практических методов, призванных сдвинуть наше восприятие действительности. Попробуем и мы сдвинуть точку сборки и взглянуть на тестирование ПО непредвзятым взглядом.
Чем руководствоваться при выборе языка программирования для нового проекта? Прочувствовать предназначение языка и оценить особенности своего приложения.
Маллой находился под сильным давлением. “Давай, давай, давай”, – его начальству был нужен результат. Только положительный и как можно быстрее. Маллой не видел другого выхода кроме как счесть позицию инженеров преувеличением и поставить судьбу челнока на рулетку погодных условий.
Тестировщик, считающий поиск багов верхом своих возможностей, так и останется у своего корыта жалоб и причитаний, пыхтя как паровоз и требуя прибавки в зарплате за каждый найденный баг или каждый отработанный год. Тестировщик, не застрявший в своем развитии, способен пересмотреть свои взгляды, поднять планку своих возможностей и “заточить пилу” — овладеть новыми навыками и взять на себя новые задачи.
Процесс исследовательского тестирования можно сравнить с поиском клада. В ваши руки попал полуистлевший черновик “Острова сокровищ” Стивенсона с настоящей, неопубликованной картой острова. На ней почти ничего невозможно разобрать, но примечания свидетельствуют, что клад поделен на части и укромно спрятан в разных местах…
Джон Нэш читает лекцию студентам. Окна раскрыты настежь. За окном работает экскаватор. Шум настолько сильный, что в аудитории ничего не слышно. Профессор закрывает окна вопреки мольбам студентов, задыхающихся в духоте. Решение, устраивающее Нэша, но не устраивающее студентов. Миловидная девушка (будущая жена профессора-отшельника) решительно встает, открывает окно и просит рабочих сделать перекур на 40 минут…
Грегори Хаус не первый раз совершал чудо, и его друг уже успел к этому привыкнуть. В шестом чувстве Хауса у нас нет никаких сомнений. Обратимся к вопросу, ответ на который не столь очевиден: каким образом интуиция сможет помочь в тестировании программного обеспечения?
Густаво прав — счастье создавать продукты, которые улучшают мир. Не меньшее счастье — давать этим продуктам путевку в жизнь.
Программный продукт не живет в вакууме. Его средой обитания является операционная система, в которой вместе с ним несут вахту другие продукты. Как и во всяком приличном обществе, законопослушный продукт не должен посягать на жизнь других продуктов и причинять вред окружающей среде.
Программный продукт создается для конечного пользователя. Последней милей для него будет тот участок, после прохождения которого пользователь с радостью скажет “Да, то что нужно!” и преисполнится к нам признательностью и уважением. Это тот участок, на котором обладатель нашего продукта получит то, что он хотел получить. Очень важно, чтобы последняя миля не стала последней каплей доверия пользователя.
Different people may test for different reasons. Testing may have a variety of missions. For my projects it’s usually this: testing is the headlights of the project. We want test because we need to know the status of the product as it travels the “highway” of the project and into the wider world.
Чем больше багов находишь в продукте, тем меньше их остается? Чем больше находишь багов в продукте, тем лучше? Цель тестировщика – убедиться, что программа работает?
Под качеством программного продукта будем понимать степень его соответствия потребностям пользователя. Чем выше степень соответствия, тем лучше качество продукта.
Мечты сбываются: операционная система Linux Mint 17 отлично подходит для домашнего компьютера. Несколько советов по установке прикладных программ.
Собака лает – караван идет. Такими словами можно охарактеризовать жизненный цикл любого программного продукта. Речь пойдет о Linux Mint 12, операционной системе из клана Debian/Ubuntu, которой прочат светлое будущее на рынке настольных систем.
19 января 2038 года часть компьютерных систем неверно вычислит дату в приложениях, где она без сбоев вычислялась десятки лет. Представление времени в стандарте POSIX служило верой и правдой почти полвека и через три дня должно пройти самое серьезное испытание на прочность…
Мы живем в мире, насыщенном информацией. Как сохранить то, что мы признали полезным и заслуживающим нашего внимания? Парад инструментов и технологий.
Поднят вспомогательный сервер. Данные системы бронирования билетов восстановлены из архива, сделанного 18 мая в 09:46. Джеймс Морган в списках не значится…
Сбой в программной системе может нарушить работу предприятия и спасти человеческую жизнь.
Многообразие предлагаемых решений говорит о том, что существует простое решение. Правда, Фаина Раневская говорила, что “оптимизм – это недостаток информации”. Но надо действовать. Подобно лягушке в банке со сметаной: если сильно барахтаться, то обязательно выберешься.
Что такое качество программного обеспечения и как его улучшить: теория и практика, задачи и решения, подводные камни и обходные пути.