Заметки консультанта

Шамрай Александр Владимирович

Archive for the ‘Разработка’ Category

Добавим немного автоматизации для планирования в TFS

Posted by Shamrai Alexander на 2 сентября, 2013

Автоматизация процессов– задача, которую призваны решать системы такие как TFS. Автоматизация управления конфигурациями, сборки проектов, тестирования, сбора отчетной информации и т.д. Вендоры обычно закрывают все основные моменты, но зачастую остаются места для улучшения. Допустим автоматизация планирования реализации и тестирования. Рассмотрим ниже пример для планирования реализации требований на итерацию.

Перед выполнением итерации предположительно (но не всегда) у нас должны быть готовые требования, их нам и нужно декомпозировать на задачи и в дальнейшем создать тесты, их тестирующие. Решение можно построить на основе существующего запроса по рабочим элементам, который отбирает требования на текущую итерацию:

Рисунок 1. Список требований на итерацию

Первым делом добавим новые задачи в план. У задач в TFS есть отдельное поле Действие, которое имеет ввиду тип работ необходимых для выполнения. Собственно, набор этих действий и будет нам определять шаблон создаваемых задач. Кроме этого выберем те требования, для которых нам интересно добавить дочерние задачи и выполним генерирование.

Рисунок 2. Выбор требований для планирования

В результате будет создан шаблон, в который нам необходимо добавить из списка исполнителей по задачам. Напротив задач, которые нам не нужны в плане, убираем чек-бокс. Результат публикуем.

Рисунок 3. Создание новых задач и назначение исполнителей

На картинке ниже отображен результат публикации новы х задач, которые связанны с соответствующим требованием и имеют нужных исполнителей.

Рисунок 4. Результат создания задач

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

Рисунок 5. Выбор требований для создания тестов

Отличие заключается в том, что тестирование выполняется на основе плана тестирования. План тестирования можно выбрать текущий или создать новый. Все новые тесты будут помещены в корень тестового плана. Создаем новый план и генерируем шаблон тестов

Рисунок 6. Выбор плана тестирования

Для новых тестов устанавливаем ответственных и публикуем в TFS.

Рисунок 7. Указание ответственных за тесты

В результате получится матрица, которая отражает требования, их задачи реализации и тесты, которые необходимо будет доработать, добавив в них шаги тестирования.

Рисунок 8. Сгенерированные задачи и тесты

Кроме этого тесты будут отражаться в плане тестирования в нужной иерархии и с назначенными исполнителями.

Рисунок 9. Новый план тестирования в Test Manager

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

Рисунок 10. Отслеживание выполнения

Posted in Полезное, Разное, Разработка, Microsoft, Team Foundation Server, Visual Studio | Отмечено: , , | Leave a Comment »

Как защитить авторские права разработчикам ПО? Или как мы получали копирайт в Библиотеке Конгресса США?

Posted by Shamrai Alexander на 19 сентября, 2010

Из блога Новичкова Александра:

В данной заметке я излагаю мой личный опыт и опыт нашей компании по получению свидетельств о регистрации авторского права на программное обеспечение. В интернете довольно много материалов на тему авторского права, в своем большинстве – статьи компаний, предоставляющих услуги по ускорению прохождения этой важной, но очень уж непростой процедуры. Но так ли уж процедура непроста? Или она не проста только в России? Может быть, получить международное свидетельство дешевле и проще? На все эти вопросы вы найдете ответ в данном материале, который предназначен для всех – и для тех, кто связан с разработкой ПО, и (внимание!) для тех, кто является автором… автором каких-либо произведений – от рисунков до поэм.

В практической части заметки будет изложен мой опыт и приведена пошаговая инструкция для всех, кто хочет получить международное свидетельство (копирайт), выдаваемое Американской Библиотекой конгресса.

Традиционная благодарность Галине Карабановой за помощь в написании статьи.

В статье, в примерах регистрации в Библиотеке Конгресса США фигурирует соавтор решения ProjectTracker, на примере регистрации которого и построен данный материал, –  Александр Шамрай.

Читать далее—>

Posted in Полезное, Разное, Разработка | 1 Comment »

Использование элементов ActiveX для Eclipse Plug-in

Posted by Shamrai Alexander на 9 сентября, 2009

Если кому необходимо использовать ActiveX элементы для плагинов Eclipse, то для этого нужно использовать библиотеки SWT, которые содержат функции для работы с OLE объектами. Вот и меня постигла такая потребность, поэтому пришлось немного поэкспериментировать. Если что указал ниже некорректно, то прошу шибко не судить, т.к. java я использовал первый раз, что уж говорить про разработку плагинов к Eclipse.

Для начала своих опытов я скачал Eclipse, который содержит все, что нужно для создания плагинов: http://www.eclipse.org/downloads/download.php?file=/technology/epp/downloads/release/galileo/R/eclipse-rcp-galileo-win32.zip

Далее создал проект «Plug-in project» и при создании в мастере выбрал шаблон плагина «Plug-in with a view». И уже в новый проект добавил импорт необходимых классов:

import org.eclipse.swt.ole.win32.OleAutomation;
import org.eclipse.swt.ole.win32.OleControlSite;
import org.eclipse.swt.ole.win32.OleFrame;
import org.eclipse.swt.ole.win32.Variant;

Далее в классе представления плагина определил переменные необходимые для работы с OLE объектом:

private OleControlSite olesite;
private OleAutomation oleauto;

И в функцию createPartControl, предварительно убрав лишнее, внес изменения, т.е. добавление элемента на страницу представления:

public void createPartControl(Composite parent) {
        OleFrame frame = new OleFrame(parent, SWT.NONE);
        olesite = new OleControlSite(frame, SWT.NONE, «Word.Document»);
        oleauto = new OleAutomation(olesite);
}

 

Если же необходимо использовать методы и свойства встроенного элемента, то можно использовать следующие функции класса OleAutomation:

  • setProperty – установить значение для свойства
  • getProperty – получить значение для свойства
  • invoke – выполнить метод

Небольшой пример для присваивания значения свойству:

        Variant valueq = new Variant((String) «New value»); // определяем новое значение
        int[] rgdispid = oleauto.getIDsOfNames(new String[]{«CtlName»});    // получаем номер свойства по его наименованию
        oleauto.setProperty(rgdispid[0], valueq); // устанавливаем новое значение

Ресурсы:

Posted in Разное, Разработка | Отмечено: , , | Leave a Comment »