-Фотоальбом

Посмотреть все фотографии серии Общая
Общая
12:49 19.04.2006
Фотографий: 52

 -Поиск по дневнику

Поиск сообщений в CleverBoy

 -Статистика

Статистика LiveInternet.ru: показано количество хитов и посетителей
Создан: 01.11.2002
Записей:
Комментариев:
Написано: 3276




LastFM Radio
Twitter



29 октября 2010 года Пятница

Пятница, 29 Октября 2010 г. 11:55 + в цитатник
05:00 - 08:20 [200] Сон.
08:20 - 08:40 [20] Домашние дела. : Разное.
08:40 - 08:50 [10] Завтрак, обед, ужин.
08:50 - 09:30 [40] *
09:30 - 09:50 [20] Common Agenda. : Daily Meeting.
09:50 - 10:00 [10] Анализ и планирование. : День.
10:00 - 10:20 [20] Дневник. : Ежедневник.
10:20 - 11:00 [40] Java. : Как работает виртуальная машина Java.
11:00 - 11:30 [30] Maven. : Doc. : References.
11:30 - 13:40 [130] CA Tests. : Ежедневные тесты. Анализ результатов.
13:40 - 13:50 [10] *
13:50 - 14:20 [30] Завтрак, обед, ужин.
14:20 - 14:30 [10] *
14:30 - 14:50 [20] CA Tests. : Ежедневные тесты. Анализ результатов.
14:50 - 15:00 [10] Дневник. : Ежедневник.
15:00 - 17:00 [120] TimeTracker. : Отчёт.
17:00 - 17:10 [10] *
17:10 - 17:20 [10] Дневник. : Ежедневник.
17:20 - 18:10 [50] Maven. : Introductions. : Optional Dependencies and Dependency Exclusions.
18:10 -



[Java. : Как работает виртуальная машина Java.]
{10:23} В следующий четверг Макс проведёт тренинг по этой теме. Предварительно хотелось бы самому чего-нибудь почитать.
Интересен сам факт того, что такой тренинг был запланирован. Для чего он нужен? Знание внутреннего механизма виртуальной машины может помочь в программировании? Я пока не вижу, как именно. Может быть, для каких-то вещей, которые используются не слишком часто? Скорее, архитектурных...
{10:50} Почитал о Java. И вообще о виртуальных машинах, компиляторах, языках программирования... Это целый мир. Весьма бурлящий, оказывается. Не уверен, что хочу в него погружаться.


[Maven. : Doc. : References.]
Settings.
localrepository. Можно указать расположение локального репозитория. По-умолчанию, путь связан с текущим пользователем. Его можно переопределить для общего использования.
offline. Если установить в true, то билд-система не будет обращаться к внешним репозиториям.


[CA Tests. : Ежедневные тесты. Анализ результатов.]
{13:11} Запускал сериями по три теста. Что ж, тестикам ещё есть чему поучиться. Некоторые из них совсем неопытные.


{14:53} Танюша рассказывает, что уже вообще ничего дома делать не может, потому что Дениска активно лазит по кровати и норовит упасть на пол. Заграждения из подушек не помогают, потому что он на них залезает. А сидеть в своей кроватке не хочет - орёт. Плюс постоянно пытается встать и бьётся лицом о край. В общей, у нас - своеобразный переходный период.
{17:17} Подвёл итоги рабочего месяца. Первая пятёрка выглядит так:
13:20 Common Agenda. : Mantis. : Testing and analysis.
12:20 CA Tests. : Комплект дымовых тестов.
11:20 CA Tests. : Ежедневные тесты. Анализ результатов.
11:20 Common Agenda. : Testing. : Основная функциональность.
07:00 CA Tests. : Инициализация организации. : Тест-элемент.
07:00 Java. : Отложенные вычисления.


[Maven. : Introductions. : Optional Dependencies and Dependency Exclusions.]
Опциональные зависимости используются в случаях, когда нет возможности разделить проект на подмодули. Идея заключается в том, что опциональные зависимости используются только для той функциональности, которую намереваются реально задействовать. Использование опциональных зависимостей может служить дополнительной мерой контроля за содержанием конечного продукта, позволяющей исключить некоторые части функциональности, работа которых вызывает опасения.
Опциональность имеет значение только для следующего объекта в цепочке зависимостей. Например, если Б опционально зависит от А, то для В, зависящего от Б, никакой зависимости от А нет.



Понравилось: 45 пользователям

28 октября 2010 года Четверг

Пятница, 29 Октября 2010 г. 11:09 + в цитатник
05:00 - 08:30 [210] Сон.
08:30 - 08:40 [10] Завтрак, обед, ужин.
08:40 - 09:30 [50] *
09:30 - 09:40 [10] Анализ и планирование. : День.
09:40 - 10:00 [20] CA Tests. : Ежедневные тесты. Анализ результатов.
10:00 - 10:10 [10] Дневник. : Ежедневник.
10:10 - 10:20 [10] Common Agenda. : Daily Meeting.
10:20 - 10:30 [10] Дневник. : Ежедневник.
10:30 - 11:50 [80] Common Agenda. : Mantis. : Testing and analysis.
11:50 - 12:00 [10] *
12:00 - 13:30 [90] Common Agenda. : Testing. : Основная функциональность.
13:30 - 14:30 [60] Maven. : Doc. : The Maven Community.
14:30 - 14:40 [10] *
14:40 - 15:10 [30] Завтрак, обед, ужин.
15:10 - 15:30 [20] *
15:30 - 16:10 [40] Maven. : Introductions. : Plugins.
16:10 - 16:20 [10] Анализ и планирование. : День.
16:20 - 16:30 [10] Дневник. : Ежедневник.
16:30 - 17:40 [70] Common Agenda. : Testing. : Основная функциональность.
17:40 - 18:30 [50] CA Tests. : Ежедневные тесты. Анализ результатов.
18:30 - 20:30 [120] *
20:30 - 21:00 [30] Завтрак, обед, ужин.
21:00 - 21:10 [10] *
21:10 - 21:30 [20] Максимка. : Книги.
21:30 - 21:40 [10] *
21:40 - 22:00 [20] Максимка. : Зубки.
22:00 - 22:30 [30] Дениска. : Разное.
22:30 - 23:00 [30] Душ.
23:00 - 23:10 [10] Бритьё.
23:10 -23:30 [20] Дениска. : Разное.
23:30 - 23:50 [20] *
23:50 - 00:00 [10] Домашние дела. : Разное.
00:00 - 00:20 [20] Компьютерное обозрение. 2010.37. {19.10.2010}
00:20 - 00:30 [10] Анализ и планирование. : День.
00:30 - 00:40 [10] *
00:40 - 01:00 [20] Кино. : "Короли улиц" (2008). Дэвид Эйер. (Киану Ривз).
01:00 - 01:30 [30] Анализ и планирование. : День.
01:30 - 02:10 [40] Кино. : "Короли улиц" (2008). Дэвид Эйер. (Киану Ривз).
02:10 - 02:20 [10] *
02:20 - 05:00 [160] Сон.



{10:09} Первый раз вышел на работу в мороз. Всего один градус, но мороз-таки. :) Здорово! Значит, весна уже близко.
{10:14} Сегодня у мамульки День Рождения. Сейчас буду звонить и поздравлять. А праздновать будем, наверное, в субботу.
{10:15} У нас в "Юконе", оказывается, есть проект, начатый и заброшенный. Лёнька мне о нём сказал. Договорились с Серёжей, что на следующей неделе поговорим о нём и, может быть, я продолжу разработку. Это было бы замечательно! Конечно, времени на него я не смогу много тратить, но зато и не торопит никто.


[Common Agenda. : Mantis. : Testing and analysis.]
{11:57} Осталось ещё 77 пунктов в списке завершённых заданий, которые нужно проверить. Накопилось, однако... А сегодня пришлось забраковать три штучки.


[Maven. : Doc. : The Maven Community.]
{13:27} Maven... Вот, хорошая штука, вроде бы. Позволяет более аккуратно работать с архитектурой, повышает качество конечного продукта, но... Насколько часто требуется его применение? В том смысле, что если проектов в разработке находится определённое количество, то и количество использования Maven соответствующее. Написать для каждого из проектов билд, время от времени их редактировать - и всё? Изучить Maven, а потом попасть на такой скудный паёк? Как-то даже обидно. Где ещё можно использовать свои знания и опыт?
Можно ли использовать Maven и Ant для php-проектов? А то мои работают ручками. Неплохо бы это автоматизировать. Плюс порядок, наконец, придёт, потому что структура проекта до сих пор не зафиксирована из-за отсутствия, как я вижу, уверенного понимания того, как он должно быть на самом деле.
Для Ant ничего конкретного не нашёл, а вот для Maven есть Maven for PHP [http://www.php-maven.org]. Плюс ещё один build-проект Phing [http://www.phing.info/trac], ориентированный именно на PHP. Посмотрим, что это такое...


[Maven. : Introductions. : Plugins.]
{15:45} Плагины, написанные для Ant, могут быть автоматически преобразованы в Maven-плагины. Означает ли это, что билды, написанные для Ant, тоже можно переконвертировать?..
{15:57} Честно говоря, я пока не могу уловить, зачем писать ant-плагины для вызова ant-targets из maven-билдов. Не легче ли переписать?


{16:23} Танюшка купила Максимке зимние сапожки. Уже полмесяца она волновалась по этому поводу. Холода уже близко, а в магазине или не то, или цены кусючие - 500-800 грн. ($80-100). И ведь это только на одну зиму. Впрочем, если повезёт, то и Дениске достанутся.
{16:27} Шмундыры в прошлые выходные вернулись из Турции. Говорят, хорошо отдохнули. Тут осень, а там - солнышко и тёплое море. Эх! Когда-нибудь и мы отправимся в курортное путешествие. Лишь бы все здоровы были.


27 октября 2010 года Среда

Среда, 27 Октября 2010 г. 11:08 + в цитатник
05:00 - 07:30 [150] Сон.
07:30 - 07:40 [10] Домашние дела. : Разное.
07:40 - 07:50 [10] *
07:50 - 08:10 [20] Сон.
08:10 - 08:30 [20] Завтрак, обед, ужин.
08:30 - 09:30 [60] *
09:30 - 09:50 [20] Common Agenda. : Daily Meeting.
09:50 - 10:00 [10] Анализ и планирование. : День.
10:00 - 10:10 [10] Дневник. : Ежедневник.
10:10 - 10:20 [10] *
10:20 - 10:40 [20] Maven. : Documentation.
10:40 - 11:20 [40] Ant. : Manual. : Tutorials.
11:20 - 11:40 [20] *
11:40 - 12:10 [30] Ant. : Manual. : Tutorials.
12:10 - 13:20 [70] Common Agenda. : Testing. : Синхронизация.
13:20 - 13:30 [10] Дневник. : Ежедневник.
13:30 - 14:10 [40] CA Tests. : Письмо-напоминание для клиента. : Тест.
14:10 - 14:20 [10] *
14:20 - 14:50 [30] Завтрак, обед, ужин.
14:50 - 15:10 [20] *
15:10 - 15:40 [30] CA Tests. : Письмо-напоминание для клиента. : Тест.
15:40 - 16:00 [20] *
16:00 - 16:30 [30] Maven. : Doc. : Introductions.
16:30 - 17:00 [30] Maven. : Introductions. : The Dependency Mechanism.
17:00 - 17:50 [50] Cliptoo. : Testing.
17:50 - 18:00 [10] *
18:00 - 18:30 [30] Maven. : Introductions. : Plugins.
18:30 - 18:40 [10] Анализ и планирование. : День.
18:40 - 22:00 [200] *
22:00 - 22:40 [40] Максимка. : Книги.
22:40 - 23:10 [30] *
23:10 - 23:50 [40] Сон.
23:50 - 00:00 [10] *
00:00 - 00:20 [20] Завтрак, обед, ужин.
00:20 - 00:50 [30] "Україна має талант 2".
00:50 - 01:20 [30] *
01:20 - 01:30 [10] Дневник. : Ежедневник.
01:30 - 01:40 [10] Дениска. : Разное.
01:40 - 02:10 [30] Дневник. : Ежедневник.
02:10 - 03:00 [50] Максимка. : Развитие.
03:00 - 03:20 [20] Анализ и планирование. : День.
03:20 - 03:30 [10] *
03:30 - 05:00 [90] Сон.



{09:57} Выключил будильник и... не лёг обратно в постель! Вот такое приключение сегодня у меня было. Правда, что с этим было делать так толком и не придумал. Поставил чайник, а потом спросил у Танюши, что сегодня на завтрак. Она ответила: "Сейчас манную кашу сварю". И вот тут возникла проблема - а что делать мне? Утренних дел у меня как-то не предусмотрено, потому что на них никогда нет времени. Все вокруг спят, особо не пошумишь. Можно, конечно, почитать чего-нибудь... Неохота как-то было. В общем, попал в атмосферу разреженных интересов. В итоге, подремал 20 минут. Может, со временем научусь вести себя утром более адекватно. Но это ж надо постоянно в 7:30 вставать!..


[Maven. : Documentation.]

{10:32} Документация большая, поэтому разбил на части, с ними вполне можно работать по-отдельности. Какая из них окажется самой интересной? А полезной? :)


