SlideShare uma empresa Scribd logo
1 de 23
Unit-test
быстрый старт

разработано WebGloss
Разработка и отладка тестов

IDE
Тест
разрабатывается в
IDE, затем по
средствам IDE тест
заливается на
тестовый сервер

ssh
Пробные запуски
тестов выполняются
на сервере через
ssh.

разработано WebGloss
Термины
●
●

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

разработано WebGloss
Термины
●
●
●
●

тестсюит - набор тесткейсов
фикстура - начальный набор данных
пограничные ситуации – случае, когда тестируемый код может работать неверно
тестовое окружение (fixture) - параметры тестируемой среды называются

разработано WebGloss
Структура репы

/root
src

Тестируемый код

test
conf

Конфиги для запуска тестов

source

Файлы с тестами. Внутри source
файловая архитектура такаяже как
и в src
разработано WebGloss
Пример файловой архитектуры

commandsutilsdatetimenext_working_day.php
testssourcecommandsutilsdatetimeNext_workin
g_dayTest.php
Если на класс Next_working_day написать ещё один тест,
то оба теста нужно полжить в папку Next_working_day:
testssourcecommandsutilsdatetimeNext_working_day/Next_
working_dayTest1.php
testssourcecommandsutilsdatetimeNext_working_day/Next_
working_dayTest2.php
разработано WebGloss
Этапы процесса Unit тестирования

1) Создание теста

2) Вкладка теста в VCS

3) Создание билда в
CI (Continuous
Integration)

разработано WebGloss
Этапы процесса Unit тестирования

4) Запуск Unit тестов в
нужном окружении.

5) Просмотр и анализ
результатов.

разработано WebGloss
Базовые соглашения

1. Тесты для класса DemoClass содержатся в классе
DemoClassTest.
2. DemoClassTest унаследован (чаще всего) от
PHPUnit_Framework_TestCase.
3. Тесты это публичные методы с именами test* (кроме
этого, можно использовать аннотацию @test в
док-блоке чтобы пометить метод как тест)
4. Внутри тестовых методов для проверки того что
реальные данные соответствуют ожидаемым
используются методы-утверждения (assertion
methods)
разработано WebGloss
Межтестовые зависимости

Использвание аннотации @depends для описания
зависимостей
class DependencyFailureTest extends PHPUnit_Framework_TestCase
{
public function testOne()
{
$this->assertTrue(FALSE);
}
/**
* @depends testOne
*/
public function testTwo()
{ }
}
разработано WebGloss
Провайдеры данных

Метод провайдера данных должен быть public и возвращать
либо массив массивов либо объект реализующий интерфейс
Iterator
class DataTest extends PHPUnit_Framework_TestCase
{
/**
* @dataProvider provider
*/
public function testAdd($a, $b, $c) {
$this->assertEquals($c, $a + $b);
}
public function provider() {
return array(
array(0, 0, 0),
array(0, 1, 1),
array(1, 0, 1),
array(1, 1, 3)
);
}
}

разработано WebGloss
Тестирование исключений

С помощью аннотации @expectedException можно
проверить было ли вызвано исключение в тестируемом
коде
class ExceptionTest extends PHPUnit_Framework_TestCase
{
/**
* @expectedException InvalidArgumentException
*/
public function testException()
{
}
}
Дополнительно можно использовать @expectedExceptionMessage и
@expectedExceptionCode в сочетании с @expectedException для проверки
сообщений и кодов исключений.
разработано WebGloss
Утверждения (Assertions)
assertArrayHasKey()
assertClassHasAttribute()
assertClassHasStaticAttribute()
assertContains()
assertContainsOnly()
assertContainsOnlyInstancesOf()
assertCount()
assertEmpty()
assertEqualXMLStructure()
assertEquals()
assertFalse()
assertFileEquals()
assertFileExists()
assertGreaterThan()
assertGreaterThanOrEqual()
assertInstanceOf()
assertInternalType()
assertJsonFileEqualsJsonFile()
assertJsonStringEqualsJsonFile()
assertJsonStringEqualsJsonString()

