|
Тестирование в свете Экстремального Программирования. Часть 1
Статьи
→
Гибкие методологии
Часть 1. Практика использования
Авторы: Сардарян Рубен, Новичков Александр
Предисловие к статье
Данная статья посвящена достаточно интересному направлению в индустрии разработки и тестирования программного обеспечения, а именно
экстремальному программированию. Про общие идеологические принципы ХР писалось много и очень много, поэтому мы сразу решили не описывать то,
что и так уже есть — основу ХР. Данная статья — это практика
использования.
Статья состоит из двух частей:
- Практика использования;
- Экстремальное программирование в IBM Rational Unified Process.
Если с первой частью все в порядке, то вторая может представлять
особый интерес, поскольку, как многие знают, у XP и RUP немного разные
подходы к разработке и тестированию, и, вообще, они далеко не братья и даже не родственники… Но есть одно «но»! Так как RUP это не догма, а свод рекомендаций, а инструментальные средства Rational могут ГОРАЗДО
больше, чем описано в RUP'е, то и такое возможно.
Если вас заинтересовала данная тематика, то к данной статье есть
презентация, которую можно получить, послав заявку на наш почтовый ящик
Введение
Экстремальное программирование (extreme programming, XP) в настоящий
момент является одной из наиболее интересных и «горячих» методологий
разработки программного обеспечения. Представляя собой конгломерат
простых и хорошо работающих методик, XP помогает разрабатывать
качественное программное обеспечение в установленные сроки.
В последнее время XP и входящие в её состав методики начинают всё больше интересовать широкие массы. В России даже издали переводы
нескольких западных книг по экстремальному программированию. После
прочтения этих книг у читателя в общем складывается достаточно
правдоподобное представление об XP, однако до его практического
применения в работе ещё достаточно далеко. В этой статье я попытаюсь
продемонстрировать практику применения одной из методик, стараясь
провести вас дальше в мир экстремального программирования.
Одним из важнейших аспектов XP является автоматизированное
тестирование. Основными особенностями тестирования по этой методологии
являются:
- Написание тестов до начала реализации;
- Полная автоматизация процесса тестирования.
В данной статье рассказывается о том, как организовать такое
тестирование на языке C++. Это достаточно просто сделать, используя
библиотеку CppUnit, созданную по образу и подобию знаменитой JUnit для Java. Отметим, что в статье будет использован объектно-ориентированный
подход к разработке. Это абсолютно не означает, что данным методом
нельзя тестировать структурные программы, просто, ООП уже давно стало
для меня привычным образом мышления. Библиотека CppUnit также
представляет собой иерархию классов.
Краткий обзор архитектуры CppUnit
Чтобы нам было легче, вначале проведём легкий экскурс в архитектуру
CppUnit. Наверняка, не всё будет понятным с первого раза, но у вас сложится некоторое базовое представление о библиотеке и методах её функционирования.
На рисунке 1 представлена диаграмма основных классов CppUnit, на которых мы будем строить свой процесс тестирования.