[Ant. : Manual. : Tutorials.]

{12:01} Разбирался, как подключать внешние библиотеки. Честно говоря, не так просто, как хотелось бы. Сделать то же самое по памяти с первого раза вряд ли удастся. Интересно теперь, как то же самое делается в Maven. По-моему, зависимости там показывать получается нагляднее, хотя синтаксис запомнить тоже трудно.


[Common Agenda. : Testing. : Синхронизация.]

{12:38} Синхронизация сама по себе работает, а вот с качеством проблемы.
01. Выходные дни не переносятся из CA в Outlook.
02. Выходные дни переносятся из Outlook в CA, но не отображаются в календаре.
03. События перенося из Outlook в CA, однако название события не отображается в календаре.
04. Паттерны не переносятся из CA в Outlook.
Внёс в Mantis-список.


{13:26} Собираемся играть в пэйнт-болл. Главный организатор - Лина, - к сожалению, заболела. Пока что всё переносится на неделю. С одной стороны, интересно поиграть, в первый раз всё-таки, однако с другой - семейные обстоятельства диктуют вопросы, на которые хочется знать ответы: сколько стоит? где? когда? как долго? В общем, пока в раздумьях.


[CA Tests. : Письмо-напоминание для клиента. : Тест.]

Письмо-напоминание о приёме высылается клиенту в момент времени, рассчёт которого зависит от значения соответствующего параметра типа приёма.
Если значение не определено, письмо высылается за сутки до начала приёма. Если же определено, то в зависимости от этого значения.
[ТипПриёма01] : Значение параметра [Письмо-напоминание] не определено.
[ТипПриёма02] : Значение параметра [Письмо-напоминание] = два часа.

01. В системе регистрируется приём типа [ТипПриёма01]. Приём должен начинаться не раньше, чем через сутки после регистрации.
02. Когда до начала приёма останется меньше суток, нужно проверить, пришло ли письмо с напоминанием об этом приёме.
03. В системе регистрируется приём типа [ТипПриёма02]. Приём должен начинаться не раньше, чем через два часа после регистрации.
04. Когда до начала приёма останется меньше двух часов, нужно проверить, пришло ли письмо с напоминанием об этом приёме.

Тесты запускаются один раз в сутки. В связи с этим, наш тест получится состоящим из двух частей. В первой части будет регистрироваться приём, а во второй проверяться наличие письма.

Название: Письмо-напоминание о приёме для клиента.
ID: TC201010271352.
Вариант использования:
Спецификация:
Утверждение: В момент времени, соответствующий типу зарегистрированного приёма, клиенту высылается письмо-напоминание об этом приёме.
Описание: Нужно проверить два случая: 1) параметр типа приёма "Напоминание" не определён, берётся значение по-умолчанию - "24 часа"; 2) параметр определён. (Можно ли указать значение, большее 24 часов?).
Начальное состояние системы:
01. В системе зарегистрирован тип приёма [ТипПриёма01]. Значение параметра "Напоминание" не определено.
02. В системе зарегистрирован тип приёма [ТипПриёма02]. Значение параметра "Напоминание" равно "3 часа".
03. В системе зарегистрирован специалист [Специалист01]:[08:00-18:00].
Базовый сценарий:
Проверить утверждение: В почтовом ящике клиента присутствует письмо-напоминание о приёме: [ТипПриёма01], [Специалист01], [сегодня, 15:00].
Проверить утверждение: Найденное письмо имеет дату = вчера, время = 15:00.
Проверить утверждение: В почтовом ящике клиента присутствует письмо-напоминание о приёме: [ТипПриёма02], [Специалист01], [вчера, 16:00].
Проверить утверждение: Найденное письмо имеет дату = вчера, время = 13:00.
Зарегистрировать в системе приём: [ТипПриёма01], [Специалист01],[завтра,15:00]].
Зарегистрировать в системе приём: [ТипПриёма02], [Специалист01],[сегодня,16:00]].

{15:37} Вот такой черновичёк... Не окончательный, конечно. Не нравится, например, что тест основан на информации о времени своего запуска. Не хватает универсальности.


[Maven. : Doc. : Introductions.]

{16:28} Ух ты! Это дело у меня тоже распалось на более мелкие, аж на 11. Это ж надо, сколько информации!



[Максимка. : Развитие.]
{02:05} Итак, что можно сделать для систематизации Максимкиного развития? Чтобы по-настоящему быть уверенным в том, что всё идёт, как надо? Наверное, если бы он ходил в садик, с этим было бы легче, так как учебно-воспитательный процесс сам по себе устанавливал бы какие-то цели в каких-то пределах. Сейчас же нужно разбираться в этом самому, а я вовсе не уверен, что влезать в эти дебри - правильная идея.
Как ни крути, а нужно признать, что полноценной замены организованному дошкольному воспитанию мы создать не сможем. Ничего, в домашнем воспитании тоже свои плюсики имеются. Успеет ещё в садик находиться. Кстати, как раз сегодня Танюша ходила в Управление образованием и написала заявление о предоставлении нам места в садике. Если будет таковое, в мае-июне начнём. Предлагали уже сейчас отдавать, однако на фоне осенне-зимней обстановки со всякими болячками, делать это совсем не хочется. Кроме того, у нас всех прививок ещё нет. В общем, ждём, когда Дениске хотя бы годик исполнится и тёплой поры года, когда вирусы не так активны.
Неплохая мысль о том, как поступить, - читать журналы для родителей. Из них можно выковыривать много всяких интересностей, которые и испытывать на Максимке. Типа "одна голова - хорошо, а много - лучше". Ведь, по сути, всё сводится к одной проблеме - чем занять ребёнка? Не просто, чтобы сидел, да мультики смотрел да по клавишам компьютера щёлкал. Нужно придумывать, что можно делать вместе, сообща. Так и можно передавать свои знания и опыт.
Конечно, мы стараемся искать и находить. Но в этом нет того, что я и называю систематичностью. Импульсивно всё. Нет целей, к которым стремимся. Соответственно, и плана никакого нет. Это беспокоит.


19 октября 2010 года Вторник

Среда, 27 Октября 2010 г. 11:06 + в цитатник
05:00 - 08:30 Сон.
08:30 - 08:50 Завтрак, обед, ужин.
08:50 - 09:30 *
09:30 - 09:50 Common Agenda. : Daily Meeting.
09:50 - 10:00 *
10:00 - 11:10 TimeTracker. : Отчёт.
11:10 - 11:20 Agile. : [agileee.org].
11:20 - 11:30 *
11:30 - 11:40 Работа. : Разное.
11:40 - 12:20 Agile. : [agileee.org].
12:20 - 12:30 Дневник. : Ежедневник.
12:30 - 13:00 Apache Ant.
13:00 - 13:30 Scrum. : Backlog Review Meeting.
13:30 - 14:00 Scrum. : "Ready to develop" state.
14:00 -


{12:26} Сегодня, впервые за много лет, я оказался без своего дневника. Обычного, бумажного. Я его попросту не нашёл. Наверное, Максимка куда-то засунул. Потому приходится писать изначально здесь, в электронном, от которого я уже успел отвыкнуть.
Хотя много не напишу. :) Эх, было же когда-то много времени...


[Apache Ant. [ant.apache.org].]
{12:37} Цель? Более глубоко изучить Ant. Общие знания у меня есть, простой билд создать могу. Хочется знать больше. Что для этого нужно сделать?
Во-первых, взять в TLW команде их билды и разобраться, как они работают. Миша там хорошую работу провёл, использовал много нетривиальных решений. Интересно будет их проработать.
Во-вторых, почитать чего-нибудь дополнительно. Лучший вариант - книга на русском языке.
{12:50} Книги не обнаружил. Разве что по слишком старой версии. Ладно, обойдусь официальной документацией.


[Scrum. : Backlog Review Meeting.]
{12:57} Натолкнулся на такой, вот, совет. Ближе к окончанию спринта проводить митинг относительно списка заданий проекта. Что в этом полезного? С какой целью нужно его проводить?
Задания спринта всегда чётко определёны. Остальные задания из списка проекта этим похвастаться не могут. Но ведь спринт скоро заканчивается. Какие задания будут включены в следующий спринт? Это решает Владелец Продукта. А что, если он сделает это в последний момент? Тогда до начала нового спринта не останется времени на выяснение деталей, из-за чего выполнение заданий подвержено различным рискам.
Если просмотреть задания из списка проекта заранее, до окончания нынешнего спринта, и указать Владельцу Продукта на необходимость дополнить задания из списка необходимой информацией, то шанс начать новый спринт без задержки становится более вероятным.
Таким образом, в спринт должно быть заложено время на рассмотрение заданий, не относящихся к нему. Как это организовать?
Так как на эти задания нельзя выделить слишком много времени, то, вероятно, основная нагрузка должна ложиться на плечи Владельца Продукта. Можно сказать, что в данном случае Команда даёт задания Владельцу Продукта, целью которых является уточнение требований, благодаря которым задания будут выполняться более качественно и без задержек.
Наш нынешний Список Заданий Проекта выглядит плохо. Задания не прописаны правильно. В бОльшей части нужно догадываться о том, что они подразумевают.


[Scrum. : "Ready to develop" state.]
{13:34} Перед тем, как приступить к выполнению задания, нужно ясно видеть цель, к которой должны привести результаты. Пользовательские истории, которые записаны в Списке Заданий Проекта, далеко не всегда предоставляют достаточную информацию для этого. Приходится затрачивать дополнительные усилия для выяснения всего необходимого. Если задание уже попало в спринт, который стартовал, то времени не так уж и много. В связи с этим часто возникают ситуации, когда разработчики домысливают то, что не указано явно. Если это домысливание оказалось неправильным, то происходит рассинхронизация полученного результата и ожиданиями заказчика. Как этого избежать? Вернее, попытаться избежать?
Идея такая. Все задания, которые планируются на ближайший спринт(ы), должны обладать статусом "Ready to develop". Критерии присвоения такого статуса вырабатываются совместно Командой и Владельцем Продукта.
Например, должна быть чётко определена цель задания. Она может быть описана в виде Представления Результата (How to Demo). С нею должны быть согласны обе стороны.
Ещё пример, задание должно быть задано в виде пользовательской истории, написанной по шаблону "Я как [РольПользователя] хочу [ПредметХотения] для того чтобы [ПричинаХотения]".
Ещё критерии - наличие значения приоритета от Владельца Продукта и оценки сложности от Команды.
Наверное, можно придумать что-то ещё.


28 сентября 2010 года Вторник

Вторник, 28 Сентября 2010 г. 13:45 + в цитатник


[Common Agenda. : Testing. : 24 часа. : Синхронизация.]
{10:06} Тестировать буду на локальной версии. Интересно, синхронизация сходу заработает?..
Конечно, она не заработала. 50 минут настраивали сервис.