assertLessThan()
assertLessThanOrEqual()
assertNull()
assertObjectHasAttribute()
assertRegExp()
assertStringMatchesFormat()
assertStringMatchesFormatFile()
assertSame()
assertSelectCount()
assertSelectEquals()
assertSelectRegExp()
assertStringEndsWith()
assertStringEqualsFile()
assertStringStartsWith()
assertTag()
assertThat()
assertTrue()
assertXmlFileEqualsXmlFile()
assertXmlStringEqualsXmlFile()
assertXmlStringEqualsXmlString()
Утверждения (Assertions)

1.
2.
3.

assertEmpty(mixed $actual[, string $message = ''])
assertEquals(mixed $expected, mixed $actual[, string $message = ''])
assertCount($expectedCount, $haystack[, string $message = ''])
Сообщает об ошибке $message если количество элементов в
$haystack не равно $expectedCount.

4.

assertArrayHasKey(mixed $key, array $array[, string $message = ''])
Сообщает об ошибке $message если $array не содержит ключа $key.
assertArrayNotHasKey() утверждает обратное и принимает тот же
набор аргументов

5.

assertXmlStringEqualsXmlString(string $expectedXml, string
$actualXml[, string $message = ''])

6. ...
разработано WebGloss
Пример результата теста
phpunit DataTest
class DataTest extends PHPUnit_Framework_TestCase{
PHPUnit 3.7.0 by Sebastian Bergmann.
/**
* @dataProvider provider
...F
*/
public function testAdd($a, $b, $c){
$this->assertEquals($c, $a + $b); Time: 0 seconds, Memory: 5.75Mb
}

public function provider(){
return array(
array(0, 0, 0),
array(0, 1, 1),
array(1, 0, 1),
array(1, 1, 3)
);
}
}

There was 1 failure:
1) DataTest::testAdd with data set #3 (1, 1,
3)
Failed asserting that 2 matches expected
3.
/home/sb/DataTest.php:9
FAILURES!
Tests: 4, Assertions: 4, Failures: 1.
Последовательный вызов
1.
2.
3.
4.
5.
6.
7.
8.

__construct
setUpBeforeClass
setUp
assertPreConditions
assertPostConditions
tearDown
onNotSuccessfulTest
tearDownAfterClass

разработано WebGloss
class TemplateMethodsTest extends PHPUnit_Framework_TestCase{
public static function setUpBeforeClass() {
fwrite(STDOUT, __METHOD__ . "n");
}
protected function setUp() {
fwrite(STDOUT, __METHOD__ . "n");
}
protected function assertPreConditions() {
fwrite(STDOUT, __METHOD__ . "n");
}
public function testOne() {
fwrite(STDOUT, __METHOD__ . "n");
$this->assertTrue(TRUE);
}
protected function assertPostConditions() {
fwrite(STDOUT, __METHOD__ . "n");
}
protected function tearDown() {
fwrite(STDOUT, __METHOD__ . "n");
}
public static function tearDownAfterClass() {
fwrite(STDOUT, __METHOD__ . "n");
}
protected function onNotSuccessfulTest(Exception $e) {
fwrite(STDOUT, __METHOD__ . "n");
throw $e;
}
}

разработано WebGloss
Последовательный вызов

Вывод:
TemplateMethodsTest::setUpBeforeClass
TemplateMethodsTest::setUp
TemplateMethodsTest::assertPreConditions
TemplateMethodsTest::testOne
TemplateMethodsTest::assertPostConditions
TemplateMethodsTest::tearDown
TemplateMethodsTest::setUp
TemplateMethodsTest::assertPreConditions
TemplateMethodsTest::testTwo
TemplateMethodsTest::tearDown
TemplateMethodsTest::onNotSuccessfulTest
TemplateMethodsTest::tearDownAfterClass

разработано WebGloss
Примеры тестов
class ClsUtilsTest extends PHPUnit_Framework_TestCase {
/**
* @var Util
*/
protected $util;
protected function setUp() {
$this->util = Util();
}
public function testToUpper() {
$link = mysql_connect('', '', '');
$this->assertTrue($link, 'Ошибка соединения: ' . mysql_error());
mysql_close($link);
$this->assertEquals($this->util->toUpper('абв'), 'АБВ');
}
public function testToLower() {
$this->assertEquals($this->util->toLower('ABC'), 'abc');
}
public function testCheckEmail() {
$this->assertEquals($this->util->checkEmail('gref@mail.ru'), 'gref@mail.ru');
}
}

