Автоматизация
•
А и Б сидели на трубе, или тестируем автотестыАвтотесты это такой же программный код, как и приложение, которое они проверяют. Ошибки, приводящие к багам в продукте, в автотестах приводят к искажению результатов. Вот пример: "A" и "Б" сидели на трубе. "A" упало. Кто остался на трубе?
•
AutoIt: скрытые возможностиВ AutoIt не хватает многих возможностей, которые присутствуют в специализированных инструментах. В то же время, AutoIt отлично подходит для автоматизации рутинных операций, и зачастую его функциональность может оказаться весьма полезной...
•
Автоматизация тестирования: зачем это нужно?Грамотно написанные и отлаженные автотесты позволят оперативно провести регрессионное тестирование функциональности продукта, а у тестировщиков будет время на тестирование новой функциональности, на интуитивный, творческий анализ работы приложения на тот анализ, на те баги, которые невозможно найти при автоматизированном тестировании, но исправление которых критически важно для качественной работы продукта.
•
Python и AutoIt: cлужили два товарищаВ целом, обращаясь к AutoItX из Python через COM, мы можем интегрировать богатые возможности Python (exceptions, OOP и т.п.) и функциональность AutoIt.
•
Продукт и среда: перебор вариантовРассмотрим простой пример: разрабатывается сервис мониторинга системных ресурсов. Продукт планируется выпускать в виде исходного кода. Что принять во внимание? Вот далеко не полный список: операционная система, платформа, ядро, средства защиты, компилятор, run level, настройки iptables и многое-многое другое...
•
Expect.pm, Pexpect, emptyФункциональность Expect реинкарнировалась в других полезных инструментах. Знакомьтесь: дети лейтенанта Шмидта.
•
Expect: автоматизация рутинных операцийПри разработке программных продуктов периодически возникают задачи, требующие многократного выполнения одних и тех же операций. Например, инсталлировать или деинсталлировать компонент в процессе его отладки. Или эмулировать системные события и действия пользователя. В таких случаях хочется сберечь дорогое время разработчика/тестировщика, а также избежать досадных ошибок, связанных с усталостью, невнимательностью и прочими человеческими факторами.
Инструменты
•
Eucalyptus: как управлять облакомТаким образом, задача владельца облака реализовать интерфейс управления, позволяющий отслеживать состояние облака, выполнять запросы на поднятие гостевых машин и извлекать результаты их работы. Рассмотрим варианты организации такого интерфейса для Eucalyptus.
•
Облако своими руками, или возможности EucalyptusEucalyptus позиционируется как открытое (open source) решение для организации доступа к вычислительным ресурсам с возможностью динамического масштабирования системы и балансировки нагрузки. В данной статье мы рассмотрим архитектуру Eucalyptus, вопросы его установки и создании "облака", а также возможности использования в разработке программных продуктов и предоставлении услуг для пользователей.
•
Три инструмента, изменивших OpenQuality.ruИными словами, в наших руках есть инструменты, которые зачастую снимают с повестки дня вопрос "как сделать что-либо". Гораздо важнее становится вопрос "что именно мы хотим сделать и почему".
•
PowerShell: первые шагиPowerShell это программная оболочка и скриптовый язык для выполнения административных задач в среде Windows. Многогранность возможностей PowerShell может оказаться полезной при тестировании приложений: API- и performance-тесты, регрессионные проверки графического интерфейса, анализ результатов и выдача отчетов.
•
Хочу все знать, или collectl в помощьПополнение в полку средств для анализа производительности в Linux. К широко известным vmstat, top, sar добавился инструмент collectl. Утилита позиционируется как средство мониторинга различных подсистем: CPU, Disks, Memory, Network, TCP, Sockets, Files, NFS. Что понравилось: богатство возможностей и гибкость настройки.
•
Тестирование приложений на медленных каналах связиДаниел выяснил, что причиной такого поведения был кусок кода, в котором "живучесть" удаленного сервера оценивалась по результатам RPC ping с тайм-аутом 100 mc. Время прохождения пакетов между Лондоном и Бостоном составляло 100+/-5mc, что объясняло случающиеся время от времени неудачные попытки монтирования. Увеличить временной интервал было несложным делом, но Даниел задумался, как организовать надежное тестирование системы в подобных случаях.
Модульные тесты
•
Взлетная полоса, или введение в mock-объектыОн пытался сопоставить скорость с потерей высоты, охваченный глубоким, вызывающим тошноту, ужасом от вида земли, неумолимо приближающейся с каждой секундой. Самолет переваливался с боку на бок, пропеллеры то замирали, то вновь начинали вращаться с бешеной скоростью. Через мгновение, показавшееся ему вечностью, колеса чиркнули по раскаленному асфальту, оттолкнулись, машина зависла в воздухе, но тут же, с ударом, опустилась на полосу...
•
Ступень Мартина, или двойники в PythonМартин Фаулер, словно черт из табакерки, вырастает перед глазами. Отбирает каравай и дает вам пинка. Линус пытается вас защитить, но тщетно. Мартин непреклонен: "Парень перепрыгнул через мою ступеньку! Караул! Он ничего не знает про fake, dummy, mock и stub". И вы смиренно бредете прочь, несолоно хлебавши осваивать "ступеньку Мартина".
•
Perl: заглушки на подпрограммыРаздельное тестирование зависимых компонентов предполагает наличие заглушек (stubs) на каждый из них. Рассмотрим небольшой пример: текстовый файл test.txt содержит цитаты, а скрипт first.pl выводит их в случайном порядке...
•
Python unittest: базовые возможностиМодуль unittest входит в стандартную библиотеку Python и служит базовым инструментом для организации регрессионных unit-тестов. Рассмотрим небольшой пример. Файл account.py содержит класс BankAccount, предоставляющий средства для работы с банковским счетом: создание счета с начислением бонуса, добавление и снятие денег, начисление процентов...
•
Python doctest: мал золотник да дорогМодуль doctest, входящий в стандартную библиотеку Python, удобен при решении следующих задач: создание и прогон регрессионных unit-тестов; документирование программного кода.
Подходы
•
Дороги, которые мы выбираемЧем руководствоваться при выборе языка программирования для нового проекта? Прочувствовать предназначение языка и оценить особенности своего приложения.
•
Разработка ПО: что скрывает ложь?Маллой находился под сильным давлением. "Давай, давай, давай", его начальству был нужен результат. Только положительный и как можно быстрее. Маллой не видел другого выхода кроме как счесть позицию инженеров преувеличением и поставить судьбу челнока на рулетку погодных условий.
•
Мастерство тестировщика: перепросмотрТестировщик, считающий поиск багов верхом своих возможностей, так и останется у своего корыта жалоб и причитаний, пыхтя как паровоз и требуя прибавки в зарплате за каждый найденный баг или каждый отработанный год. Тестировщик, не застрявший в своем развитии, способен пересмотреть свои взгляды, поднять планку своих возможностей и "заточить пилу" — овладеть новыми навыками и взять на себя новые задачи.
•
Тайны острова сокровищ, или Exploratory testingПроцесс исследовательского тестирования можно сравнить с поиском клада. В ваши руки попал полуистлевший черновик "Острова сокровищ" Стивенсона с настоящей, неопубликованной картой острова. На ней почти ничего невозможно разобрать, но примечания свидетельствуют, что клад поделен на части и укромно спрятан в разных местах...
•
Качество ПО и девушка мечты: дорогу осилит ищущийДжон Нэш читает лекцию студентам. Окна раскрыты настежь. За окном работает экскаватор. Шум настолько сильный, что в аудитории ничего не слышно. Профессор закрывает окна вопреки мольбам студентов, задыхающихся в духоте. Решение, устраивающее Нэша, но не устраивающее студентов. Миловидная девушка (будущая жена профессора-отшельника) решительно встает, открывает окно и просит рабочих сделать перекур на 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.
•
Три заблуждения начинающих тестировщиковЧем больше багов находишь в продукте, тем меньше их остается? Чем больше находишь багов в продукте, тем лучше? Цель тестировщика убедиться, что программа работает?
•
Качество ПО: вступительное словоПод качеством программного продукта будем понимать степень его соответствия потребностям пользователя. Чем выше степень соответствия, тем лучше качество продукта.
Приложения
•
Кому в облаках жить хорошо?Субъективное мнение о будущем облачных технологий по опыту работы с Eucalyptus, VMware vSphere и Microsoft Windows Azure.
•
Тайные знания: как сохранить?Мы живем в мире, насыщенном информацией. Как сохранить то, что мы признали полезным и заслуживающим нашего внимания? Парад инструментов и технологий.
•
Загадки Ubuntu, или знаем ли мы своих пользователей?Многообразие предлагаемых решений говорит о том, что существует простое решение. Правда, Фаина Раневская говорила, что "оптимизм это недостаток информации". Но надо действовать. Подобно лягушке в банке со сметаной: если сильно барахтаться, то обязательно выберешься.
С миру по нитке