[Анализ кода. : Jdepend.]
{11:43} Приступаю к инсталляции. ... {11:56} Скачал. Интересно, что с родного сайта сделать это не удалось. ... {12:03} Да уж... Скачанное не соответствует описанному в документации. В частности, нет .jar-архива. Зато есть .java-файлы. Нужно их использовать?.. Говорят, можно сделать это с помощью Ant. Но его-то у меня нет. А устанавливать что-то совсем неохота. ... {12:25} Порыскал по Инету. Найти рабочую ссылку оказалось непросто. Но в итоге у меня есть нормальный архив, со всеми необходимыми файлами (https://olex.openlogic.com/packages/jdepend). ... {12:42} Jdepend как бы запускается, но... ничего не анализирует из того, что я ему подсовываю. Наверное, не так подсовываю.


[Common Agenda. : Testing. : 24 часа. : Синхронизация.]
{13:00} Продолжаем разговор... Итак, что нужно проверить. Много чего.
[Синхронизация информации из вопросников.]
[Синхронизация приёмов, затрагивающих полночь.]
[Синхронизация групповых приёмов.]
[Синхронизация блокированного времени, затрагивающего полночь.]


[Common Agenda. : Testing. : Синхронизация. : Групповые приёмы.]
{13:14} Итак, групповой приём. Например, для двух специалистов и двух клиентов.
[Синхронизация должна добавить приём каждому из специалистов.]
BUG: При добавлении специалистов в приём, получаем XML-ошибку.
{13:26} Продолжать тестирование невозможно.


[Common Agenda. : Testing. : Синхронизация. : Полночные приёмы.]
{13:27} Нужно проверить, как синхронизируются приёмы, начинающиеся сегодня и заканчивающиеся завтра.
[+][ 23:30 - 23:45 ] Синхронизация прошла в обе стороны.
[+][ 23:45 - 00:00 ] Синхронизация прошла в обе стороны.
[+][ 23:45 - 00:15 ] Синхронизация прошла в обе стороны.
[+][ 00:00 - 00:15 ] Синхронизация прошла в обе стороны.
[+][ 00:15 - 00:30 ] Синхронизация прошла в обе стороны.
Заодно нужно поиграться с .ical-файликами.
{13:58} А письма не пришли... У меня же нет локального почтового сервиса. Так что это оставим на потом. Зато нашёл баг. Который, правда, ещё не локализировал, но то, что он есть - факт непреложный.
{15:36} Всё, удалось добиться устойчивости бага. И в Мантис его.


[CA Tests. : Регистрация организации. : Тест.]
{15:40} Ещё не готовы все ингредиенты. Но частично уже можно реализовывать.


[CA Tests. : Авторизация администратора домена. : Тест-элемент.]
{17:19} Практически готов. Заодно можно и тест сделать.


27 сентября 2010 года Понедельник

Понедельник, 27 Сентября 2010 г. 14:22 + в цитатник


[Testing System. : Логирование. : Значения параметров директив.]


{12:21} Ну вот, теперь в логе вместе с директивами выводятся и значения параметров, если эти параметры есть. Правда, если значение - какой-то объект, толку от его знания маловато...
Core_isItOrganisationAdministratorScreen.validate_JUnit (com.yukon.tests.ca.environment.object.OrganizationAdministrator@3e89c3)
Но что ещё я могу отсюда выжать? Объект есть объект, вещь весьма относительная. Посмотрим, нужно ли мне будет более подробная информация о нём. Может, и так будет достаточно.


[Анализ кода. : Jdepend.]

{13:25} Итак, что это такое и в чём его изюминка? Сейчас я это узнаю.
{14:01} Что ж. Это инструмент для анализа зависимостей пакетов. С его помощью можно получать информацию для планирования дальнейшего рефакторинга системы с целью улучшения таких показателей, как расширяемость, повторное использование кода и его поддержка. В следующий раз попробую на практике.


[Анализ кода. : Sonar]


{15:29} В пятницу натравил Sonar на Систему Тестирования. И теперь имею некоторую статистику, с которой хотелось бы разобраться.
Violations drilldown: Blocker - 0; Critical - 15; Major - 714; Minor - 423.
Естественно, начну с критических замечаний.
Unconditional If Statement: 5. Ну, это понятно. if(false) - типа такого я использую для отладки. Так, где много таких условий, у меня есть соответствующая переменная, но если нужно точечное вмешательство... Ладно, сейчас придумаю что-нибудь другое. {15:53} С этим разобрался. Переменных стало немножко больше.
Empty If Stmt: 4. С этим тоже понятно и легко - в блоке Else закомментированный код. На стройплощадке без мусора, как говорится, не бывает. Но этот я уберу.
Security - Array is stored directly: 4.
Empty While Stmt: 2.


21 мая 2010 года Пятница

Пятница, 21 Мая 2010 г. 12:00 + в цитатник
[Scrum. : Check Meeting.]

{09:46}
Сегодня должны узнать промежуточные результаты по заданиям текущего спринта.

1. [Фиксирование скорости спринта для проектов.]
Вроде бы все уже сделали замеры, кроме Common Agenda, у нас спринт ещё не кончился.

2. [Использовать демо-митинги для того, чтобы показать скорость команды.]
Непонятно. Какая взаимосвязь между демо и скоростью?

3. [Владелец Продукта желает иметь Список Заданий Проекта с приоритетами.]
Кто ему мешает? Список Заданий составляет Владелец и он же расставляет приоритеты.

4. [Владелец Продукта желает иметь Список Заданий Спринта для того, чтобы видеть, какие задания охватывает данный спринт.]
Интересно, в каком виде сделали этот СЗ остальные команды. В наших с Лёнькой проектах СЗС - отдельная часть в Списках Заданий Проекта и Команды.



[Common Agenda. : Architecture Meeting.]
{10:07}

Базы данных.
"Валидация данных должна происходить на уровне базы данных."
"Бизнес-логика - на уровне сервисов."
"Хранимые процедуры (storage procedures, sprocs) используются для: 1) существенного сокращения трафика между уровнями приложения; 2) обеспечения дополнительной секретности; можно установить ограничения на уровне базы, например, закрыть таблицу для прямого доступа и создать процедуру, которая будет играть роль посредника; 3) осуществления разделения таблиц по каким-либо логическим условиям, например, на текущие и архивные, для разных организаций и др.
Однако следует иметь ввиду, что поддержка хранимых процедур - сложная задача, поэтому использовать их нужно только при возникновении явной необходимости."
"Общение между различными частями системы должно быть максимально ограниченным. В частности, для этого можно организовать кеширование для каждого отдельного уровня системы."
"Функция кеширования характеризуется различными параметрами, которые можно настраивать в зависимости от потребностей."
"Кешировать нужно только те данные, которые необходимы именно в этой части приложения. Это называется оптимизация данных кеширования."
"Один из возможных вариантов кеширования - подключение к какому-либо уровню приложения специализированной базы данных (небольшой, рассчитанной в основном на чтение). Отдельное хранилище данных может быть и у браузера."

-----
{10:31} Довольно интересная тема.
[Базы данных. : Хранимые процедуры. : Инфо.]
[Базы данных. : Секретность. : Прокси-процедуры.]
[Базы данных. : Условное разделение таблиц.]
[Веб-приложение. : Кеширование. : Инфо.]
[Веб-приложение. : Кеширование. : Специализированные базы данных.]
[Веб-приложение. : Кеширование. : Браузеры.]


[Testing System. : Тест. : Спецификация.]

{12:17}
Что же следует понимать под тестом в Системе Тестирования? Нужно использовать именно этот взгляд - с точки зрения Системы Тестирования, для которой Тест - это не её составная часть, а нечто внешнее. Система Тестирования взаимодействует с объектом Тест, поэтому некоторые соглашения можно принять. А может, и требования выдвинуть.
Тесты могут быть созданы кем угодно. Системе Тестирования, по большому счёту, всё равно, как они выглядят внутри, но внешний интерфейс должен быть оговорен чётко.
Уровни, которые можно выделить.
Менеджер Тестирования. Это ядро Системы Тестирования. К нему можно подключить модуль, специфический для конкретного приложения. Этот модуль содержит менеджеры и тесты.
Запуск тестов производится Менеджером Тестирования. В ответ ему возвращается результат выполнения. Процессом выполнения Менеджер Тестирования не управляет. А состояние системы? Состояние системы - это глобальное понятие, Менеджер Тестирования должен знать состояние системы.
Получается, что Менеджер Тестирования взаимодействует с менеджерами модуля тестируемой системы.
Менеджеры модуля тестируемой системы взаимодействуют также с Менеджером Логирования и Менеджером Обработки Исключений, которые являются составной частью Системы Тестирования.
Так какие же требования можно определить для Теста?..
Менеджер Тестирования каким-то образом должен знать о существовании конкретного теста. Вряд ли сам тест должен сообщать ему о своём существовании. Наверное, нужно создать что-то вроде каталога, в котором и будут перечислены все доступные для выполнения тесты.
Получается, что я одновременно работаю над двумя системами: 1) непосредственно Системой Тестирования, управляющей сессией тестирования; 2) модулем, специфическим для проекта Common Agenda.
Менеджеру Тестирования вовсе необязательно знакомиться с каждым Тестом лично. Вместо этого можно создать Менеджер Тестов, который и будет знать обо всех тестах. Подробно знать обо всех тестах. Что им нужно для выполнения, как исправлять ошибки и т.д.
-----
Итоги.
["Тест не является составной частью Системы Тестирования."]
["Взаимодействие Системы Тестирования и [Тестируемой Системой] осуществляется посредством взаимодействия Менеджера Тестирования Системы Тестирования и Менеджера Тестов Тестируемой Системы."]
["Состояние Системы - это одна из характеристик Тестового Окружения."]
["Тестовое Окружение - это один из параметров Тестируемой Системы."]
-----
Диаграмма по теме:
http://www.dabbleboard.com/draw?b=Guest356555&i=3&c=6574cd4a36527e3d8ce8d83fab32b462f120d43a


[Mantis. : Testing and analysis.]

{15:20}
Resolved: [28] - [27]{15:28} - [26]{15:44} - [25]{16:01} - [24]{16:11} - [23]{16:21}.
New: [1]{15:56}.
[0007560: Questionaire prompt] Closed. {15:28}
[0009722: Action for "input fields"-question.] Closed. {15:44}
[0010259: Questionnaire. "Collapse answers" button.] New. {15:56}
[0009854: if 3 times entered wrong login details then only show prompt below] Closed. {16:01}
[0010031: I see double SMS in alert message] Closed. {16:11}
[0009995: chose another answer type feedback: improve usability more] Closed. {16:21}


18 мая 2010 года Вторник

Вторник, 18 Мая 2010 г. 12:00 + в цитатник
{10:06} С удовольствием поспал бы ещё несколько часиков. Мало того, что лёг поздно (в три :0 !), так ещё и просыпался много раз из-за того, что Дениска плакал. Не спалось ему, маленькому, что-то беспокоило. Надо бы сегодня пораньше лечь. Не взирая на то, что вечером опять будет не хотеться.


В субботу - финал Лиги чемпионов, "Бавария" - "Интер". Конечно, буду болеть за немцев. Будет ещё интереснее, если Тимощук будет играть.


[CA Tests. : Retrospective Meeting.]

{10:17} Идёт дискуссия... Предметы обсуждения: принцип выбора заданий для спринта; проведение демо-митинга; одобрение Списка Заданий Спринта Владельцем Продукта.


[Quality Assuranve. : Результат выполнения ежедневных тестов.]

{10:38} Это будет документ, в котором будет отображаться информация о результатах ночного выполнения тестов.
Сколько тестов было запущено. Сколько тестов выполнилось без ошибок. И т.д.
{10:54} Документ готов. Теперь нужно не забывать его поддерживать. :)



{14:50} Сегодня много тестирования. Соответственно, настроение так себе, но я ещё держусь. Нет, нужно всё-таки с этим что-то делать. Почему я должен расстраиваться, когда узнаю о том, что предстоит выполнить такую работу? Если она мне не нравится, нужно найти способ от неё избавиться. Да, это непросто, но возможно.
Я не говорю, что тестирование - это плохо. Многим людям нравится такая деятельность. А мне - нет, не моё это. Время, затраченное на тестирование, кажется мне потерянным. Конечно, я приношу пользу проекту, но приносит ли это пользу мне? Я никак не развиваюсь, когда проверяю разные варианты использования созданной функциональности. Я сам хочу создавать!