Рисунок 1
Расскажем (пока, в общих чертах) для чего нужен каждый класс.
Test является абстрактным базовым классом для всех тестовых классов.
Он нужен, для того, чтобы можно было полиморфно связывать в иерархии
различные тестовые объекты.
TestCase является основным тестовым классом – базовой единицей
тестирования. Класс TestCase отражает единичный тестовый случай (что,
впрочем, видно из его названия). Чтобы его использовать, нужно
наследоваться от этого класса и переопределить метод run ().
Однако чаще всего, этого не приходится делать, т.к. для создания
объектов типа TestCase используется шаблон TestCaller и методы класса
TestFixture. TestFixture содержит методы setUp () и tearDown () для создания и уничтожения экземпляров объектов, подлежащих тестированию.
TestCaller создаёт экземпляры типа TestCase, вызывающие указанную
функцию при вызове run () и использующие объекты, создающиеся указанным
TestFixture.
TestSuite представляет собой контейнер множества тестов. TestSuite
содержит массив указателей на объекты типа Test, поэтому в него можно
помещать как объекты типа TestCase, так и объекты типа TestSuite, тем самым создавая иерархии тестовых случаев любого типа. При этом, при вызове метода run () базового TestSuite-объекта, рекурсивно будут
выполнены все тесты, находящиеся в иерархии.
TestRunner также является контейнером тестовых объектов, он является
менеджером всего жизненного цикла тестов: от создания тестовых
объектов, до их уничтожения и выдачи результатов. TestRunner показывает
прогресс (текущее состояние) процесса тестирования и выдает суммарный
результат в конце. Возможно выполнение, как всех тестов, содержащихся в контейнере типа TestRunner, так и только одного из них.
Данные о проведенном функцией run () тестировании (ошибки и исключения), заносятся в объект типа TestResult. Для вывода результатов
используется классы, наследованные от класса Outputter:
CompilerOutputter – для связи с интегрированной средой разработки,
TextOutputter – для простого текстового вывода результатов, и XmlOutputter – для вывода результатов в формате XML.
Постановка задачи
Итак, приступим. Например, мы разрабатываем некое приложение и нам нужно создать класс комплексного числа (используем пример, поставляемый
вместе с CppUnit), и тесты к этому классу. Мы специально берём такой
простой пример, чтобы сосредоточится на процессе тестирования и не отвлекаться на сложность приложения.
Как поступают при традиционных методах разработки? Проектируется
класс, его интерфейс, члены, методы, это всё реализуется в коде, и дальше проверяется в работе. Если работает и нету «багов», то всё окей.
В экстремальном программировании мы вначале концентрируемся на задачах класса: что мы хотим получить от его функционирования, какую
роль он должен выполнять. Отсюда вытекает интерфейс класса и тесты,
призванные доказать правильность его функционирования.
Построение простейших тестов
Перейдём к практике. Допустим, нам нужно протестировать наш код,
чтобы быть уверенным в его работе. Для этого нужно наследовать свой
класс от класса CppUnit::TestCase, и переопределить виртуальную функцию
runTest (). Для проверки логических значений используется макрос
CPPUNIT_ASSERT (bool). Чтобы проверить опе-ратор равенства для класса
комплексных чисел, можно использовать следующий код.
class ComplexNumberTest : public CppUnit::TestCase {
public:
ComplexNumberTest (std::string name)
: CppUnit::TestCase (name) {}
void runTest () {
CPPUNIT_ASSERT (Complex (10, 1) == Complex (10, 1)) ;
CPPUNIT_ASSERT (! (Complex (1, 1) == Complex (2, 2))) ;
}
};
Сейчас, если мы попробуем откомпилировать этот пример, мы получим
минимум два сообщения об ошибках: у нас не определён класс Complex и оператор == для него. Без проблем, добавим пустышки, которые позволят
откомпилировать проект:
class Complex
{
friend static bool operator== (const Complex& lhs, const Complex& rhs);
};
bool operator== (const Complex& lhs, const Complex& rhs)
{
return true;
}
Теперь проект откомпилируется, но если мы попробуем запустить тесты,
то они выдадут ошибку. Чтобы они давали «зелёный свет», нужно написать
нормальный оператор ==:
class Complex
{
public:
Complex (double r, double i = 0) : real®, imag (i) { }
friend static bool operator== (const Complex& lhs, const Complex& rhs);
private:
double real;
double imag;
};
bool operator== (const Complex& lhs, const Complex& rhs)
{
return ( (lhs.real == rhs.real) && (lhs.imag == rhs.imag));
}
Если мы теперь откомпилируем и запустим наш проект, то тесты сработают.
Добавим оператор сложения для нашего класса комплексных чисел. На этом этапе нам можно будет воспользоваться свойствами TestFixture. Для этого нам нужно наследоваться от этого класса, либо от класса TestCase (см. диаграмму классов – рис. 1), завести переменные для экземпляров
нашего класса и переопределить функции setUp () и tear-Down ():
class ComplexTestCase : public TestCase
{
private:
Complex *m_10_1, *m_1_1, *m_11_2;
public:
void setUp ()
{
m_10_1 = new Complex (10, 1) ;
m_1_1 = new Complex (1, 1) ;
m_11_2 = new Complex (11, 2) ;
}
void tearDown ()
{
delete m_10_1;
delete m_1_1;
delete m_11_2;
}
};
Теперь, когда у нас есть объекты, как же организовать проверку
отдельных тестовых случаев, проверяющих какие-то отдельные свойства
объекта? Это делается при помощи TestFixture и TestCaller. Нужно
завести в классе, наследованным от TestFixture (TestCase), функцию для тестового случая, и создать при помощи TestCaller из этой функции
экземпляр класса TestCase.
class Complex
{
public:
Complex (double r, double i = 0) : real®, imag (i) { }
Complex operator + (const Complex& other);
friend static bool operator== (const Complex& lhs, const Complex& rhs);
private:
double real;
double imag;
};
Complex Complex::operator + (const Complex &other)
{
Complex result (real + other.real, imag + other.imag);
return result;
}
bool operator== (const Complex& lhs, const Complex& rhs)
{
return ( (lhs.real == rhs.real) && (lhs.imag == rhs.imag));
}
class ComplexTestCase : public TestCase
{
private:
Complex *m_10_1, *m_1_1, *m_11_2;
public:
void setUp ()
{
m_10_1 = new Complex (10, 1) ;
m_1_1 = new Complex (1, 1) ;
m_11_2 = new Complex (11, 2) ;
}
void tearDown ()
{
delete m_10_1;
delete m_1_1;
delete m_11_2;
}
void testEquality ()
{
CPPUNIT_ASSERT (*m_10_1 == *m_10_1) ;
CPPUNIT_ASSERT (! (*m_10_1 == *m_11_2)) ;
Complex* pTest = new Complex (10, 1);
CPPUNIT_ASSERT_EQUAL (*m_10_1, *pTest);
}
void testAddition ()
{
Complex test_11_2 = *m_10_1 + *m_1_1;
CPPUNIT_ASSERT (*m_10_1 + *m_1_1 == *m_11_2) ;
CPPUNIT_ASSERT_EQUAL (test_11_2, *m_11_2);
}
};
Мы добавили оператор сложения в класс Complex и функции, тестирующие
опера-тор равенства (testEquality ()) и сложения (testAddition ()) в класс ComplexTestCase. Теперь, мы можем создать единичный тестовый
случай для функции testEquality (), например:
CppUnit::TestCaller<ComplexNumberTest> test ( «testEquality»,
&ComplexNumberTest::testEquality) ;
CppUnit::TestResult result;
test.run (&result) ;
Создание иерархий тестов
Теперь, когда у нас есть все нужные нам тесты, как сделать так чтобы
они все вызывались автоматически? Или как составить несколько иерархий
тестов, чтобы можно было легко между ними переключаться? Для этого
используется класс TestSuite. Он представляет собой контейнер
указателей на объекты типа Test.
Вот как это делается:
CppUnit::TestSuite suite;
CppUnit::TestResult result;
suite.addTest (new CppUnit::TestCaller<ComplexNumberTest> (
«testEquality»,
&ComplexNumberTest::testEquality)) ;
suite.addTest (new CppUnit::TestCaller<ComplexNumberTest> (
«testAddition»,
&ComplexNumberTest::testAddition)) ;
suite.run (&result) ;
Объекту типа TestSuite можно передавать не только указатели на TestCase, но и на любые объекты типа Test, в том числе и на сами
объекты типа TestSuite.
Для сбора и выдачи результатов используется класс TestRunner.
Например, в нашем случае можно для удобства поместить код создания
TestSuite в класс ComplexNum-berTest:
public:
static CppUnit::Test *suite ()
{
CppUnit::TestSuite *suiteOfTests = new CppUnit::TestSuite (
«ComplexNumberTest») ;
suiteOfTests→addTest (new CppUnit::TestCaller<ComplexNumberTest> (
«testEquality»,
&ComplexNumberTest::testEquality)) ;
suiteOfTests→addTest (new CppUnit::TestCaller<ComplexNumberTest> (
«testAddition»,
&ComplexNumberTest::testAddition)) ;
return suiteOfTests;
}
А потом в функции main использовать TestRunner:
int main (int argc, char **argv)
{
CppUnit::TextUi::TestRunner runner;
runner.addTest (ExampleTestCase::suite ()) ;
runner.addTest (ComplexNumberTest::suite ()) ;
runner.run ();
return 0;
}
TestRunner выполнит все тесты. Если всё окей, то он выдаст
соответствующее сообщение, если же что-то не так, будет выдана
следующая информация:
Имя тестового случая (TestCase), который не выполнился;
Имя файла, который содержал тест;
Номер строки, в которой произошел сбой/ошибка;
Весь код, который находился в скобках макроса CPPUNIT_ASSERT ().
CppUnit различает два типа неполадок: сбои и ошибки. Сбоем считается
сбой, который был предусмотрен макросом CPPUNIT_ASSERT (). Ошибками
называются непредусмотренные проблемы, такие как деление на ноль, или
исключения C++.
Интеграция с процессом сборки
Теперь, когда у нас есть наши тесты, почему бы не соединить их с процессом сборки приложения? Для этого нужно сделать так, чтобы наше
тестовое приложение возвра-щало бы ненулевое значение при ошибке:
int main (int argc, char **argv)
{
CppUnit::TextUi::TestRunner runner;
runner.addTest (ExampleTestCase::suite ()) ;
runner.addTest (ComplexNumberTest::suite ()) ;
bool wasSuccessful = runner.run ();
return wasSuccessful;
}
Теперь нужно, чтобы приложение выполнялось после компиляции.
Например, в Visual C++ это можно сделать, в разделе Project
Settings/Post-build steps
Резюме
Вот, собственно, и всё для начала. Надеюсь, этого маленького эссе
вам хватит, для того, чтобы начать работу с CppUnit. Эта библиотека, на самом деле немного сложнее, и гораздо более функциональней, чем может
показаться после прочтения данной статьи. Однако нашей целью было
познакомить вас с библиотекой, а не писать подробное руководство.
Надеюсь, нам это удалось. Удачи и успехов!
Обязательно к прочтению:
ClearCase — система конфигурационного и версионного контроля
Управление изменениями, тестированием и документированием с использованием технологий Rational
Что такое RUP
Проблемы разработки ПО
Осознание необходимости в УК
Подробно о наc читайте здесь
Полезные ссылки
Вот несколько полезных ссылок, которые вам будут необходимы, если вы будете разрабатывать проекты по методологии XP:
Страничка проекта CppUnit, здесь можно скачать библиотеку:
http://sourceforge.net/projects/cppunit
Документация по CppUnit:
http://cppunit.sourceforge.net/
Сайт JUnit, ресурсы по тестированию для XP:
http://www.junit.org/
Сайты по XP:
http://www.extremeprogramming.org/
http://www.xprogramming.com/
Сайт IBM Rational:
www.ibm.com
18.02.2008
Комментарии
- EijJpWhPrGjixW
Автор: NPsa4C , [url=http://pdbhemoxkmgv.com/]pdbhemoxkmgv[/url], [link=http://knzsbdbgptfk.com/]knzsbdbgptfk[/link], http://kenustkmmkwt.com/ · 23.01.2012 13:11:22 NPsa4C , [url=http://pdbhemoxkmgv.com/]pdbhemoxkmgv[/url], [link=http://knzsbdbgptfk.com/]knzsbdbgptfk[/link], http://kenustkmmkwt.com/ - kbsCtsGlfMT
Автор: qg6NOR aaooiiiybxte · 21.01.2012 12:50:49 qg6NOR aaooiiiybxte - xvEGkslElAjL
Автор: KBfaID , [url=http://oicjgkmxuqtk.com/]oicjgkmxuqtk[/url], [link=http://ypbxdosmisvx.com/]ypbxdosmisvx[/link], http://zujuemjjnvjb.com/ · 20.01.2012 17:53:57 KBfaID , [url=http://oicjgkmxuqtk.com/]oicjgkmxuqtk[/url], [link=http://ypbxdosmisvx.com/]ypbxdosmisvx[/link], http://zujuemjjnvjb.com/ - TMsSqUPqaQQpm
Автор: TNmoxD ilfbfgjghbzv · 20.01.2012 11:46:14 TNmoxD ilfbfgjghbzv - jDbOUhxapiWZUKjC
Автор: BION I'm ipmressed! Cool post! · 19.01.2012 07:03:54 BION I'm ipmressed! Cool post! - Really need some help about the iphone casino.
Автор: · 09.01.2012 13:37:00 Hello guys,
Just obtained my 1st iphone and truly like it, however this is a different story. The idea is, I wish to test some of those iphone casino things and basically don't know where to begin. I understand, I may Google and bing something, but I would prefer to get some really good guidelines from unbiased people.
My question goes: which type of iphone casino games could you highly recommend? As far as I know one can find applications that you have to download and install and casinos that may be used with no installing. So which of them would you recommend as a better way of gambling on iPhone? I'd additionally appreciate it if you guys give your reasons.
In case it is necessary: my iphone is iphone 4s and I mean to gamble for real.
Adios for now. - bLsrKTnedy
Автор: m6O3DQ nkwopuahmifz · 25.09.2011 20:55:19 m6O3DQ nkwopuahmifz - sQTJBWXmjVPYchXIGdA
Автор: 8i9lEX , [url=http://gnqliqjaermp.com/]gnqliqjaermp[/url], [link=http://myodbqgegfyt.com/]myodbqgegfyt[/link], http://cylvebefaano.com/ · 23.09.2011 16:59:43 8i9lEX , [url=http://gnqliqjaermp.com/]gnqliqjaermp[/url], [link=http://myodbqgegfyt.com/]myodbqgegfyt[/link], http://cylvebefaano.com/ - JOkQCrxXaMccjWNpYx
Автор: VgXrCR rmthnzcacnhi · 22.09.2011 21:19:18 VgXrCR rmthnzcacnhi - NduvcmracnO
Автор: Very valid, pithy, suiccnct, and on point. WD. · 21.09.2011 16:49:19 Very valid, pithy, suiccnct, and on point. WD. - Привлеку вам клиентов
Автор: · 27.10.2010 10:46:33 Привет!
Админы, простите, если не в тот раздел - но кажется пользователей может заинтересовать мое сообщение.
Скорее всего вы сталкивались с предложением продвижения сайтов, однако не до конца было ясно, какой будет итог этого продвижения.
РќР° своем опыте продвижения сайтов Рё опыте продаж - придумал пакет , РїСЂРё котором Р·Р° 5000 рублей РІ месяц СЏ продвигаю РІР°С? сайт РїРѕ 30 поисковым запросам, СЃ которых РІС‹ получаете 15-35 посетителей РІ сутки, Р° РѕРїСЂРѕСЃС‹ существующих клиентов показывают, что каждый 30-ый посетитель - соверС?ает Р·РІРѕРЅРѕРє.
Раскрутка ведется по коммерческим низкоконкурентным (которые мы с вами согласовываем), что делает сроки продвижения минимальными - от 2 до 6 недель.
Также возможно заключение договора (с юр лицом) и указать, что в случае неудачного продвижения - я возвращаю вам вложенные вами деньги.
Кроме того занимаюсь разработкой сайтов от 7000 рублей (включен домен, хостинг, дизайн, админка, модули новости/статьи/галерея).
Надеюсь заинтересовал, буду рад сотрудничеству!
Телефон: +7(495)226-0484
E-mail: info@websoft.su
ICQ: 439952577
Skype: pitkovich
Более РїРѕРґСЂРѕР±РЅРѕ РЅР° РЅР°С?ем сайте:
уссурийск создание сайтов
Продвижение:
поисковое продвижение сайтов петербург - Дизайн интерьеров
Автор: · 21.10.2010 19:13:37 дизайн интерьера холла, интересный дизайн интерьера, красивый дизайн интерьера, дизайн интерьера частного РґРѕРјР°, дизайн интерьера РІ панельном РґРѕРјРµ, внутренний дизайн интерьера, дизайн интерьера прихожей квартиры фото, дизайн интерьера квартир перепланировка
http://www.Max-Dvizov.RU
моб.тел. в Москве 8 (926) 444-14-43 - Ремонтные работы
Автор: · 20.10.2010 12:08:34 отделка балконов Рё лоджий РІ РјРѕСЃРєРІРµ, отделка лоджий цены, отделка лоджий РІ РјРѕСЃРєРІРµ, отделка лоджий РІ балаС?РёС…Рµ, отделка лоджий Рё балконов, ремонт квартир РїРѕРґ ключ недорого
http://www.RSMMD.RU/
8 (926) 444-14-43 - Ремонтируем духовые инструменты, а также даем мастер-классы!
Автор: · 14.09.2010 00:59:35 Мастерская РїРѕ ремонту музыкальных духовых инструментов РЅР° РљСѓСЂСЃРєРѕР№.
Гарантия на ремонт - 1 год.
Наличный и безналичный расчёт. Возможна рассрочка.
Купим любые музыкальные духовые инструменты в любом состоянии.
Уроки проводятся по догворённости в любое время и в любом месте. Обучение в любом возрасте, а также с нуля.
Для всех желающих освоить и познакомиться с любым духовым инструментом:
Бесплатные мастер-классы проводятся еженедельно в г.Москве по адресу м.Павелецкая, ул.Дербенёвская 20 (территория комплекса Бесплатных Муз.Реп.Баз). Записаться на мастер-класс, а так же уточнить подробную информацию можно по телефону или электронной почте.
http://www.WindBand-Master.RU/
Ремонт:
windband-service@mail.ru
+7 926 119 08 44
Мастер-класс:
+7 926 604 23 54
+7 909 151 29 39
windband-master@mail.ru
ремонт саксофона,
ремонт флейты,
ремонт кларнета - Есть помещение в аренду
Автор: · 13.09.2010 10:24:45 Сдаю РІ Аренду (собственник) нежилое помещение 400 РєРІ.Рј. для использования РІ свободных целях РІ кирпичном отапливаемом здании расположенном РЅР° закрытой охраняемой территории СЃ удобным подъездом РїРѕ адресу Московская область, РїРѕСЃ.Томилино, СѓР».ГарС?РёРЅР° Рґ.9Рђ ( 9 РєРј.РѕС‚ РњРљРђР”, 200 метров РѕС‚ Егорьевского С?РѕСЃСЃРµ).
Так же имеются технические и подсобные помещения. Произведён косметический ремонт.
Тел. в Москве (495) 557-70-33, тел. в п.Томилино (4985) 53-84-40 (Галина Николаевна или Александр Юрьевич).
Звонить РІ рабочее время. Автор: Олег · 28.06.2010 13:48:41 Работал я с CppUnit. Позже пришел к выводу,
что Boost.test в работе гораздо более эффективна - код проще и понятнее, нету
лишней возни с подключением lib-ов и
сборкой всех этих testrunner-ов.
Сравните сами:
//////////////////
/// CppUnit ///
//////////////////
int main(int argc, char* argv[])
{
CppUnit::Test *suite = CppUnit::TestFactoryRegistry::getRegistry().makeTest();
CppUnit::TextUi::TestRunner runner;
runner.addTest( suite );
runner.setOutputter( new CppUnit::CompilerOutputter( &runner.result(), std::cerr ) );
bool wasSucessful = runner.run();
return wasSucessful ? 0 : 1;
}
/////////////////////
/// Boost.test ///
/////////////////////
BOOST_AUTO_TEST_CASE(mul_test_case)
{
BOOST_CHECK(mul(2 * 2) == 4);
}- Замечание
Автор: Shuvalov · 30.06.2008 14:57:26 Не очень понравился пример, потому что:
- не увидел приложенных исходников
- при кажущейся ориентации на новичков опущены выжные детали :
"Если мы теперь откомпилируем и запустим наш проект, то тесты сработают." - это не дело.
Так что прохожу cppunit по cookbook
Добавить комментарий (анонимные комментарии не публикуются!!!)
Новости и пресс-релизы СМ-Консалт
21.02.2012 12:42:20 Новая статья: IT и психология. Человеческий фактор в парном программировании: почему многие не получают желаемого от его внедрения?
Статья, находящаяся перед вами, открывает цикл статей о человеческом
факторе, Agile-практиках и других полезных приемах, используемых при
управлении командами в ИТ. Объединяет рассматриваемые практики и приемы
одно – они позволяют проявиться положительным эффектам, связанным с
человеческим фактором. И мы объясняем, почему с точки зрения психологии,
это происходит. Так сказать, подводим теоретическую и экспериментальную
базу под то, что себя уже давно зарекомендовало и работает. Или под то,
что работает не у всех, и потому является предметом оживленных споров и
дискуссий. И начинаем мы наши исследования с рассмотрения эффекта
парного программирования через призму экспериментов социальной
психологии.
Отдельную благодарность за рецензию и время, потраченное на прочтение
первого варианта статьи, выражаем Асхату Уразбаеву,
ценные замечания которого позволили не только улучшить данную статью,
но и позволили убедиться в необходимости и востребованности именно цикла
статей!
Читать -->
27.12.2011 16:15:27 Компания "СМ-Консалт" получила отзыв о работах в Федеральной Налоговой Службе (ГНИВЦ ФНС)
Специалистами ООО «СМ-Консалт» в 2010-2011г. был выполнен проект
по настройке и внедрению системы управления жизненным циклом разработки
программных систем в части управления изменениями и конфигурациями на
основе Microsoft Visual Studio Team Foundation Server 2010 для
Филиала Федерального государственного унитарного предприятия «Главный
научно-исследовательский вычислительный центр Федеральной налоговой
службы» в Приволжском Федеральном округе (Филиал ФГУП ГНИВЦ ФНС России в
ПФО).
28.11.2011 15:05:11 Новая статья: "Всегда ли «Да» – это «Да»? Или как нас вынуждают принимать решения"
Мы предлагаем вашему вниманию цикл статей, в основу которых положены
психологические практики и приемы, позволяющие влиять на решения,
принимаемые людьми. Эта идея была логическим продолжением ряда
выступлений с докладами о коммуникациях в проектах разработки и
внедрения ПО. Давайте, не откладывая в долгий ящик, начнем с самого
простого приема убеждения, с которым сталкиваемся ежедневно в магазинах,
в транспорте, в разговорах с коллегами… да мало ли где еще!
Авторы: Новичков Александр и Карабанова Галина.
Читать -->
10.10.2011 11:16:06 Компания «СМ-Консалт» открывает новое направление продаж - ПО Adobe Connect
Программное обеспечение Adobe Connect является гибкой системой
web-коммуникации с высоким уровнем информационной безопасности. Adobe
Connect предоставляет такие важнейшие функции корпоративного
взаимодействия, как деловое общение и совместная работа сотрудников на
уровне предприятий, дистанционное обучение, организация широкомасштабных
сетевых семинаров и презентаций. Система Adobe Connect базируется на
технологии Adobe Flash, а также Air, и поэтому позволяет подключать
сотрудников к единому пространству взаимодействия через web-браузер с
любых устройств.
17.09.2011 21:40:22 Новая статья: "Разработка прикладного программного обеспечения с использованием Rational Unified Process на Иркутском Авиационном заводе"

На сайте СМ-Консалт открыт новый раздел Статьи наших заказчиков об успешных внедрениях IBM Rational и Microsoft. Статьи для данного раздела пишутся нашими заказчиками и рассказывают о сути проектов внедрения технологий IBM и Microsoft. Первая статья, представленная вашему вниманию написана сотрудниками Иркутского Авиационного Завода (ИАЗ).
Иркутский авиазавод имеет длительный опыт разработки программного
обеспечения для информационной поддержки ключевых бизнес-процессов
предприятия. Однако, в связи с увеличивающейся сложностью и повышением
требований к разрабатываемому программному обеспечению, возникла
настоятельная необходимость усовершенствовать процесс разработки:
повысить качество разрабатываемых программных продуктов,
стандартизировать процесс с увеличением его эффективности.
С целью повышения качества программного обеспечения собственной
разработки и сокращения сроков разработки руководство Управления
информационных технологий (УИТ) Иркутского Авиационного Завода в 2006г. приняло решение о внедрении технологии разработки ПО на базе методологии Rational Unified Process и с использованием инструментов автоматизации IBM Rational.
13.09.2011 12:07:29 Новый тренинг «Коммуникации и психология межличностных отношений в ИТ-проектах»

Компания «СМ-Консалт» представляет новый тренинг, организуемый совместно с компанией «КарьерKаб» - «Коммуникации
и психология межличностных отношений в ИТ-проектах.
Тренинг позволит понять, насколько коммуникации в проектах важнее инструментов, что люди и их взаимоотношения зачастую оказываются решающим фактором, определяющим успех проекта. Если более пятидесяти процентов рабочего времени вы тратите на взаимодействие с заказчиком, если вам небезразлична судьба вашей команды и вы хотите, чтобы ваша команда работала как часы, реализуя проекты точно, вовремя и без перерасхода ресурсов - наш тренинг поможет в этом.
01.08.2011 17:44:25 Наша компания получила отзыв о сотрудничестве с ОАО «Нордеа Банк»

В 2010-2011 гг. наши специалисты провели в Нордеа Банке проект по предварительному обследованию, развертыванию инструментальных средств и ряд тренингов по обучению методологии и работе с продуктами IBM Rational: «Методология разработки программных систем IBM Rational Unified Process», «Управление требованиями с использованием IBM Rational RequisitePro», «Управление изменениями в IBM Rational ClearQuest».
24.06.2011 01:27:57 Бесплатный семинар-вебинар «Повышение эффективности IT подразделений и качества разрабатываемого ПО с использованием современных методологий и технологий»
Компании СМ-Консалт , Legal SoftWaveTM и DNA приглашают Вас посетить бесплатный семинар-вебинар, посвященный обзору технологий и методологий, которые позволяют повысить эффективность ИТ подразделений. На семинаре рассматриваются технологии IBM Rational, Microsoft TFS, а также системы аналитической обработки информации (Business Intelligence) (IBM SPSS, Deductor, QlikView и другие).
Планируемая продолжительность семинара - 8 академических часов.
Место проведения: Санкт-Петербург (очно) и Интернет (для всех желающих: приходите сами и приглашайте друзей!).
Дата и время: 14 июля 2011 в 9 00.
ВНИМАНИЕ: если вы не сможете очно приехать на семинар - это не страшно, так как семинар будет транслироваться через интернет в формате вебинара и к нему, после регистрации, смогут присоединиться все желающие. Трансляция будет осуществляться посредством технологии Adobe Connect Pro , это позволит Вам присоединяться к конференции без установки дополнительного ПО - только интернет браузер.
Смотреть программу -->
07.06.2011 13:02:44 Компания "СМ-Консалт" провела серию успешных семинаров для ГНИВЦ ФНС России

Проведенные семинары были посвящены средствам разработки и тестирования программного обеспечения компании Майкрософт для сотрудников ГНИВЦ ФНС России. Слушатели семинаров отметили высокую квалификацию тренеров компании "СМ-Консалт" по организации учебного процесса и повышению квалификации специалистов, прошедших обучение.
Индивидуальный подход при решении любых вопросов, возникающих в процессе обучения, оперативность принятия решений, гарантированное выполнение взятых на себя обязательств и профессионализм позволили провести обучение на самом высоком уровне.
07.12.2010 12:28:15 Мы идем в Твиттер!

Наша компания открыла аккаунт в системе микроблоггинга Twiter.Теперь все официальные и неофициальные новости будут появляться в нашей ленте в Twitter.
Там же возможно будет задать прямые вопросы специалистам СМ-Консалт, по всем вопросам, связанным как с деятельностью компании, так и с техническими аспектов продуктов IBM и собственных решений СМ-Консалт.
Следуйте за нами!
https://twitter.com/cmconscom
11.11.2010 14:14:14 Осенний марафон Microsoft ALM Road Show
Компания СМ-Консалт совместно с образовательным центром Careerlab провели серию семинаров в рамках мероприятий ALM Roadshow 2.0 в крупнейших городах, расположенных на Волге, – крупных научных центрах, в которых ИТ технологии находятся на высоком уровне. Семинары прошли в Самаре, Нижнем Новгороде и Казани. Cеминары были посвящены использованию новых инструментов MS Visual Studio Team System в проектах разработки ПО.
В семинарах принимали участие представители различных ролей процесса разработки ПО: от разработчиков до руководителей предприятий различного уровня. Темы, обсуждаемые в ходе семинара, вызвали большой интерес аудитории и немалое количество вопросов, на которые были предоставлены исчерпывающие ответы. В процессе семинара также было показано большое количество примеров, которые дают представление о возможностях инструментов MS Team System. Средняя оценка за семинар составила 4,6 балла по пятибальной шкале
08.09.2010 18:37:52 Скидки до 30% на программное обеспечение IBM Rational

Компания СМ-Консалт предлагает для всех желающих на льготных условиях приобрести программное обеспечение IBM Rational. Снижение цен связано с тем, что мы стараемся быть как можно ближе к нашим клиентам, многие из которых постепенно начали преодолевать последствия финансового кризиса.Наше предложение поможет с минимальными издержками приобрести ПО IBM Rational, что является хорошим капиталовложением.
Скидки до 1 декабря 2010 года:
- 20% скидки при покупке IBM Rational ClearCase, ClearQuest, CearCase LT, при приобретении пяти и более лицензий*;
- 30% скидки при покупке пяти любых продуктов IBM Rational + решение или тренинг СМ-Консалт*.
Для получения деталей обязательно свяжитесь с нашими менеджерами
|