разработано WebGloss
Неожиданность

По умолчанию, PHPUnit выполняет тесты таким
образом, что изменение глобальных и суперглобальных
переменных:
● $GLOBALS
● $_ENV
● $_POST
● $_GET
● $_COOKIE
● $_SERVER
● $_FILES
● $_REQUEST
не влияет на другие тесты (очищаються)
разработано WebGloss
Передача параметров
Варианты:
1.
Статические атрибуты классов
2.
Подход "источник-приемник" с использованием аннотации @depends
public function testEmpty()
return $stack;
}
/**
* @depends testEmpty

3.

*/

public function testPush(array $stack)

Атрибут $sharedFixture доступен во всех объектах классов

разработано WebGloss
Вопросы на проработку
1.
2.
3.
4.
5.

PHPUnit_Framework_TestSuite - класс позволяет организовать набор тестов в
иерархическом порядке
Assert`ы самые нужные
Объекты: Mocks, Stubs, Fakes and Spies
Приемочные и модульные тесты, снижение зависимостей
TDD - программирование через тестирование

разработано WebGloss
Полезные сылки
●
●
●

http://phpunit.de/manual/3.5/en/ - сайт разработчика
http://www.smartyit.ru/php/85 - перевод
http://wiki.agiledev.ru/doku.php?id=tdd - про TDD

разработано WebGloss

Mais conteúdo relacionado

Mais procurados

Rambler.iOS #3: Test-Driven Development в iOS
Rambler.iOS #3: Test-Driven Development в iOSRambler.iOS #3: Test-Driven Development в iOS
Rambler.iOS #3: Test-Driven Development в iOSRAMBLER&Co
 
Использование юнит-тестов для повышения качества разработки
Использование юнит-тестов для повышения качества разработкиИспользование юнит-тестов для повышения качества разработки
Использование юнит-тестов для повышения качества разработкиvictor-yastrebov
 
Selenium: начало работы
Selenium: начало работыSelenium: начало работы
Selenium: начало работыPaul Stashevsky
 
Java осень 2014 занятие 7
Java осень 2014 занятие 7Java осень 2014 занятие 7
Java осень 2014 занятие 7Technopark
 
Архитектура. Доступноять программных систем.
Архитектура. Доступноять программных систем.Архитектура. Доступноять программных систем.
Архитектура. Доступноять программных систем.Dima Dzuba
 
Testing RIA with Selenium
Testing RIA with SeleniumTesting RIA with Selenium
Testing RIA with SeleniumSergey Shvets
 
Pycon Russia 2013 - Разработка через тестирование в Python и Django
Pycon Russia 2013 - Разработка через тестирование в Python и DjangoPycon Russia 2013 - Разработка через тестирование в Python и Django
Pycon Russia 2013 - Разработка через тестирование в Python и DjangoIlya Shalyapin
 
Оптимизация трассирования с использованием Expression templates
Оптимизация трассирования с использованием Expression templatesОптимизация трассирования с использованием Expression templates
Оптимизация трассирования с использованием Expression templatesPlatonov Sergey
 
Selenium: приемы работы
Selenium: приемы работыSelenium: приемы работы
Selenium: приемы работыPaul Stashevsky
 
Документирование исходных текстов (javadoc)
Документирование исходных текстов (javadoc)Документирование исходных текстов (javadoc)
Документирование исходных текстов (javadoc)Fedor Malyshkin
 
XPath локаторы в Selenium WebDriver
XPath локаторы в Selenium WebDriverXPath локаторы в Selenium WebDriver
XPath локаторы в Selenium WebDriverИлья Кожухов
 
Java осень 2014 занятие 6
Java осень 2014 занятие 6Java осень 2014 занятие 6
Java осень 2014 занятие 6Technopark
 
Веселая ферма. Соседи.
Веселая ферма. Соседи.Веселая ферма. Соседи.
Веселая ферма. Соседи.Doomer Samoiloff
 
Модульное тестирование iOS-приложений.
Модульное тестирование iOS-приложений.Модульное тестирование iOS-приложений.
Модульное тестирование iOS-приложений.MageCloud
 
Тестирование spring boot приложений
Тестирование spring boot приложенийТестирование spring boot приложений
Тестирование spring boot приложенийSemyonKirekov
 

Mais procurados (17)

Rambler.iOS #3: Test-Driven Development в iOS
Rambler.iOS #3: Test-Driven Development в iOSRambler.iOS #3: Test-Driven Development в iOS
Rambler.iOS #3: Test-Driven Development в iOS
 
Использование юнит-тестов для повышения качества разработки
Использование юнит-тестов для повышения качества разработкиИспользование юнит-тестов для повышения качества разработки
Использование юнит-тестов для повышения качества разработки
 
Selenium: начало работы
Selenium: начало работыSelenium: начало работы
Selenium: начало работы
 
Java осень 2014 занятие 7
Java осень 2014 занятие 7Java осень 2014 занятие 7
Java осень 2014 занятие 7
 
RoboGuice
RoboGuiceRoboGuice
RoboGuice
 
Архитектура. Доступноять программных систем.
Архитектура. Доступноять программных систем.Архитектура. Доступноять программных систем.
Архитектура. Доступноять программных систем.
 
Testing RIA with Selenium
Testing RIA with SeleniumTesting RIA with Selenium
Testing RIA with Selenium
 
Pycon Russia 2013 - Разработка через тестирование в Python и Django
Pycon Russia 2013 - Разработка через тестирование в Python и DjangoPycon Russia 2013 - Разработка через тестирование в Python и Django
Pycon Russia 2013 - Разработка через тестирование в Python и Django
 
Оптимизация трассирования с использованием Expression templates
Оптимизация трассирования с использованием Expression templatesОптимизация трассирования с использованием Expression templates
Оптимизация трассирования с использованием Expression templates
 
Selenium: приемы работы
Selenium: приемы работыSelenium: приемы работы
Selenium: приемы работы
 
Drf vs Graphql
Drf vs GraphqlDrf vs Graphql
Drf vs Graphql
 
Документирование исходных текстов (javadoc)
Документирование исходных текстов (javadoc)Документирование исходных текстов (javadoc)
Документирование исходных текстов (javadoc)
 
XPath локаторы в Selenium WebDriver
XPath локаторы в Selenium WebDriverXPath локаторы в Selenium WebDriver
XPath локаторы в Selenium WebDriver
 
Java осень 2014 занятие 6
Java осень 2014 занятие 6Java осень 2014 занятие 6
Java осень 2014 занятие 6
 
Веселая ферма. Соседи.
Веселая ферма. Соседи.Веселая ферма. Соседи.
Веселая ферма. Соседи.
 
Модульное тестирование iOS-приложений.
Модульное тестирование iOS-приложений.Модульное тестирование iOS-приложений.
Модульное тестирование iOS-приложений.
 
Тестирование spring boot приложений
Тестирование spring boot приложенийТестирование spring boot приложений
Тестирование spring boot приложений
 

Destaque

목요일 6조 경영정보기술
목요일 6조 경영정보기술목요일 6조 경영정보기술
목요일 6조 경영정보기술YangJaeMin
 
Construction of my magazine
Construction of my magazineConstruction of my magazine
Construction of my magazinejoecrinn1
 
Construction of my magazine
Construction of my magazineConstruction of my magazine
Construction of my magazinejoecrinn1
 
Ibrahim memories
Ibrahim memoriesIbrahim memories
Ibrahim memoriestugrulakin
 
MIS Project Presentation
MIS Project Presentation MIS Project Presentation
MIS Project Presentation wa9088
 
Construction of my magazine
Construction of my magazineConstruction of my magazine
Construction of my magazinejoecrinn1
 
Paris Assembly open textbooks 4 Africa
Paris Assembly open textbooks 4 Africa Paris Assembly open textbooks 4 Africa
Paris Assembly open textbooks 4 Africa Kelsey Wiens
 
TNS Icap & BaaS : Έρευνα, και ρατσιστές και εθνικιστές;
TNS Icap & BaaS : Έρευνα, και ρατσιστές και εθνικιστές; TNS Icap & BaaS : Έρευνα, και ρατσιστές και εθνικιστές;
TNS Icap & BaaS : Έρευνα, και ρατσιστές και εθνικιστές; BaaS
 
Medea slides
Medea slidesMedea slides
Medea slidesLN1107
 
Katherine springbreak
Katherine springbreakKatherine springbreak
Katherine springbreakGracia Wang
 
Acetatos de transmicion automatica
Acetatos de transmicion automaticaAcetatos de transmicion automatica
Acetatos de transmicion automaticaIram Abif
 
2011 세계군축행동의 날
2011 세계군축행동의 날2011 세계군축행동의 날
2011 세계군축행동의 날pspd_peace
 
Geometry Test Review
Geometry Test ReviewGeometry Test Review
Geometry Test Reviewbpotz2589
 
Research : Generics in Greece (Social Media Analysis)
Research : Generics in Greece (Social Media Analysis)Research : Generics in Greece (Social Media Analysis)
Research : Generics in Greece (Social Media Analysis)BaaS
 

Destaque (20)

목요일 6조 경영정보기술
목요일 6조 경영정보기술목요일 6조 경영정보기술
목요일 6조 경영정보기술
 
Construction of my magazine
Construction of my magazineConstruction of my magazine
Construction of my magazine
 
Construction of my magazine
Construction of my magazineConstruction of my magazine
Construction of my magazine
 
Ibrahim memories
Ibrahim memoriesIbrahim memories
Ibrahim memories
 
Pp 30mei
Pp 30meiPp 30mei
Pp 30mei
 
MIS Project Presentation
MIS Project Presentation MIS Project Presentation
MIS Project Presentation
 
Construction of my magazine
Construction of my magazineConstruction of my magazine
Construction of my magazine
 
Paris Assembly open textbooks 4 Africa
Paris Assembly open textbooks 4 Africa Paris Assembly open textbooks 4 Africa
Paris Assembly open textbooks 4 Africa
 
TNS Icap & BaaS : Έρευνα, και ρατσιστές και εθνικιστές;
TNS Icap & BaaS : Έρευνα, και ρατσιστές και εθνικιστές; TNS Icap & BaaS : Έρευνα, και ρατσιστές και εθνικιστές;
TNS Icap & BaaS : Έρευνα, και ρατσιστές και εθνικιστές;
 
Medea slides
Medea slidesMedea slides
Medea slides
 
Pp 18mei
Pp 18meiPp 18mei
Pp 18mei
 
Katherine springbreak
Katherine springbreakKatherine springbreak
Katherine springbreak
 
Pp 16mei
Pp 16meiPp 16mei
Pp 16mei
 
Acetatos de transmicion automatica
Acetatos de transmicion automaticaAcetatos de transmicion automatica
Acetatos de transmicion automatica
 
Haji dan umrah
Haji dan umrahHaji dan umrah
Haji dan umrah
 
2011 세계군축행동의 날
2011 세계군축행동의 날2011 세계군축행동의 날
2011 세계군축행동의 날
 
Legno 2010
Legno 2010Legno 2010
Legno 2010
 
Geometry Test Review
Geometry Test ReviewGeometry Test Review
Geometry Test Review
 
Uct presentation
Uct presentationUct presentation
Uct presentation
 
Research : Generics in Greece (Social Media Analysis)
Research : Generics in Greece (Social Media Analysis)Research : Generics in Greece (Social Media Analysis)
Research : Generics in Greece (Social Media Analysis)
 

Semelhante a Unit test быстрый старт

Бодрящий микс из Selenium и TestNG- регрессионное тестирование руками разрабо...
Бодрящий микс из Selenium и TestNG- регрессионное тестирование руками разрабо...Бодрящий микс из Selenium и TestNG- регрессионное тестирование руками разрабо...
Бодрящий микс из Selenium и TestNG- регрессионное тестирование руками разрабо...Andrey Rebrov
 
Дело тестера боится: как в опытных руках могут заиграть Java и TestNg
Дело тестера боится: как в опытных руках могут заиграть Java и TestNgДело тестера боится: как в опытных руках могут заиграть Java и TestNg
Дело тестера боится: как в опытных руках могут заиграть Java и TestNgIT61
 
Тестирование программных фильтров безопасности
Тестирование программных фильтров безопасностиТестирование программных фильтров безопасности
Тестирование программных фильтров безопасностиZestranec
 
Взломать Web-сайт на ASP.NET? Сложно, но можно!
Взломать Web-сайт на ASP.NET? Сложно, но можно!Взломать Web-сайт на ASP.NET? Сложно, но можно!
Взломать Web-сайт на ASP.NET? Сложно, но можно!Vladimir Kochetkov
 
Solit 2012, Enterprise разработка PHP приложений, Иван Захарченко
Solit 2012, Enterprise разработка PHP приложений, Иван ЗахарченкоSolit 2012, Enterprise разработка PHP приложений, Иван Захарченко
Solit 2012, Enterprise разработка PHP приложений, Иван Захарченкоsolit
 
вебинар - функциональное тестирование с использованием Selenium 2 и TestNG
вебинар - функциональное тестирование с использованием Selenium 2 и TestNGвебинар - функциональное тестирование с использованием Selenium 2 и TestNG
вебинар - функциональное тестирование с использованием Selenium 2 и TestNGAndrey Rebrov
 
ASP.NET MVC - как построить по-настоящему гибкое веб-приложение
ASP.NET MVC - как построить по-настоящему гибкое веб-приложениеASP.NET MVC - как построить по-настоящему гибкое веб-приложение
ASP.NET MVC - как построить по-настоящему гибкое веб-приложениеAlexander Byndyu
 
Взломать сайт на ASP.NET
Взломать сайт на ASP.NETВзломать сайт на ASP.NET
Взломать сайт на ASP.NETPositive Hack Days
 
Примеры быстрой разработки API на масштабируемом сервере приложений Impress д...
Примеры быстрой разработки API на масштабируемом сервере приложений Impress д...Примеры быстрой разработки API на масштабируемом сервере приложений Impress д...
Примеры быстрой разработки API на масштабируемом сервере приложений Impress д...Timur Shemsedinov
 
PHP 5.4: Что нового?
PHP 5.4: Что нового?PHP 5.4: Что нового?
PHP 5.4: Что нового?phpdevby
 
Тестирование программных фильтров безопасности
Тестирование программных фильтров безопасностиТестирование программных фильтров безопасности
Тестирование программных фильтров безопасностиSQALab
 
анализ кода: от проверки стиля до автоматического тестирования
анализ кода: от проверки стиля до автоматического тестированияанализ кода: от проверки стиля до автоматического тестирования
анализ кода: от проверки стиля до автоматического тестированияRuslan Shevchenko
 
ZFConf 2010: What News Zend Framework 2.0 Brings to Us
ZFConf 2010: What News Zend Framework 2.0 Brings to UsZFConf 2010: What News Zend Framework 2.0 Brings to Us
ZFConf 2010: What News Zend Framework 2.0 Brings to UsZFConf Conference
 
QA Fest 2017. Яна Кокряшкина. Интеграция автоматизированных тестов с инструме...
QA Fest 2017. Яна Кокряшкина. Интеграция автоматизированных тестов с инструме...QA Fest 2017. Яна Кокряшкина. Интеграция автоматизированных тестов с инструме...
QA Fest 2017. Яна Кокряшкина. Интеграция автоматизированных тестов с инструме...QAFest
 
Сладкое будущее: Phalcon и Zephir
Сладкое будущее: Phalcon и ZephirСладкое будущее: Phalcon и Zephir
Сладкое будущее: Phalcon и ZephirCodeFest
 
Java осень 2012 лекция 8
Java осень 2012 лекция 8Java осень 2012 лекция 8
Java осень 2012 лекция 8Technopark
 
Сергей Константинов — Что интересного готовит нам W3C
Сергей Константинов — Что интересного готовит нам W3CСергей Константинов — Что интересного готовит нам W3C
Сергей Константинов — Что интересного готовит нам W3CYandex
 
iOS and Android Mobile Test Automation
iOS and Android Mobile Test AutomationiOS and Android Mobile Test Automation
iOS and Android Mobile Test AutomationAndrii Dzynia
 

Semelhante a Unit test быстрый старт (20)

Бодрящий микс из Selenium и TestNG- регрессионное тестирование руками разрабо...
Бодрящий микс из Selenium и TestNG- регрессионное тестирование руками разрабо...Бодрящий микс из Selenium и TestNG- регрессионное тестирование руками разрабо...
Бодрящий микс из Selenium и TestNG- регрессионное тестирование руками разрабо...
 
Дело тестера боится: как в опытных руках могут заиграть Java и TestNg
Дело тестера боится: как в опытных руках могут заиграть Java и TestNgДело тестера боится: как в опытных руках могут заиграть Java и TestNg
Дело тестера боится: как в опытных руках могут заиграть Java и TestNg
 
Тестирование программных фильтров безопасности
Тестирование программных фильтров безопасностиТестирование программных фильтров безопасности
Тестирование программных фильтров безопасности
 
Взломать Web-сайт на ASP.NET? Сложно, но можно!
Взломать Web-сайт на ASP.NET? Сложно, но можно!Взломать Web-сайт на ASP.NET? Сложно, но можно!
Взломать Web-сайт на ASP.NET? Сложно, но можно!
 
Solit 2012, Enterprise разработка PHP приложений, Иван Захарченко
Solit 2012, Enterprise разработка PHP приложений, Иван ЗахарченкоSolit 2012, Enterprise разработка PHP приложений, Иван Захарченко
Solit 2012, Enterprise разработка PHP приложений, Иван Захарченко
 
вебинар - функциональное тестирование с использованием Selenium 2 и TestNG
вебинар - функциональное тестирование с использованием Selenium 2 и TestNGвебинар - функциональное тестирование с использованием Selenium 2 и TestNG
вебинар - функциональное тестирование с использованием Selenium 2 и TestNG
 
ASP.NET MVC - как построить по-настоящему гибкое веб-приложение
ASP.NET MVC - как построить по-настоящему гибкое веб-приложениеASP.NET MVC - как построить по-настоящему гибкое веб-приложение
ASP.NET MVC - как построить по-настоящему гибкое веб-приложение
 
Взломать сайт на ASP.NET
Взломать сайт на ASP.NETВзломать сайт на ASP.NET
Взломать сайт на ASP.NET
 
Примеры быстрой разработки API на масштабируемом сервере приложений Impress д...
Примеры быстрой разработки API на масштабируемом сервере приложений Impress д...Примеры быстрой разработки API на масштабируемом сервере приложений Impress д...
Примеры быстрой разработки API на масштабируемом сервере приложений Impress д...
 
PHP 5.4: Что нового?
PHP 5.4: Что нового?PHP 5.4: Что нового?
PHP 5.4: Что нового?
 
Тестирование программных фильтров безопасности
Тестирование программных фильтров безопасностиТестирование программных фильтров безопасности
Тестирование программных фильтров безопасности
 
анализ кода: от проверки стиля до автоматического тестирования
анализ кода: от проверки стиля до автоматического тестированияанализ кода: от проверки стиля до автоматического тестирования
анализ кода: от проверки стиля до автоматического тестирования
 
ZFConf 2010: What News Zend Framework 2.0 Brings to Us
ZFConf 2010: What News Zend Framework 2.0 Brings to UsZFConf 2010: What News Zend Framework 2.0 Brings to Us
ZFConf 2010: What News Zend Framework 2.0 Brings to Us
 
QA Fest 2017. Яна Кокряшкина. Интеграция автоматизированных тестов с инструме...
QA Fest 2017. Яна Кокряшкина. Интеграция автоматизированных тестов с инструме...QA Fest 2017. Яна Кокряшкина. Интеграция автоматизированных тестов с инструме...
QA Fest 2017. Яна Кокряшкина. Интеграция автоматизированных тестов с инструме...
 
Сладкое будущее: Phalcon и Zephir
Сладкое будущее: Phalcon и ZephirСладкое будущее: Phalcon и Zephir
Сладкое будущее: Phalcon и Zephir
 
Java осень 2012 лекция 8
Java осень 2012 лекция 8Java осень 2012 лекция 8
Java осень 2012 лекция 8
 
JSSDK: Начало
JSSDK: НачалоJSSDK: Начало
JSSDK: Начало
 
Jdbc in java
Jdbc in javaJdbc in java
Jdbc in java
 
Сергей Константинов — Что интересного готовит нам W3C
Сергей Константинов — Что интересного готовит нам W3CСергей Константинов — Что интересного готовит нам W3C
Сергей Константинов — Что интересного готовит нам W3C
 
iOS and Android Mobile Test Automation
iOS and Android Mobile Test AutomationiOS and Android Mobile Test Automation
iOS and Android Mobile Test Automation
 

Unit test быстрый старт