17 мая 2010 года Понедельник

Понедельник, 17 Мая 2010 г. 13:26 + в цитатник
[Common Agenda. : Testing. : Сохранение данных вопросника.]

{10:00} Функциональность готова не полностью. Данные сохраняются в базу, но пока нигде не используются. Задача сессии тестирования - удостовериться, что в результате сделанных изменений функциональность работы виджета осталась рабочей.
-----
1. [+][Виджет. Рекомендующий вопросник. Создание приёма.]
2. [+][Виджет. Рекомендующий вопросник. Пройти вопросник, начать создание приёма, но не окончить - перезагрузить виджет.]
3. [+][Виджет. Рекомендующий вопросник. Начать прохождение вопросника, но не завершить - перезагрузить виджет.]
4. [+][Виджет. Рекомендующий вопросник. Завершить прохождение вопросника ответом, ведущим к закрытию вопросника.]
5. [+][Виджет. Информационный вопросник. Пройти до конца.]
6. [+][Виджет (сайт). Информационный вопросник. Пройти до конца.]
7. [+][Виджет (сайт). Информационный вопросник. Начать, но не завершить прохождение - нажать на крестик.]
8. [+][Виджет. Информационный вопросник. Начать, но не завершить прохождение - перезагрузить виджет.]
-----


[Quality Assurance. : Weekly Meeting.]

{11:54} Собирались в пятницу. Как всегда, ничего особенного не нарешали.
Эти митинги вообще вызывают у меня непонятное ощущение. Не могу понять, в чём их польза. Они не вписываются в мою рабочую схему, потому что затрагивают вопросы из нескольких моих проектов одновременно, чем нарушают порядок, вернее, вносят беспорядок.
Если, допустим, предположить, что Quality Assurance - это тоже отдельный проект, то может быть, станет легче с этим всем работать?..
Тогда "Weekly Meeting" нужно ликвидировать, потому что нет такого мероприятия в Scrum-практике. И создавать Список Заданий (backlog), проводить ретро и планирование. А так - неизвестно, с чем имеем дело и как к этому относиться.
А решения были приняты такие.

1. Разработчики будут подключены к работе по написанию автоматических функцинальных тестов. Как именно пока неизвестно. Наверное, в каждой команде будет своя ситуация.
2. Тесты, которые запускаются каждую ночь, должны анализироваться на предмет успешности выполнения.
3. Набор тестов должен постоянно расширяться.

Что можно сказать по этому поводу?..

1. Это я выделил в отдельное задание. Попробую придумать какой-то алгоритм взаимодействия между QA и разработчиками. Честно говоря, сейчас я очень сомневаюсь, что удастся подключить их к этой работе. Но попробовать стоит. Может быть, и найдётся какая-то привлекательная для них польза.
2. Конечно, какой смысл в тестах, которые не работают?.. Получается, имею задания в двух проектах одновременно. Анализ результатов выполнения тестов и их поддержка - это для проекта CA Tests. А вот результаты анализа нужно представлять уже в рамках проекта Quality Assurance.
3. Расширение тестов - это тоже задание в рамках проекта CA Tests. Quality Assurance остаётся контролирующая роль. Желательно, конечно, чтобы к концу спринта проекта QA можно было доложить о готовности чего-то, что делается в CA Tests. Это могут быть не тесты целиком, а какие-то части, например, тест-элементы. QA-проект следит на покрытием тестами функциональности.


[CA Tests. : Ежедневный анализ результатов выполнения тестов.]

{12:32} Это новое задание для этого проекта. И, скорее всего, должно быть включено в следующий спринт. ... Кстати, предыдущий спринт закончился. Нужно проводить ретро и планирование.
А сегодняшние тесты все не выполнились по причине незапуска Selenium-сервера. Жека причины не знает. Если нынешней ночью случится то же самое, будет разбираться.


[CA Tests. : Retrospective Meeting.]

Темы для обсуждения.

1. Соотношение продолжительности спринта и сложности заданий.
2. Принцип отбора заданий в спринт.
3. Продолжительность спринта.
4. Структура спринта.
5. Роль Владельца Продукта в план-митинге.

Принятые решения.

1. Максимальная сложность заданий, входящих в Список Заданий спринта, должна быть не больше текущей скорости команды.
2. Во время проведения план-митинга иметь Список Заданий Команды: либо в распечатанном виде, либо на экране монитора.
3. В Список Заданий Спринта последовательно включаются задания с наивысшим приоритетом, однако сумма сложности всех заданий спринта не должна быть больше текущей скорости команды.
4. Ретро-митинг, план-митинг и демо-митинг являются составляющими частями спринта.
5. Владелей Продукта должен быть информирован о дате демо-митинга в течение первых двух дней спринта.
6. Перед проведением демо-митинга в команде проводится внутренний демо-митинг, только для членов команды.
7. Список Заданий Спринта должен быть одобрен Владельцем Продукта до начала работ по данному Списку.
8. Продолжительность спринта - 10 рабочих дней.


[Common Agenda. : Mantis. : Testing and analysis.]

Resolved: [30]{17:06} - [29]{17:09} - [28]{17:34} - [27]{17:53} - [26]{17:57} - [25]{18:06}.
Closed: [1]{17:09} - [2]{17:33} - [3]{17:52} - [4]{17:56} - [5]{18:06}.
-----
[0007872: Edit app in client wizard ] Closed. {17:09}.
[0008251: delete answer for existing questionnaire gives XML error ] Closed. {17:33}
[0009829: if using checkbox to show additional info and appointment button and place widget and change language, this page is not shown ] Closed. {17:52}
[0008726: create new question in questionnaire : choose radio button and enter one answer content, go back and want to change answer type ] Closed. {17:56}
[0009982: set language for white label ] Closed. {18:06}


{22:08} Дениска сегодня целый день не давал покоя маме Тане. Никак ему не спалось. Полежит десяток минут - и опять вертится, кряхтит, плачет. Пришёл домой папа Алёша - ему тоже досталось. Сейчас, вот, две минуты уже спит, можно передохнуть. :) С одной стороны, нервная ситуация, когда ничего делать не можешь, потому что надо человечка по комнате таскать, однако с другой, если правильно настроиться, конечно, можно и здесь находить те самые прекрасные моменты, за которые потом будут цепляться ностальгические воспоминания. :)
Надо сказать, с Дениской мне легче, чем с Максиком. Тогда я быстрее впадал в расстроенное состояние - и было тяжко. Сейчас всё воспринимается более философски, что ли. То, что не нравится, нужно просто пережить-перетерпеть, а тем, что нравится - сполна насладиться. Детки - это ж здорово! Общее впечатление от их присутствия в жизни очень даже благоприятное.
{22:34} Ну вот, Дениска уже выспался и снова кричит...

30 апреля 2010 года Пятница

Пятница, 30 Апреля 2010 г. 13:22 + в цитатник
{11:54} День стремительно развился и только сейчас появилась возможность сделать запись в дневнике. С одной стороны, такая активность - дело хорошее, а с другой, моему характеру она не очень-то соответствует. Однако некоторое время выдержать я ещё в состоянии.
А может, это всё мне только кажется... В общем, ерунда это всё.


[Тренинг. : Базы данных.]

Пошёл с командой на тренинг, который Сашка Кириченко проводил. Раньше не ходил, а сейчас захотелось. Пора потихоньку выбираться из QA-мира. Надоело. Неинтересно. Быть разработчиком намного лучше для меня. Придумывать и реализовывать. Не спорю, у QA тоже иногда такая работа есть, но она всё же больше относится к организации и координации действий, использовании готовых инструментов и практик, не говоря уж о конкретно-тестировании... Программировать интереснее. Не хочу ввязываться в споры, просто на данный момент QA-деятельность внушает только что-то типа отвращения, хотя и не в острой форме. Потому послушать про базы данных было здорово. И сразу захотелось что-нибудь из услышанного использовать.
И опять мысли потекли... Знаю я, знаю, что любую работу можно и нужно сделать интересной. Но ведь желания никуда из-за этого не исчезают. Они изменяются, но есть всегда, и если очень долго какие-то из них постоянны, значит к ним нужно прислушиваться. Одно из моих, к примеру, заключается в том, чтобы у меня не было необходимости тестировать продукт тогда, когда мне этого не хочется. Я не хочу, чтобы это было моей обязанностью. Я хочу заниматься тестированием тогда, когда хочу - и только. И это сейчас одна из моих самых больших рабочих проблем.


{12:19} Интересно Дениска родился. 31-го числа. Получается, что сегодня ему исполнится 30 дней, но не 1 месяц. А завтра ему будет 31 день, но 1 месяц и 1 день. :) Когда, вернее, во сколько первый юбилей праздновать?


29 апреля 2010 года Четверг

Четверг, 29 Апреля 2010 г. 19:01 + в цитатник
[Mantis. : Testing and analysis.]
{09:39} Ого! Народ накидал выполненных заданий целую кучу...
Resolved: [41] - [40]{09:51} - [39]{11:02} - [38]{11:09} - [37]{12:41} - [36]{13:07} - [35]{13:15} - [34]{13:30}.
Closed: [1]{09:50} - [2]{11:01} - [3]{11:09} - [4]{12:41} - [5]{13:15}.
New: [1]{11:20} - [2]{11:22}.
Reopened: [1]{13:07} - [2]{13:29}.

[0010033: change support email address] Closed. {09:51}
[0009115: Appointment Wizard for Client. [AppointmentType] must be hidden.] Не смог проверить из-за другого бага. {10:54}
[0009963: Remove coma] Closed. {11:01}
[0010039: New question in questionnaire wizard] Closed. {11:09}
[0010145: Return to view mode for answer.] New. {11:19}
[0010146: Edit mode for question. Field without label/title/hint.] New. {11:22}
[0009950: Widget. ERROR.] Closed. {12:41}
[0008872: add button for answers is not clear enough] Reopened. Несоответствие дизайна прототипу. {13:07}
[0010010: change language icon] Closed. {13:14}
[0010129: few prompt changes] Reopened. {13:29}


[TimeTracker. : Отчёт.]
Апрель.
Рабочих дней: 19(152:00).
Отработано: 130:10.
Задолженность: 21:50.
Задолженность за март: 22(176:00) - 169:50 = 6:10.
Общая задолженность: 28:00 (3 дня и 4:00).


[CA Tests. : BackLog.]
{15:13} Задача - составить список задач для проекта CA Tests. Что для этого нужно сделать?
-----
В какой форме будет реализован наш список?
["Утвердить формат списка заданий".]
[Тип документа?] [Google Spreadsheet]
[Язык?] [Английский, русский, украинский]
-----
Кто будет наполнять список? По идее, это должен делать Заказчик. Завтра у нас будет митинг с Андреем - именно он у нас Заказчик, - вот и надо будет спросить. Кроме того, именно он должен определить приоритеты заданий из списка. По приоритетам будет составляться план на спринт.
["Утвердить порядок составления списка заданий".]
[Кто?] [Владелей продукта]
[В каком объёме?] [Пользовательская история] [Приоритет] [Условия готовности]
[Формат?] [Я хочу, чтобы ..., для того чтобы ...]
-----
Нужно просмотреть мой список дел и выбрать из него все, которые относятся к проекту CATests. И включить в Список Заданий Проекта.
["Выбрать из списка моих дел те, которые относятся к проекту и поместить их в Список Заданий Проекта."]
Естественно, Заказчик должен затем ознакомиться со списком и внести все изменения, которые пожелает.
-----


