пятница, 29 июля 2011 г.
Мера ответственности
среда, 29 июня 2011 г.
Разбор WYSIWYG
Тестирование онлайн редакторов, как оказалось, весьма забавная штука. Хотя истины ради, тут не совсем тестирование, поскольку требовалось сделать выбор между несколькими, а не протестить какой то один. Тем не менее...
Условно можно разбить все редакторы на два типа - первые пользуются элементом textarea, вторые - свойством contenteditable. Первые генерируют код, одинаковый для всех браузеров, код же вторых - от браузера зависит достаточно сильно. Подробно на английском и перевод. Однако, одним из требований к выбираемому редактору была возможность использования в режиме inplace. То есть, редактор должен уметь сам, без посторонней помощи, конвертировать любой элемент в себя, редактировать его содержимое, сохранять на сервер, и собственно, безболезненно возвращать элемент на место уже с обновленным содержимым. Редакторы первой группы (в большинстве своем), несмотря на свои достоинства, без посторонней помощи произвольные элементы конвертировать в себя не могут. Им требуется форма, над которой они могут навесить свою функциональность. Либо придется использовать еще какой либо плагин для превращения их в inplace.
Редакторы же из второй группы, как раз напротив, не имеют особых пристрастий к определенным элементам. С их помощью (опять же, не у всех) можно редактировать любой элемент страницы. Всеми любимые и популярные TinyMCE и CKEditor относятся как раз ко второй группе, а вот GoogleDocs от редактора на базе contenteditable отказался по причине несовершенства выдаваемого HTML. Тут надо бы ссылку, но я её сам потерял, а искать лень.
Из этих соображений, а так же из невысоких требований к качеству выдаваемого HTML было решено копать в сторону contenteditable-редакторов. Поиск по просторам интернета выдал пачку простых и не очень редакторов. Мощные редакторы TinyMCE, CKEditor и elRTE были отброшены изза большого веса и излишней, в моём случае, функциональности. Как оказалось, многие из редакторов второй группы все равно требуют для встраивания элемент textarea, что было достаточно удивительно. Вторым удручающим моментом было использование ими элемента iframe для редактирования. Причины этого понятны - свойство designmode применяется ко всему документу. Но кто мешает использовать contenteditable? Третьим фактором, мешающим использованию, было жесткое встраивание работы с сервером в сам редактор. В моём случае работа с сервером не базируется на классической модели поведения - поправил-сохранил. Скажем, если требуется редактировать несколько элементов, а потом сохранить их за один раз, то встроенная функция сохранения только мешает. По вышеуказанным причинам отпали CLEEditor, Aloha.
Ряд надстроек над редакторами, позволяющими встраивать их inplace были выброшены из рассмотрения сразу. Сюда попали IPWeditor, делающий CKEditor и TinyMCE inplace-редакторами и аналогичная поделка для Xina - WIP. Надстройки над надстройками - это костыль.
Достаточно интересным показался "визуальный редактор" от Imperavi, но посмотрев его код, я все таки думаю от него отказаться. Большое количество глобальных переменных, плагины, по сути плагинами не являющиеся. Несколько сумбурный исходник заставляет думать что над проектом работали не менее двух человек с абсолютно разной квалификацией. Сыро, в общем. Но если над ним хорошенько поработать, тут есть серьёзный потенциал. Редактор невелик, функциональностью не пересыщен. Ведь не всем нужен онлайн Word.
Про мелкие редакторы, коих пруд пруди говорить уже не хочется. Это либо потуги быстро перегорающей молодёжи, начавшей с наполеоновскими планами и бросившей на полдороги, либо что то заточенное исключительно под себя, либо давно заброшенные проекты. Я не упомянул NinjaEditor. Не смог скачать - у них сервер лежит. Может позже дополню статью.
Свой выбор я еще не сделал. Комментарии приветствуются.
воскресенье, 19 июня 2011 г.
Тест
Если этот пост появится в агрегаторе на software-testing.ru, значит там есть баг.
У этого поста нет тега "тестирование", соответственно, он там появиться не должен.
среда, 23 марта 2011 г.
Чуть о политике
Телевизор нас растлевает. Мы уже начинаем терять связь реальностью. Позволю себе вот такое вот обобщение, говорю о себе, но думаю что не уникален.
Поймал себя на мысли, что болею за Каддафи. Бля, как футбол прямо. Ну ведь реально, это не игрушки! Там на людей ракеты сбрасывают, там люди УМИРАЮТ по чьей то прихоти, из за чьей то жадности! А мне как войнушка в денди, и то по телевизору было и это... Неправильно это все.
Воевать за Муаммара не поеду, конечно. Я не "военный", я "ученый" по индийским классификациям, война - не моё. Но вот это противное ощущение, возникающее при упоминании трагедий в Японии и Ливии как о событиях в последнем кассовом триллере... Не дает мне покоя.
Стратигия, План, Методика
Я противник написания документов ради документов, и чем дальше, тем более рьяный. В компании из трех программистов и полутора тестировщиков не нужны никакие глобально написанные "стратегии". Зачастую вся стратегия укладывается в двух словах, понятных всем - тестим отчеты, сдать в конце недели! К черту нагрузочные, функционал только в отношении отчетов. Вот и вся стратегия, что вам еще нужно? План выглядит ровно также. Это просто список тестов, которые вы собираетесь провести. В мелкой компании План тестирования - оглавление методики, а стратегия - введение перед списком тестов. И то, если есть желание ее писать. Читать это все равно некогда.
Однако, тесты писать - надо. Вопрос в подробности написания. Нужно ли расписывать все до точки или достаточно названия теста? Я задаю себе этот вопрос по другому. Кто будет это читать? Если читать никто не будет, незачем и писать. Ну не придут ко мне тестиовщики из детского сада, что бы я всё дотошно и подробно расписывал. И штат в 10 раз внезапно не увеличится. Да пока я все напишу программеры успеют пять раз все поменять. То что я напишу, буду читать в первую очередь я, мои коллеги, которые и так в курсе как это проверять, и программеры, которые при нахождении бага прибегут и будут пытать "А что вы тут делали что бы оно вот так вот....?" Многие тесты сокращаются в одну строчку и из них получается чеклист.
пятница, 28 января 2011 г.
Feature List. Еще немного о списке фич
Вот как обычно происходит создание отдела тестирования? Есть “контора”, “контора - пишет”, причем в прямом смысле, пишет код. Контора маленькая, программа – маленькая, требования все три с половиной программиста знают и так, то есть не фиксируют. Заказчик один, он продукт получает, платит сколько то денег. Главный находит еще и еще клиентов, нанимает еще программистов… Коммуникации между программистами неизбежно ухудшаются, хотя бы просто в силу увеличения команды. Требования и баги от клиентов превращаются в бесконечный поток, и программисты в первую очередь пытаются избавиться от непродуктивной работы, то есть – от тестирования. И тогда на сайтах с работой появляются объявления – требуется тестировщик.
Приходит тестировщик, и начинает писать… А вот что? Часто от тестировщика требуют написать “процесс”. Или регламент. Или сразу внедрить автоматизацию. Или начать тестировать и писать тесты. Требуют отчетов и планов. Голова идет кругом, работы непочатый край, и за что не возьмись – срок непредсказуем. Начальство теребит – когда?
Моё искреннее убеждение, основанное на личном опыте – всё это потом. Потом тесты, потом планы, потом процессы. Главное и первоочередное – список фич. Даже просто составив этот список, нужно прийти к главному и попросить расставить приоритеты. Это даст вам представление о том, в какую сторону копать. От саппорта вы по этому списку узнаете на что больше всего жалуются заказчики, где гнездовища багов.
Список фич хорош тем, что он конечен. Список требований или список тестов – очень непредсказуемые по объему документы. А список фич – нет. Пишите его как вам удобно, тестлинк мне показался самым удобным из бесплатных, хотя для этого не сильно приспособлен, да и сырой он как тряпка под дождём. Я задумываюсь написать собственный инструмент для ведения списка, ибо навыки необходимые есть, и задача не кажется слишком сложной. Останавливает только то, что потом захочется туда приклеить и требования, и тесты, и баги, и прогоны по ревизиям, и построение отчетов. И получится какой то аналог какого ни будь платного продукта, причем заведомо худшего качества.
Но это я отвлекся. Программу на фичи дробить следует по своему усмотрению. Основным критерием я избирал такой показатель как тестируемость. Если я нечто могу протестировать и сказать – вот, это работает – я объявлял это фичей. Разногласий с программистами здесь как правило не возникает. Есть, например, отчеты, 20 штук. Отчеты объявляются фичей, и каждый отчет тоже объявляется фичей. В отчёте есть графическая и табличная части? Ещё две фичи. Древовидная структура становится очень удобным способом представления списка.
На сегодня всё. Пора дочку спать укладывать.
четверг, 30 декабря 2010 г.
Feature List
Протестировать можно только реализованные вещи. Нет, строго говря, это не правда, и даже более того, вредная неправда. Тестировать надо бы начинать задолго до того, как чтото реализовано. Но сейчас не об этом. Сейчас о тестировании софта. Вот он, свеженький, только из билд-машины, еще тёплый, HEAD revision. И руки тянутся его помучить... А мучить мы будем фичи.
Все что реализовано я буду называть фичами. Слово это от англиццкого забугорного feature и обозначает "особенность" в самом грубом переводе. Нефункциональные требования тоже должны быть реализованы, согласны? И их реализация - тоже фича.
Пункто нумре два - фичи можно скучковать. Кучи фич ;) тоже можно сгруппировать при желании. Да и фича может состоять из подфич. Для каждого уровня названия придумывать замучаешься. Поэтому - просто фича. И эти фичи удобненько так складываются в дерево, не всегда правда, бывает что это граф с циклами, но не будем пока о плохом. Фича в данном случае может быть отдельным требованием, пользовательской историей, набором функций, удобством использования и даже цветовой гаммой или документацией пользователя. Важно только одно - она должна быть реализована.
Как водится - пример. Блокнот. У него есть фичи - редактирование, сохранение, чтение, сами продолжайте. У редактирования есть фичи копирование, вставка, удаление, набор текста... Сам блокнот тоже может быть фичей в каком либо приложении. Обращаю внимание, фичи, это не обязательно требования. Фича - это то чем пользователь, извините за тавтологию, пользуется. Вобщем, можно считать следующую фразу определением. Фича реализует потребность пользователя.
Теперь о качестве. Софт должен содержать набор фич для решения определенной пользовательской задачи, иначе пользователь софтом пользоваться не будет. Фичи должны выполнять свои функции в соответствии с ожиданиями пользователя, иначе последствия те же самые. Отсюда следует два простых вывода:
Чтобы качественно подготовить софт для пользователя
- Нам нужно знать набор фич, необходимый для решения пользовательской задачи (предусмотренный для реализации в софте).
- Нам нужно знать ожидания пользователя от этих фич. Замечу, некоторые ожидания пользователя могут быть зафиксированы как требования.
Получив список фич можно начинать эти фичи приоретизировать, оценивать сроки их тестирования, разбирать и восстанавливать требования, готовить тесты, говорить тосты, и вообще, многое станет понятней. Так что удачи и
С наступающим новым годом, коллеги!