[CA Tests. : Подготовка к митингу с Заказчиком.]
{15:50} Что нужно не упустить на завтрашнем митинге? На какие вопросы получить ответы и о чём договориться7
-----
Нужны выяснить, какие именно тесты интересуют Заказчика. Это должен быть список тестов, подлежащих реализации. Из них получатся отдельные записи в Списке Заданий Проекта.
["Получить список тестов для реализации в виде записей в Списке Заданий Проекта."]
-----
Ещё нужно выяснить, какие требования предъявляет Заказчик к тестам. Как это может выглядеть? Например, Заказчик может утверждать сценарий тестов. Это даст ответ на то, насколько подробными должны быть тесты, сколько функциональности затрагивать. А может, сконцентрироваться на функциональности?.. Например, можно делать так. Заказчик рассказывает, какую функциональность ему хотелось бы автоматизировать. Команда, на основании этого рассказа, подготавливает сценарий теста. Заказчик изучает сценарий. Если замечаний нет, команда приступает к реализации. Готовность теста определяется из его соответствия сценарию. Кстати, сюда же можно приплести и варианты использования, которые как-то надолго ушли на задний план.
["Разработать алгоритм подготовки требований для конкретных тестов."]
-----
Каким образом Заказчик будет принимать работу? Будет ли для этого организовываться специальное демо? Если да, то как это всё будет происходить? Если нет, то в каком виде Заказчик хочет получать работу? Возможно, он будет запускать тесты самостоятельно.
["Утвердить процедуру принятия Заказчиком выполненной работы."]
-----
Нужна ли Заказчику документация по тестам? Если нужна, то в каком виде? Должны ли тесты сопровождаться JavaDoc?
["Утвердить форму документального сопровождения тестов."]
-----


[Система тестирования. : Обработка исключений. : Спецификация.]
{16:56} Что можно придумать ещё интересненького?..

27 апреля 2010 года Вторник (16:48)

Вторник, 27 Апреля 2010 г. 11:09 + в цитатник
[Придумывать себе жизнь]

{09:57} Постараюсь вспомнить, что это означает... Несколько лет прошло с тех пор, как я записал эту тему в своём списке. Наверное, моё видение с тех пор изменилось. Ничего не поделаешь.
В жизни всегда хочется изменений. Невозможно, чтобы не стало скучно, если ничего долго не изменяется. В большинстве случаев, подразумевая такие мысли, всё-равно сидишь и ничего не делаешь. Ждёшь, что всё сделается само - и станет лучше. Хуже никто не хочет. Так вот, главная идея этой темы - "Придумывать себе жизнь" - не просто мечтать о лучшем, а постараться его, это лучшее, описать, а потом реализовать. Например, сделать в дневнике запись, которая ничем как бы не отличается от остальных, но описывает то, чего пока нет. Вспомнил, что как-то написал в дневнике о том, что уехал в Новую Зеландию и стал тренером по футболу. Это было переложением моих впечатлений от игры в Football Manager. Так вот, один из моих знакомых на полном серьёзе стал интересоваться, как мне это удалось. :) Сначала думал, что прикалывается, а потом даже немножко стыдно стало, что ввёл его в такое недоразумение.
Так что если вдруг здесь, в дневнике, появится нечто не слишком вероятное, вполне может быть, что я вновь принялся фантазировать...


[Автоматизация. : Клиент. Создание приёма. : Тест.]

{10:58} А теста самого ещё нету.
{11:23} Ну вот, тест уже готов. В своём самом минимальном виде.
{12:23} Тест полностью работает. Дополнил тест-элемент методом, проверяющим сообщение об удачном создании приёма.


[Система тестирования. : Обработка исключений. : Спецификация.]

{12:36} Пришло время вплотную заняться исключениями. План такой: создать черновик спецификации, затем на её основе построить прототип системы с обработкой исключений, поиграться с ним и привести спецификацию в окончательный вид.
{13:56} Создал проект-прототип с обработкой исключений. Провёл первые эксперименты. Вроде бы всё нормально. С логированием понятно, а вот с интеллектуальной обработкой в реальном времени тестовой ситуации не так хорошо. Не хочется слишком далеко удаляться от возникшей проблемы, но тогда трудновато будет организовать единое управление, без распорошивания сил.

Twitter: Тест готов к анализу. Прототип проекта для экспериментов с обработкой исключений тоже. Теперь бы объединить...




[Common Agenda. : Testing.]

{16:34} Полтора часа тестировал. Устал, нужно передохнуть. И немножко пожаловаться.
Мне кажется, в командах, к которым приписан штатный тестировщик, начинается разборд и шатание среди разработчиков. Требования относительно результатов собственой работы снижаются, потому что бОльшая часть ответственности за качество продукта почему-то перекладывается именно на тестировщика. То есть как бы подразумевается, что он обязан найти все баги, а значит их можно будет пофиксить - и порядок!
Конечно, не все такие. Например, я. :) Когда я что-то пишу, я со всех сторон свою фичу рассматриваю, пробую и так, и эдак, стараюсь предусмотреть все возможные ситуации. И когда я говорю, что завершил, это означает, что я уверен, что то, что я сделал, будет работать надежно. Случаются, конечно, баги, но они по делу, не из-за попустительского отношения. В принципе, такого же подхода я ожидаю и от всех вокруг. И с удивлением обнаруживаю, что всё далеко не так. Некоторые дела просто не доделываются, по моему мнению. Например, кто должен изменять текст справки, если функциональность, о которой в ней идёт речь, подверглась изменениям? Для меня ответ однозначный - тот, кто делал изменения в функциональности. Хотя бы делегировать, но что-то он должен сделать. А как относиться к словам: "Я там много чего поменял, нужно это всё хорошенько потестить". Я вообще ужасно раздражаюсь от слов "потестить всё". Так и хочется спросить: "Ты сделал или не сделал?" А так получается, что вроде бы сделал. И что? Сколько доверия к таким заявлениям? Постоянно ходить и сомневаться? Бардак!
Вот. Немного легче стало. Не нравится мне тестировать, особенно если слишком долго.

Twitter: Ещё одно мнение о том, как разработчики должны относиться к результатам своей работы с точки зрения качества.


26 апреля 2010 года Понедельник (12:55)

Понедельник, 26 Апреля 2010 г. 13:55 + в цитатник
[Автоматизация. : Клиент. Создание приёма. : Тест-элемент.]

{10:09} Надеюсь, первая страничка виджета будет пройдена...
{11:50} Не получается. Силекты работают в такой тесной взаимной связке, что мои последовательности команд не могут их пройти.


[Common Agenda. : Testing. : Виджет.]

{11:54}
[+][Создать обычный приём. Гость.]
[+][Создать обычный приём. Клиент.]
[+][Клиент. Записаться на групповой приём.]
{12:54} Ошибок в виджете не обнаружил. Это хорошо. Костя волновался, что будут.


23 апреля 2010 года Пятница (18:08)

Пятница, 23 Апреля 2010 г. 12:09 + в цитатник
[Автоматизация. : Система тестирования. : Реализация.]

{10:16} Просмотрел Лёнькины записи в Мантисе относительно системы тестирования. Получилось 6 новых дел в моём плане.

1. [Источники кода библиотек.][Сейчас и правда источники хранятся у меня на винчестере и недоступны для тех, кто берёт проект системы тестирования из хранилища. В принципе, я ещё не очень-то и задумывался о том, что мою систему может использовать кто-то ещё, кроме меня. Если же задуматься, то сам подход к проектированию и реализации системы может измениться. Вполне вероятно, что именно так и правильно.]
2. [Понятный алгоритм запуска тестов.][Опять же - для удобства тех, кто будет поддерживать систему.]
3. [Удобное использование документации.][Пока что даже не задумывался о каком-то особенном оформлении того, что пишу. Опять же - потому что никогда не думал, что это всё может быть не только для меня. Опять же - может быть, нужно всегда делать свою работу не только для себя, а с мыслью о других. Спорно, конечно.]
4. [Убрать папку Library.][Ну, это понятно. Но на потом.]
5. [Отделить релизную и разрабатываемую версии проекта.][А вот это будет совершенно новый для меня опыт. Обычно весь код находится в одном месте, а недоделанные блоки просто отключаются во время релиза.]
6. [Тест. Получить имя.][Лёнька сформулировал это примерно так. Есть какие-то требования к разработчику, не выделенные явно. Это неудобно.]

Twitter: Разработка системы тестирования выходит на следующий этап. Попробуем с Лёнькой организовать микро-Scrum.



[Mantis. : Testing and analysis.]

{11:35}
Resolved: [25]{11:35} - [24]{11:48} - [23]{12:25}.
Closed: [1]{11:48} - [2]{12:25}.
[0009931: WL Info if use registration=OFF, don't show finance email too] Closed. {11:48}.
[0008539: check design/usability issues of uploaded files] {12:16} Не могу проверить из-за бага в другой функциональности. Обойти не удаётся.
[0009977: you can use action=show_login&app_id=15177 parameter for every organization] Closed. {12:25}

Потестировал записи из Мантиса. Заодно поднял вопрос о до сих пор неработающем опроснике. Сашка скоро займётся новым проектом, поэтому вопросник должен быть рабочим хотя бы в основной своей функциональности.


[Система тестирования. : Предупреждения компилятора.]

{13:02} Хочу писать код так, чтобы компилятор не выдавал мне сообщения-предупреждения. Пока что ограничусь настройками по-умолчанию, потом можно это дело усугубить. Наданный момент Eclipse находит, что в моём коде 92 проблемы. Львиная часть из них - "is never read". Это связано как раз с тем, о чём говорил Лёнька, - слишком много экспериментальных блоков, часть из которых просто закомментирована. Так быть не должно. Комментарии должны быть комментариями, а если какие-то части кода не нужны, их нужно отключать легальными методами.
{13:33} Ну вот, осталось только 71 предупреждение. По ходу работы стало понятно, что более эффективно разбираться с этими проблемами будет во время работы с соответствующими классами, когда в этом будет необходимость. А пока можно сформулировать такое:

["Не использовать функциональность комментирования для отключения тех или иных фрагментов кода."]
["Минимизировать области видимости и использования переменных."]

Теперь эти правила в моей обойме.

Twitter: С этого момента буду обращать внимание на все предупреждения, выдаваемые компилятором в процессе написания кода.


[Автоматизация. : Система тестирования.]

{16:34} Провели с Лёнькой наш первый митинг как микро-команда. Определили роли и требования, проанализировали первые пользовательские истории, написали списки дел, поиграли в план-покер - и первый спринт уже начался. Вернее, продолжился, так как договорились, что спринты по проекту "Автоматические тесты" будут у нас начинаться в четверг и заканчиваться в среду. Второй проект - "Система автоматического тестирования" - будет разрабатываться спринтами с понедельника по пятницу.
Итак, суммарная сложность нашего первого списка дел - 15. Посмотрим, какую скорость покажет наша команда. И насколько правильными оказались наши предположения о сложности заданий. В частности, интересно, насколько реалистичной окажется наша абстрактная единица сложности.

Twitter: Первый митинг нашей с Лёнькой команды состоялся. Запланировали первый спринт. Интересно, что получится.


[Автоматизация. : Клиент. Создание приёма. : Тест.]

{16:49} [Определение внешних и внутренних требований.]
Это должны быть требования именно к этому конкретному тесту. Конечно, с учётом того, что этот тест наследует все требования, предъявляемые вообще к тесту в системе тестирования. Тем не менее, попробую(ем) как можно более конкретизировать.

{17:47} Написал спецификацию. Основные моменты:

["Тест - это последовательность [директивных указаний] системе тестирования выполнить те или иные действия над тестируемой системой в некотором тестовом окружении".]
["Под директивными указаниями понимаются указания на выполнение тест-элементов и тест-ядер системы тестирования."]
["Результат выполнения теста является неудачным, если хотя бы одно из директивных указаний теста завершилось неудачно."]
["Успешным выполнением директивного указания считается отсутствие исключительной ситуации в результате его выполнения."]
["Возникновение исключительной ситуации трактуется как неудача теста."]
["Тест не производит логической обработки исключительных ситуаций."]
["Тест сообщает об исключительной ситуации [соответствующим менеджерам системы тестирования]."]

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

Twitter: Написал спецификацию для теста системы тестирования в общем. Основные моменты вполне можно уже реализовывать.


22 апреля 2010 года Четверг (17:50)

Четверг, 22 Апреля 2010 г. 11:32 + в цитатник
[TimeTracker. : Отчёт.]

Апрель: 14 рабочих дней (112:00).
Отработано: 90:10.
Задолженность: 21:50.
Март: 22 рабочих дня (176:00).
Отработано в марте: 169:50.
Задолженность за март: 6:10.
Общая задолженность: 28:00 (3.5 рабочих дня).

Twitter: Моя общая задолженность по рабочему времени на сей момент составляет 28 часов. Буду ликвидировать потихоньку.


[Автоматизация. : Сборка объектов тестового окружения.]

{10:41}
{12:05} Создал в структуре тестового окружения новый объект - Клиент. Отредактировал все методы, в котором в результате этого компилятор нашёл ошибки. Работает. Однако не всё реализовано так, как хотелось бы. Например, хочу, чтобы в этом объекте были только геттеры. Но сделать из него прокси пока не получается. Нужно придумать что-то хитрое. Интерфейс тоже не хочу использовать.

Twitter: Реализовал первый объект в структуре тестового окружения - Клиент. Но не всё так, как хотелось бы. Буду думать ещё.


{12:27} Вчера вечером не было Интернета... Как-то уже непривычно без него. Музыку с винчестера слушал. Надеюсь, быстро исправят.
{12:28} Дениска такие интересные звуки по ночам издаёт. Днём у него редко такое получается. Я его называю чревовещателем. Лежит с закрытым ртом и "разговаривает". У меня так не выходит.
{12:30} Максимка к Дениске вполне нормально относится. Уже уяснил, что тот маленький, ничего практически не умеет. Иногда играется с ним, гладит по головке, заглядывает в глазки, цёмает. Недавно взял Дениску за ножки и учил его ходить. :) А несколько дней назад печеньем его кормил. Таня - в шоке! Нашла кусочек печенья у Дениски за щекой. Строго-настрого запретила Максимке делать что-нибудь подобное. Не успела отвернуться, Дениска уже порцию яблочка получил. "Я же кусочек! Ма-а-а-а-ленький!"

Twitter: Интересно наблюдать за развитием отношений между Максимкой и Дениской. Два ребятёнка в доме - это всё-таки здорово!


[Mantis. : Testing and analysis.]

{13:10}
Resolved: [29] - [28]{13:24} - [27]{13:35} - [26]{13:56} - [25]{13:59} - [24]{14:03}.
Feedback: [1]{13:24}.
Reopened: [1]{13:36}.
New: [1]{13:47}.
Closed: [1]{13:56} - [2]{13:59} - [3]{14:03}.
[0007721: getbizzi website changes] Feedback to Tjerk. {13:24} Нужно ли учитывать текущий, 2010-й, год.
[0009965: Check design] Reopened. {13:35} Не все возможные для пользователя варианты учтены.
[0010086: Click Settings Error.] {13:46} Ошибка при щелчке по пункту меню.
[0009633: close questionnaire shows uploaded screen] Closed. {13:55}
[0010040: Name Infix Surname] Closed. {13:58}.
[0009927: widget: show 'all agendas' by default because we have availability feature now] Closed. {14:03}
-----
{14:03} Resolved: -5. Feedback: 1. Reopened: 1. New: 1. Closed: 3. Вот такие результаты сессии тестирования.


[Автоматизация. : Параметры командной строки.]

{15:32}
[-][Возможность задавать тестовое окружение.]
[-][Вывод справки для пользователя]
-----
{17:37} Иногда Selenium не запускается из-за того, что порт уже занят, т.е. сервер Selenium не выгрузился в предыдущей сессии тестирования. Нужно сделать так.
Запустить консоль и набрать команду "netstat -ano". Видим список всех процессов. Находим нужный порт и запоминаем значение PID для этого процесса. Потом запускаем Менеджер Задач, находим там этот PID и выключаем соответствующий процесс.
-----
{17:50} Параметр, отвечающий за выбор тестового окружения, свою роль исполняет. Это хорошо. Можно идти дальше. :)

Twitter: Параметры командной строки очень даже неплохо работают. Браузер и тестовое окружение можно менять на лету.


21 апреля 2010 года Среда (15:13)

Среда, 21 Апреля 2010 г. 11:24 + в цитатник
{10:04} День только начался, а я уже умудрился расстроиться. Оказывается, вчера был митинг по Scrum... Он начался немного позже запланированного времени и никто мне об этом не сообщил. Обидно. Я ведь тоже как бы в этом процессе хотел участвовать и все как-будто об этом знали. А теперь получается, что не очень-то я и нужен... В общем, без меня обговорили много интересных вещей, запланировали работу Scrum-команды. Ощущения как у пассажира поезда, которого товарищи по вагону не предупредили, что поезд уходит раньше. Можно, конечно, догнать, но восстановить прежние отношения не удастся, вернее, свой взгляд на эти отношения. Наверное, он был ошибочным, если для меня так удивительно то, что произошло. Слишком много ожиданий на пустом месте, как выяснилось. Что делать дальше? Пока не решил. Энтузиазм почти убитый.

Twitter: День только начался, а я уже умудрился расстроиться. Оказывается, вчера был митинг по Scrum...



[Автоматизация. : Система тестирования.]

{10:30} Благодаря Лёньке разработка системы тестирования переходит в новую фазу. Вчера он сделал анализ архитектуры и кода, мы рассмотрели некоторые из его ремарок. Однако самое главное - он подключился к этому процессу на постоянной основе (конечно, не в ущерб основной работе; всё-таки система тестирования - это для нас, а не для заказчика). Мы составим команду, у которой будет свой рабочий цикл, список заданий, планирование, демо и т.д. И он уже запостил в Мантис несколько заданий. Думаю, теперь работать над этим проектом будет и интереснее, и эффективнее.

Twitter: Разработка системы тестирования переходит в новую фазу. Теперь у нас есть команда.



[Автоматизация. : Параметры командной строки.]

{10:43}

[+][Нужно организовать использование переданных параметров командной строки.]

{15:03} Сделал много-много изменений и дополнений в коде. Все перечислимые значения загнал в enum-классы. Соответственно, переделал всю обработку этих значений. А в методе по обработке строки параметров сделал хитрое преобразование с помощью двойного reflection.

[-][Нужно сделать метод, который выдаёт пользователю информацию о том, какие параметры командной строки он может использовать.]

Twitter: Поработал над обработкой параметров командной строки. Сделал много-много изменений и дополнений в коде.


{15:17} Ну вот, а теперь можно пойти пообедать. С одной стороны, за полдня моей работы заказчик не получит никакого value, как у нас говорят, никакого видимого value, однако с другой стороны, способность моей программки быть управляемой из командной строки впоследствии может оказаться очень даже полезной: её можно будет запустить с любого компьютера, используя при этом практически любое тестовое окружение. По-моему, удобно.

Twitter: Значимость для заказчика моей сегодняшней работы весьма спорна, однако значимость правильности всегда проблематична.



[Автоматизация. : Клиент. Создание приёма. : Тест-элемент.]

{16:29} Итак, продолжаю поиск пути прохождения алгоритма создания приёма с помощью виджета. Нужно искать другие события, по которым можно судить о том, что система находится именно в том состоянии, которое мне необходимо.

{18:22} Сделал хитрый метод для Select Box-а. Теперь ожидание работает не только для него самого, но и для его элементов. И с Лёнькой посидели, парно попрограммировали. Я волновался и пальцы заплетались, но в целом было интересно - оно и правда быстрее знания получаешь. :)

Twitter: Тест создания приёма клиентом. С Лёнькой парно пропрограммировали. Интересно! Создали метод для Select Box-а. ~ http://bit.ly/bldtou

20 апреля 2010 года Вторник

Вторник, 20 Апреля 2010 г. 19:28 + в цитатник
20 апреля 2010 года Вторник



[Автоматизация. : Клиент. Создание приёма. : Тест-элемент.]


{09:32}


[Work. : Analysis and planning.]


{09:40} Нужно тестировать... :( Ту функциональность, которая добавилась в этом цикле. Спецификаций нет, придётся распрашивать, как что работает. Не нравится мне ни такая работа, ни её организация. Но никому дела до этого нет. Они сделали, а ты проверяй... Бу!


[Common Agenda. : Testing.]


[FCKEDITOR. Remove all javascript errors in questionnaire.] [js-ошибок действительно больше нет там, где я помню они были, зато теперь есть php-ошибка, явно связанная с результатами исправления js-ошибок. Тестирование привело к созданию двух записей в Mantis.]

[Mantis 0010068: Wrong saving of "make-appointment" action] Новая запись.

[Mantis 0010069: 'FCKeditorAPI' not defined] Новая запись.

...

{11:00} [Widget. Bug after questionnaire.] И что это означает?.. {12:10} Не могу проверить из-за ошибки в редакторе вопросника.

...

{12:12} [Change question type: input fields to text area and vice versa.] ... {12:37} Преобразование происходит. Существенных замечаний нет.

[Mantis 0010074: "Validation mask" validation.] Новая запись.

...

[0010075: SEO Icon] Новая запись.

[add title, keywords, description to SEO settings] {13:03} Данные сохраняются на всех языках. Содержимое соответствующих tag-блоков в html-коде изменяется в соответствии с выбранным языком интерфейса.

...

[SEO. Screen for SEO data input]. {13:06} Ну, это то же самое... Работает. И всё аккуратненько.

...

{16:09} [GA. Input field for Google analytic id on System settings screen.] {17:39} Вполне работает. Создал ключ к Google Analytics для своей организации. На всех страничках появился соответствующий код. Единственное замечание - его расположение. На сайте Google указано, что он должен располагаться после тега закрывающего тега body, а у нас он - после. Хотя и так подхватился. Впрочем, результатов работы аналитики я ещё не имею. Может, расположение и имеет какое-то значение.

...

{17:54} [Сашина карточка про вопросник.] Указанная последовательность работает, но информации для качественной проверки недостаточно. Например, с какого типа на какой можно делать ищменения?



Лёнька посоветовал:
1) svn:ignore - если не хочешь чтобы bin или картинки пытались комититься в СВН
2) Обновить TortoiseSVN, плагины в Eclipse, и использовать JavaHL - может помочь с проблемами СВН
3) Обращать внимания на ворнинги в Eclipse или использовать FindBugs.jar
4) Будем использовать мантис
5) Хочется работать в системе, более-менее завершенной. Сейчас она смесь прототипов и реальных реализаций
6) Хочется работать в "сильно связанной" системе
т.е. в ней должно быть меньше вещей не относящихся непосредственно к работе (а-ля папка Library)
7) Для просмотра скрытых изменений в SVN можно использовать changelog

14 апреля 2010 года Среда

Среда, 14 Апреля 2010 г. 11:56 + в цитатник
{10:20} Лечь пораньше никак не удаётся. Семейные вечера напоминают винегрет - множество дел, перемешанных почти случайным образом. Нас теперь много и каждому хочется получить свою долю внимания. Успокаивается всё только к полуночи - и только тогда можно заняться тем, чем хочется. Или хотя бы тем, для чего нужна концентрация.


[Common Agenda Team. : Tjerk Meeting.]


{09:20} Приехал Тьерк. Особой потребности собираться не было, но всё же собрались, потому что так как бы положено. Тьерк перечислил наши основные приоритеты на сегодняшний день, а потом ребята перешли на обсуждение новых деталей функциональности, которые предстоит добавить в ближайшее время. Наверное, если бы я их потом реализовывал, мне тоже интересно было бы в этом участвовать, а так... буду анализировать информацию по мере поступления, всё равно мимо меня это не пройдёт.


[Автоматизация. : Виджет. Наличие списка "Категории". : Тест.]


{11:10} Большинство из элементов, необходимых для проектирования этого теста, готовы. Пожалуй, можно приступать к сборке.
{12:28} Нужно реализовать проверку условия "Организация не имеет зарегистрированных категорий".
{12:52} Мне не нравится, что в тест-ядре одновременно используются JUnit и Selenium. Чтобы избежать зависимости от конкретных библиотек, придётся использовать менеджеры-посредники и для фреймворков, и для серверов. ... А можно ли сделать так, чтобы к конкретному классу мог обратиться только другой конкретный класс?.. Мне нужно, чтобы к менеджеру-посреднику-Selenium мог обращаться только менеджер серверов автоматического тестирования.
{13:38} Часть теста работает. Пока проблем не повстречалось. Зато появились идеи относительно рефакторинга.
{14:59} Рефакторинг пока придётся отложить. Может быть, обсудим с Лёнькой, когда будем чай пить.


{15:07} Тренинг завтра и послезавтра всё-таки состоится. Тьерк совершил поступок, который нельзя не оценить. Когда он узнал, что многих не устраивает финансовая сторона вопроса, то сказал, что за всех заплатит сам. А это, как ни крути, около тысячи баксов. С нашей стороны останется только отработать один день. Теперь я, пожалуй, даже против QA-роли выступать не буду. Может, это и интересно - быть QA по-настоящему. А что это означает - "по-настоящему" - нам и предстоит узнать.


[Автоматизация. : Сохранение образа экрана в момент ошибки.]
{15:28}
{16:03} Написал аккуратненький метод. Работает. Вот только директория на диске уже должна существовать. Наверное, есть способы её создавать.
{16:55} Теперь можно создавать директории по желанию. Обработчики исключений подключены. Можно отчитываться о готовности.


13 апреля 2010 года Вторник

Среда, 14 Апреля 2010 г. 11:11 + в цитатник
[Мартин Фаулер. "UML. Основы".]
{10:00}
Завершил чтение главы 4. "Диаграммы классов: основы". Просмотрю ещё раз, чтобы освежить в памяти.
"Диаграмма классов описывает типы объектов системы и различного рода статические отношения, которые существуют между ними."
"Имеется два основных вида статических отношений: 1) ассоциации; 2) подтипы."
"Существуют три различные точки зрения на построение диаграмм классов или любой другой модели: 1) концептуальная точка зрения; 2) точка зрения спецификации; 3) точка зрения реализации."
"Ассоциации представляют собой отношения между экземплярами классов."
-----
"Диаграммы взаимодействия представляют собой модели, предназначенные для описания поведения взаимодействующих групп объектов."
"Как правило, диаграмма взаимодействия описывает поведение только одного варианта использования."
"Существует два вида диаграмм взаимодействия: диаграммы последовательности и диаграммы кооперации."


[Автоматизация. : Организация хранения тестовых данных.]

{11:34}
->[Автоматизация. : Тестовое окружение. : Спецификация.]
-----
{12:27} Немножко порефакторил. Особых изменений делать не стал, не вижу пока необходимости. Посмотрю, как будет дальше.


[Автоматизация. : Менеджер тест-ядер. : Спецификация.]

{12:31}
Спроектировал диаграмму взаимодействия между тестом, менеджером тест-ядер и тест-ядром. Попробую применить такой подход во всех методах. Интересно, какие будут результаты. Предвидеть я, конечно, предвижу, но мало ли что может вылезти... {13:39}


[Автоматизация. : Специалист. Создание приёма. : Тест-элемент.]

{15:16}
----------------------------------------------------------------------------------------------------

12 апреля 2010 года Понедельник (...)

Понедельник, 12 Апреля 2010 г. 19:29 + в цитатник
[Автоматизация. : Внесение календаря в категорию. : Тест-элемент.]
{09:36} Автокомплитер. Нужно разобраться, как заставить его работать.
{10:06} Ура! Получилось! Автокомплитер слушается. Можно идти дальше.
{11:48} Тест-элемент работает, можно использовать в тестах.
----------------------------------------------------------------------------------------------------
[Common Agenda Team. : Planning Meeting.]
{11:40} Похоже, в ближайшие две недели у меня есть возможность сосредоточиться на автоматизации тестирования. Значительного изменения функциональности не предвидится, поэтому ручного тестирования не должно быть много. Ребята будут заниматься, в основном, оптимизацией проекта для интернет-поисковиков и внедрением более глубокой зависимости от текущей организации. В общем, посмотрим.
----------------------------------------------------------------------------------------------------
[Автоматизация. : Запуск тестов из командной строки.]
{11:58} Это означает, что нужно сделать .jar-файл, который можно будет запускать из командной строки с указанием параметров. А вот в каком формате я сейчас и подумаю.
Что, если указывать параметр так: <Название параметра>=<Значение параметра>. Например, browser=IExplorer. А как тогда указать несколько параметров? Что это может быть? server=Selenium. language=English. environment=Organization02. framework=JUnit. Просто через запятую. Или через точку с запятой. Нужно поэкпериментировать.
{12:17} Все параметры можно указывать просто через пробел. Это хорошо.
{13:30} Написал метод, который анализирует строку входных параметров и преобразует её в таблицу.
----------------------------------------------------------------------------------------------------
[Мартин Фаулер. "UML. Основы".]
{14:38}
"Главной идеей метода проектирования по контракту является понятие утверждения."
"Утверждение - это булево высказывание, которое никогда не должно принимать ложное значение и поэтому может быть ложным только в результате ошибки."
"Обычно утверждения проверяются только в процессе отладки и не проверяются в режиме выполнения."
"Метод проектирования по контракту использует три вида утверждений: предусловия, постусловия и инварианты."
"Предусловия и постусловия применяются к операциям."
"Постусловие - это высказывание относительно того, как будет выглядеть окружающий мир после выполнения операции."
"Постусловие - это хороший способ выразить, что должно быть сделано, не говоря при этом, как это сделать."
"Предусловие - это высказывание относительно того, как должен выглядеть окружающий мир до выполнения операции."
"Предусловие явно устанавливает, что за его проверку отвечает вызывающий объект."
"Исходя из этих определений предусловия и постусловия, мы можем дать строгое определение термина "исключение", которое имеет место, когда предусловие операции удовлетворяется, но операция не может возвратить значение, даже если её постусловие тоже выполнено."
"Инвариант представляет собой утверждение относительно класса."
"Инвариант должен быть всегда истинным для всех экземпляров класса. По существу, это означает, что инвариант дополняет предусловия и постусловия, связанные со всеми общедоступными операциями отдельного класса. Значение инварианта может оказаться ложным во время выполнения некоторого метода, однако оно должно быть восстановлено к моменту начала взаимодействия с любым другим объектом."
-----
{15:46} Здоровски! Это же всё про мои тест-элементы! Они ничего не проверяют. Они выполняются в полной уверенности, что ошибок нет. Они изменяют состояние системы совершенно определённым образом. С исключениями и инвариантами ясности ещё нет, но я хорошенько подумаю, переварю - и пойму.
----------------------------------------------------------------------------------------------------
[Mantis. : Testing and analysis.]
{16:02}
Resolved: [31]{16:05}-[30]{16:12}-[29]{16:17}-[28]{16:22}-[27]{17:02}.
Closed: [1]{16:11}-[2]{16:17}-[3]{16:22}.
Reopened: [1]{17:01}.
-----
{0009832: cattle-plague} Closed {16:11}
{0009688: Resource License. Message. Use instead of } Closed {16:17}
{0009431: white label: check Organisation Wizard, it doesn't work } Closed {16:22}
{0009995: chose another answer type feedback: improve usability more} Reopened {17:01}
-----
{17:02} Я всё-таки выполню свой план - в Мантисе должен быть порядок. Ни одна запись не должна затеряться.
----------------------------------------------------------------------------------------------------
[Автоматизация. : Специалист. Создание приёма. : Тест-элемент.]
{17:20} Так как это - тест-элемент, значит первым делом нужно определить предусловия и постусловия, иначе - начальное и конечное состояния системы.
Итак, начальное состояние. Специалист должен быть зарегистрирован в системе. Клиент должен быть зарегистрирован в системе. Тип приёма должен быть. Время приёма должно быть известно. Можно ли это всё объединить в понятие Приём?
Что изменится ... Нет, какие изменения произойдут в системе. В списках приёмов специалиста и клиента появится по одной новой записи.
Итак, как это всё происходит. Система получает задание создать приём. Ей передаются все данные, необходимые для этого. А имеено - объект Приём.
{18:19} Начал разработку спецификации. Черновик, в принципе, готов. Можно приступать к реализации.
----------------------------------------------------------------------------------------------------
[Автоматизация. : Объекты тестового окружения.]
{18:10} Создал классы для объектов тестового окружения. Правила взаимодействия с ними менеджера пока не финализировал.
----------------------------------------------------------------------------------------------------

8 апреля 2010 года Четверг

Пятница, 09 Апреля 2010 г. 19:05 + в цитатник
[Common Agenda. : Тестирование.]

[Mantis 10021][Специалист. Список клиентов. Слияние. Поле фильтра не очищается после операции слияния.]
[Mantis 10022][Специалист. Список клиентов. Слияние. После операции слияния клиент должен получать письмо с указанием данных оставшейся у него учётной записи.]
-----
[Mantis 10030][Изменение типа ответов на вопрос]

[1] Input
[2] Check
[3] Select
[4] Radio
[5] Text

[-][1][2] [?][Заголовки полей]
[-][1][3] [?][Заголовки полей]
[-][1][4] [?][Заголовки полей]
[-][1][5] [?][Полный перенос]
[-][2][1] [?][Заголовки полей]
[-][2][3] Все дефолтовые значения переносятся. А должно быть не больше одного.
[-][2][4] Все дефолтовые значения переносятся. А должно быть не больше одного.
[-][2][5] [?][Заголовки полей]
[-][3][1] [?][Заголовки полей]
[+][3][2]
[+][3][4]
[-][3][5] [?][Заголовки полей]
[-][4][1] [?][Заголовки полей]
[+][4][2]
[+][4][3]
[-][4][5] [?][Заголовки полей]
[-][5][1] [?][Полный перенос]
[-][5][2] [?][Заголовки полей]
[-][5][3] [?][Заголовки полей]
[-][5][4] [?][Заголовки полей]
-----
[Mantis 10024][Рекомендательный вопросник по умолчанию. Последний ответ ведёт к закрытию вопросника. Такой вопросник - нерабочий.]
[+][Вопросник. Действия для ответов. Назначение приёма. После выбора специалиста - XML-ошибка.]
[-][Вопросник. Создание нового вопроса. По ходу можно изменить его тип, но сохранится всё равно первый выбранный тип.]
-----
[-][IExplorer. Слияние клиентов. Реакция на проставление галочек замедленная, отстаёт на один клик.]
-----
[-][Специалист. My appointments. Week. Имя и фамилия специалиста не разделены пробелом.] {16:09}
[-][Специалист. Planner. Почему всё покрыто пеленой?] {16:12}
[-][Администратор. Настройки. SMS-иконка не работает.] {16:51}


[Автоматизация. : Клиент. Создание приёма. : Тест.]

{11:35}
[-][Нужно создать объект Appointment]
[-][Нужно как-то обойти необходимость использовать id специалиста]
[-][Убрать зависимость от языка]
[+][Тестовое окружение. Источники идентификаторов объектов]
-----
{12:34} Очень неудобно писать тест, постоянно имея ввиду, что то-то и то-то ещё будет реализовано. Пора, пожалуй, наращивать саму систему.
-----
{13:59} С нашим виджетом попробуй справиться... Перекрёстные зависимости путают, последовательность команд сходит с ума. Вводить дополнительные условия просто потому, что так оно заработает - неправильно. Тест должен быть спроектирован с использованием стандартных элементов.


[Автоматизация. : Тестовое окружение. Источники идентификаторов.]

{12:36}
{13:18} Создал enum для идентификаторов клиентов, прописанных в тестовом окружении. ... А что, если в тесте понадобится сначала создать клиента, а затем обратиться к его данным? Если у меня чётко прописано, что можно использовать только тех клиентов, которые указаны в тестовом окружении... Тогда нужно просто сначала удалить существующего клиента, а затем создать его заново. А не наоборот. Если бы в тесте создавался клиент, то в конце теста его нужно было бы удалить. Мои же тесты не обязаны заботится о чистоте системы. Они просто проверяют конкретную функциональность. Порядок после них наводят другие объекты системы тестирования.


[Mantis. : Testing amd analysis.]

{16:59}
Resolved: [40]-[39]{17:11}-[38]{17:33}-[37]{17:56}-[36]{18:02}-[35]{18:07}.
Closed: [1]{17:11}-[2]{18:02}-[3]{18:07}(9440:going to question list from craeting questioner).
Reopened: [1]{17:32}-[2]{17:56}.
Feedback (Tjerk): [1]{17:56}.

7 апреля 2010 года Среда

Четверг, 08 Апреля 2010 г. 11:14 + в цитатник
[Work. : Analysis and planning.]

{9:41} Мы всё ближе и ближе к релизу новой версии. Вчерашний день был посвящён тестированию и исправлению ошибок, версия стала лучше. Сегодня продолжим. В целом всё выглядит хорошо, серьёзных багов не наблюдается.


[Common Agenda. : Тестирование.]

[-][Специалист. Список клиентов. Слияние. Поле фильтра не очищается после операции слияния.]
[-][Специалист. Список клиентов. Слияние. После операции слияния клиент должен получать письмо с указанием данных оставшейся у него учётной записи.]
-----
{10:47} Обработал вчерашние результаты тестирования и исправления ошибок. В итоге в Мантисе появилось 6 новых записей: 3 запроса Тьерку и 3 сообщения о багах.
-----
[+][Создание вопроса для вопросника] {11:53}
-----
[-][Изменение типа ответов на вопрос]

[1] Input
[2] Check
[3] Select
[4] Radio
[5] Text

[-][1][2] [?][Заголовки полей]
[-][1][3] [?][Заголовки полей]
[-][1][4] [?][Заголовки полей]
[-][1][5] [?][Полный перенос]
[-][2][1] [?][Заголовки полей]
[-][2][3] Все дефолтовые значения переносятся. А должно быть не больше одного.
[-][2][4] Все дефолтовые значения переносятся. А должно быть не больше одного.
[-][2][5] [?][Заголовки полей]
[-][3][1] [?][Заголовки полей]
[+][3][2]
[+][3][4]
[-][3][5] [?][Заголовки полей]
[-][4][1] [?][Заголовки полей]
[+][4][2]
[+][4][3]
[-][4][5] [?][Заголовки полей]
[-][5][1] [?][Полный перенос]
[-][5][2] [?][Заголовки полей]
[-][5][3] [?][Заголовки полей]
[-][5][4] [?][Заголовки полей]
-----
[+][Создание вопросника]
[+][Виджет. Использование вопросника. Рекомендательный.]
[-][Рекомендательный вопросник по умолчанию. Последний ответ ведёт к закрытию вопросника. Такой вопросник - нерабочий.]
[-][Вопросник. Действия для ответов. Назначение приёма. После выбора специалиста - XML-ошибка.]
[+][Виджет. Использование вопросника. Информационный.] {13:06}
[+][Мобильная версия. Специалист. Создание приёма.]
[+][Мобильная версия. Клиент. Создание приёма.] {13:16}
[-][Вопросник. Создание нового вопроса. По ходу можно изменить его тип, но сохранится всё равно первый выбранный тип.]
-----
{13:37} Ну вот... Главную функциональность проверил. Исправят то, что нашел, можно будет говорить о дальнейшем продвижении версии. ... Два из трёх запросов к Тьерку превратились в задания.


[Дневник. : Ежедневник.]

{15:04} Дениске сегодня всего неделька исполняется, а уже есть проблема - воспаление возле ногтя на большом пальчике руки. Танюшка только сегодня обнаружила, я ещё не видел. Наверное, заусеница оборвалась неудачно. Алоэ и зелёнка - по итогам поиска в Интернете. И мазь Вишневского. Конечно, если будет ухудшение, пойдём к хирургу.


[Common Agenda Meeting. : Demo. : Автоматизация.]

{15:42} Что я могу показать на следующем демо-митинге? Новые тесты? Будет ли это интересно?
А если так... Каждое задание, которое я выполняю, нужно делать так, чтобы результат выполнения можно было продемонстировать. Не просто рассказать, что делал то-то и то-то, а сказать: "Смотри!" - и всё сразу понятно. Насколько это реально?
Или ещё так... Когда-то я уже приходил к такой мысли. Каждый день - маленький рабочий цикл. К концу дня я должен быть готов продемонстрировать результаты своей работы. К демо-митингу в таком случае может накопиться много всякого интересного.
В списке дел должно быть как можно больше закрашенных точек. И каждая точка должна быть подкреплена реальным конкретным наглядным результатом. И каждый результат должен обладать такой полезностью, чтобы заказчик даже не сомневался в том, что за него нужно заплатить.


[Автоматизация. : Внесение календаря в категорию. : Тест-элемент.]

{18:05} Немножко продвинулся. Застрял на автокомплитере, который пока не воспринимает воздействия Selenium.

6 апреля 2010 года Вторник

Среда, 07 Апреля 2010 г. 16:40 + в цитатник
[Common Agenda. : Тестирование.]
{10:12} Нынешний рабочий цикл оканчивается выпуском новой версии приложения. Это означает, что нужно протестировать всю функциональность. Та ещё работка...
[+][Создание организации] {10:41}
[+][Авторизация специалиста] {10:44}
[-][Регистрация клиента]
[-][Форма регистрации клиента не закрывается после нажатия на клавишу Save. Safari.] {10:51}
[Тьерк][Почему Infix из формы прибавляется к имени в таблице, а не к фамилии? Ведь это приставка именно к фамилии. Peter van Bommel -> ? Peter van, Bommel.] {11:43}
[-][Объединение клиентов]
[-][Список клиентов. Функциональность Merge не описана в справке.] {10:59} [Нужен текст справки.]
[-][В сообщении о подтверждении слияния присутствует \"\\n\".] {11:06}
[+][Как с помощью одного параметра поиска найти все записи для слияния?] {11:14} [У записей должно быть что-то общее.]
[-][Клиент. Создание приёма.]
[-][Клиентам не разрешается удалять и редактировать приёмы из своего списка?] {11:50}
[+][Специалист. Создание приёма]
[+][Рабочий стол специалиста.] {13:25}
[+][Блокированное время] {13:29}
-----
{13:30} Может быть, это и хорошо, что первое задание после перерыва - тестирование. Но после половины дня такой работы уже хочется чего-то более интересного.
-----
[-][Appointment Type. После редактирования тарифа строка в таблице не обновляется.] {17:29}
[-][Специалист. Календарь. Download. Значения тарифа и процентных отчислений экспортируются в текстовом виде, что не позволяет использовать их в последующей обработке без предварительной конвертации.]
[-][Главная страничка организации. Отзывы и предложения. Письмо приходит с темой \"Написати повідомлення\".]
----------------------------------------------------------------------------------------------------
[Мартин Фаулер. \"UML. Основы\".]
{16:16}
\"Операции представляют собой процессы, реализуемые некоторым классом\".
\"Операция представляет собой вызов некторой процедуры, в то время как метод является телом процедуры.\" Одну и ту же операцию можно реализовать несколькими методами.
\"В рамках концептуальной модели не следует использовать операции для спецификации интерфейса класса. Вместо этого их следует использовать для представления принципиальных ответственностей класса.\"
\"В модели уровня спецификации обобщение означает, что интерфейс подтипа должен включать все элементы интерфейса супертипа.\"
\"С точки зрения реализации обобщение связано с понятием наследования. Подкласс наследует все методы и поля суперкласса и может переопределять наследуемые методы.\"
\"Подкласс представляет собой один из способов реализации подтипа.\"
Реализация обобщения всегда должна обеспечивать справедливость этого обобщения на концептуальном уровне. \"Я пришёл к выводу, что если этого не сделать, то можно столкнуться с серьёзными проблемами, поскольку при последующих изменениях стабильность обобщения может нарушиться.\"
----------------------------------------------------------------------------------------------------
[Mantis. : Testing and analysis.]
{17:19}
Resolved: [38][37][36]{17:58}+1[37]{17:58}[36]{18:12}[35]{18:15}.
Closed: [1][2]{17:58}[3]{18:11}[4]{18:15}.
----------------------------------------------------------------------------------------------------

2 апреля 2010 года Пятница

Суббота, 03 Апреля 2010 г. 03:23 + в цитатник
{10:45} Работать совершенно не можется. Даже подсчитывать сейчас не хочу, сколько нужно будет отрабатывать. Но это всё такие пустяки на фоне всего происшедшего... :) Рабочие дела никуда не убегут, я их настигну и расправлюсь, но сейчас большинство моих мыслей в другом и о другом. Хочется, чтобы Танюша с малышом скорее домой приехали. И начнётся новый этап в жизни нашей семьи. Сказали пока, что в понедельник-вторник отпустят, но есть надежда, что и завтра, чтобы до Пасхи. Главное, чтобы и мама, и малыш чувствовали себя хорошо. А мне ещё предстоит описать события минувших дней.
-----
{01:10} День заканчивается... Событий произошло - куча. Устал.
Поработать таки не удалось. Вихрь частного предпринимательства вновь завертел нас в своих крепких объятиях. Оказалось, что до 5-го числа нужно сдать отчёт за первый квартал - ещё одно последствие "необходимой" мартовской регистрации. А для этого нужно иметь копию квитанции об оплате налога. Но копии-то и нет, в то время как оригинал ушёл вместе с заявлением, поэтому нужно сходить в банк и эту самую копию взять. Подумал, сколько у меня ещё дел, и отпросился у Андрея до конца дня.
Когда пришёл домой, оказалось, что сначала нужно сходить к Танюше. У малыша обнаружились опрелости под памперсом, поэтому срочно понадобились пелёнки и другие одёжки. Конечно, когда в комнате 28 градусов, можно и сопреть... Потопал в роддом. Опрелости оказались совсем небольшими, вылечим быстро.
Обедать было уже некогда, в налоговой сегодня короткий день. Решил сначала сходить посоветоваться со своим инспектором. Итог посещения: получил справку о регистрации в налоговой, журнал с регистрационным номером, сдал отчёт (квитанция не понадобилась). Теперь можно заводить счёт в банке.
Вернулся домой. Мамулька накормила борщиком. Прилёг на пол да и заснул. Почти час провалялся. И снова в роддом. По дороге подсчитал, что протопал за день примерно 18 километров.
Сделали с Танюшей попытку выбрать-таки имя. Оставшиеся варианты: Никита, Антон, Денис, Олег, Кирилл, Назар. Наименьшие шансы, пожалуй, у Никиты и Назара. Для остальных Танюша хочет почитать описание особенностей характера. А вот для меня это совершенно ничего не значит. Мне главное, чтобы звучало красиво вместе с отчеством и фамилией.
Прямо в роддом за мной заехали Сашка с Иринкой и мы поехали в "Metro"...
-----
Завтрашний день намечается не менее беспокойным. Нужно Танюшку с малышом забрать, кроватку найти, продуктами запастись... И что-нибудь ещё, конечно, понадобится.
-----
Бабушка Люся ругает Максимку за то, что балуется на кухне. Максим в ответ:
- Положу тебя в раковину и солью! А папа купит новую бабушку.
Бабушка Алла сообщает:
- Такую, как бабушка Люся не купит. Там только баба Яга продаётся.
- Нет! Я возьму револьвер и её постреляю!
-----
Бабушка дала Максимке обед и спрашивает:
- Любишь бабушку?
Максим отвечает:
- Нет.
Бабушка:
- Смотри, какую я тебе вкусненькую картошечу сварила. Любишь бабушку?
- Нет. Я картошку люблю.

30 марта 2010 года Вторник

Вторник, 30 Марта 2010 г. 11:39 + в цитатник
[Локализация. : Украина. : Справочные тексты.]

{10:31} Вчера добрался, наконец, до перевода Алины. Оказалось, что переведено всего 10 процентов текста... Только что провели митинг, по итогам которого выяснилось, что я не буду заниматься продолжением. Это будут делать Наташа и Света. Пожалуй, это хорошо. С одной стороны, я готов был за это взяться, но чтобы не целый день - часа два, не больше, - а с другой, гораздо интереснее программировать систему тестирования. :) Чем и займусь.


Поиск сообщений в CleverBoy
Страницы: [74] 73 72 ..
.. 1 Календарь