Asynchronous programming in .NET (UA)Oleksandr PavlyshakTalk at http://itevent.if.ua/programa-it-event-vesna-2012
Samples at https://github.com/opavlyshak/dotNet-async-demos
Magento digitalstore themeNETBASE CMSMARTThe Magento Digital Store Theme is designed for selling digital products such as electronics, featuring three main color skins and an intuitive, flexible menu. Key functionalities include a responsive design, AJAX search and cart capabilities, and various promotional display options, enhancing user navigation and shopping experience. The theme allows for extensive customization of elements like logos and banners, catering specifically to the needs of digital item retailers.
Blogging For BusinessOdofin CalebThe document outlines how to create and utilize a blog for marketing purposes effectively. It describes blogs as personal and collaborative spaces, emphasizing the importance of posting relevant content that engages readers and promotes business opportunities. Additionally, it distinguishes between free and premium blogs, recommending Blogger.com for its accessibility and highlighting WordPress.org as a preferred platform for professional blogs.
Proyecto 10 pobladoNancy RomoEste documento describe un proyecto sobre la diversidad lingüística y cultural de los pueblos del mundo. Incluye preguntas para investigar sobre la diversidad lingüística en la comunidad local y lenguas en peligro de extinción. También proporciona datos sobre las lenguas más habladas a nivel mundial y la importancia del multilingüismo y la escritura.
Retro-compatibilidade em AndroidPedro Velosoݺߣs apresentados no Workshop sobre retro-compatiblidade em Android: http://xx.sinfo.org/en/workshop-android
Jing Qiu's journal entryCCZ800524Jing Qiu's life journal documents events during the Chinese Cultural Revolution from 1966-1976. In August 1966, the Sixteen Point Directive was announced, officially supporting Mao's policies and launching the Cultural Revolution. Red Guards were formed to rebel against intellectuals like professors. Jing Qiu's home was raided and destroyed by her own students turned Red Guards. By September 1976, the Gang of Four who led the excesses of the Cultural Revolution had been arrested, signaling an end to the turmoil and ten years of struggle for Jing Qiu and other intellectuals.
#BMO15 | A scuola con i Maremmans | Nino CostaOfficina TuristicaIl documento descrive le attività dell'associazione Maremma Network for Tourism, che si propone di valorizzare la Maremma attraverso il web marketing e la promozione della cultura, tradizioni e ambienti locali. Inoltre, è previsto un progetto educativo per gli studenti delle scuole superiori della provincia di Grosseto, incentivato da premi per lavori creativi che raccontano la Maremma. L'obiettivo principale è creare una nuova narrazione del territorio, coinvolgendo le comunità locali e i visitatori.
Proyecto Yaku Manta YachayRed de Investigación Educativa - ieRedEste proyecto tiene como objetivos recopilar conocimientos sobre el agua, establecer estrategias pedagógicas para enseñar sobre el cuidado del agua, desarrollar materiales educativos sobre representaciones culturales del agua, y promover la participación social sobre el uso y cuidado del agua. Las personas pueden participar contribuyendo historias sobre el agua, fotografiando recursos hídricos, entrevistando a expertos, creando materiales educativos, y publicando en el blog del proyecto.
Jefferson jaraJefferson JaraEl documento presenta las respuestas a un cuestionario sobre cableado estructurado realizado por un estudiante. Define un sistema de cableado estructurado como una plataforma capaz de integrar servicios de telecomunicaciones como telefonía, video y datos. Detalla las ventajas de este sistema, incluyendo su flexibilidad y capacidad para soportar diferentes tipos de cable, así como sus desventajas como la dificultad en localizar averías. Explica conceptos como el cableado horizontal, vertical y el cuarto de telecomunicaciones. Finalmente, enumera las
Principios e ferramentasLuis AbreuThe document is a collection of 20 stock photos from Flickr shared under Creative Commons licenses. The photos show various scenes like nature landscapes, buildings, people, and more. Each photo is attributed to its photographer and licensed for non-commercial use and sharing.
Музей освіти МеджибожаОлександр ДрижалМузей освіти Меджибожа Хмельницької області, Україна
Acoso escolar balearesIvanaGonzalesEste documento define el acoso escolar (bullying) y proporciona datos sobre su dimensión actual. También ofrece recomendaciones para los menores, padres y personal docente. Define el acoso como maltrato repetido que genera angustia en la víctima. Provee estadísticas internacionales que muestran que entre el 4,5-17,4% de estudiantes sufren acoso. Ofrece indicadores del acoso y recomienda que los menores hablen con adultos, los padres apoyen a sus hijos y la escuela tenga tolerancia c
природна і економна дорожня карта для переходу команди розробки на тест центр...Andrii PodanenkoЯким чином писати тести без додаткових затрат
Погляд керівника команди
Asynchronous programming in .NET (UA)Oleksandr PavlyshakTalk at http://itevent.if.ua/programa-it-event-vesna-2012
Samples at https://github.com/opavlyshak/dotNet-async-demos
Magento digitalstore themeNETBASE CMSMARTThe Magento Digital Store Theme is designed for selling digital products such as electronics, featuring three main color skins and an intuitive, flexible menu. Key functionalities include a responsive design, AJAX search and cart capabilities, and various promotional display options, enhancing user navigation and shopping experience. The theme allows for extensive customization of elements like logos and banners, catering specifically to the needs of digital item retailers.
Blogging For BusinessOdofin CalebThe document outlines how to create and utilize a blog for marketing purposes effectively. It describes blogs as personal and collaborative spaces, emphasizing the importance of posting relevant content that engages readers and promotes business opportunities. Additionally, it distinguishes between free and premium blogs, recommending Blogger.com for its accessibility and highlighting WordPress.org as a preferred platform for professional blogs.
Proyecto 10 pobladoNancy RomoEste documento describe un proyecto sobre la diversidad lingüística y cultural de los pueblos del mundo. Incluye preguntas para investigar sobre la diversidad lingüística en la comunidad local y lenguas en peligro de extinción. También proporciona datos sobre las lenguas más habladas a nivel mundial y la importancia del multilingüismo y la escritura.
Retro-compatibilidade em AndroidPedro Velosoݺߣs apresentados no Workshop sobre retro-compatiblidade em Android: http://xx.sinfo.org/en/workshop-android
Jing Qiu's journal entryCCZ800524Jing Qiu's life journal documents events during the Chinese Cultural Revolution from 1966-1976. In August 1966, the Sixteen Point Directive was announced, officially supporting Mao's policies and launching the Cultural Revolution. Red Guards were formed to rebel against intellectuals like professors. Jing Qiu's home was raided and destroyed by her own students turned Red Guards. By September 1976, the Gang of Four who led the excesses of the Cultural Revolution had been arrested, signaling an end to the turmoil and ten years of struggle for Jing Qiu and other intellectuals.
#BMO15 | A scuola con i Maremmans | Nino CostaOfficina TuristicaIl documento descrive le attività dell'associazione Maremma Network for Tourism, che si propone di valorizzare la Maremma attraverso il web marketing e la promozione della cultura, tradizioni e ambienti locali. Inoltre, è previsto un progetto educativo per gli studenti delle scuole superiori della provincia di Grosseto, incentivato da premi per lavori creativi che raccontano la Maremma. L'obiettivo principale è creare una nuova narrazione del territorio, coinvolgendo le comunità locali e i visitatori.
Proyecto Yaku Manta YachayRed de Investigación Educativa - ieRedEste proyecto tiene como objetivos recopilar conocimientos sobre el agua, establecer estrategias pedagógicas para enseñar sobre el cuidado del agua, desarrollar materiales educativos sobre representaciones culturales del agua, y promover la participación social sobre el uso y cuidado del agua. Las personas pueden participar contribuyendo historias sobre el agua, fotografiando recursos hídricos, entrevistando a expertos, creando materiales educativos, y publicando en el blog del proyecto.
Jefferson jaraJefferson JaraEl documento presenta las respuestas a un cuestionario sobre cableado estructurado realizado por un estudiante. Define un sistema de cableado estructurado como una plataforma capaz de integrar servicios de telecomunicaciones como telefonía, video y datos. Detalla las ventajas de este sistema, incluyendo su flexibilidad y capacidad para soportar diferentes tipos de cable, así como sus desventajas como la dificultad en localizar averías. Explica conceptos como el cableado horizontal, vertical y el cuarto de telecomunicaciones. Finalmente, enumera las
Principios e ferramentasLuis AbreuThe document is a collection of 20 stock photos from Flickr shared under Creative Commons licenses. The photos show various scenes like nature landscapes, buildings, people, and more. Each photo is attributed to its photographer and licensed for non-commercial use and sharing.
Музей освіти МеджибожаОлександр ДрижалМузей освіти Меджибожа Хмельницької області, Україна
Acoso escolar balearesIvanaGonzalesEste documento define el acoso escolar (bullying) y proporciona datos sobre su dimensión actual. También ofrece recomendaciones para los menores, padres y personal docente. Define el acoso como maltrato repetido que genera angustia en la víctima. Provee estadísticas internacionales que muestran que entre el 4,5-17,4% de estudiantes sufren acoso. Ofrece indicadores del acoso y recomienda que los menores hablen con adultos, los padres apoyen a sus hijos y la escuela tenga tolerancia c
природна і економна дорожня карта для переходу команди розробки на тест центр...Andrii PodanenkoЯким чином писати тести без додаткових затрат
Погляд керівника команди
Як прокачати трьох студентів за п’ять тижнівStfalcon MeetupsАртем Генвальд
Креативний веб-розробник компанії stfalcon.com. Любить коли все так, як пише книжка.
Як прокачати трьох студентів за п’ять тижнівArtem HenvaldGitHub repository: https://github.com/stfalcon-studio/lost-and-found
Відео з презентації: https://www.youtube.com/watch?v=3EgilE_fpkI
До нас на студію прийшли три студенти проходити практику. Потрібно було дати їм завдання і організувати навчальний процес. Розробляли проект "Бюро знахідок" на PHP Framework Symfony2. Ділюсь своїм досвідом, як я це зробив і що в результаті вийшло.
"Unit testing in AngularJS" Виктор ЗозулякFwdaysДоповідь висвітлить наступні питання
юніт тести - що це і навіщо їх писати?
основні задачі, що потрібно вирішити при юніт тестуванні
вирішення задач юніт тестування в AngularJS
ОЛЕКСАНДР ХОТЕМСЬКИЙ «Заготівля тестових даних для автоматичних тестів» QADayQADayLviv Direction QADay 2023 (automation)
ОЛЕКСАНДР ХОТЕМСЬКИЙ «Заготівля тестових даних для автоматичних тестів» QADay
telegram: https://t.me/+IJODE0i4X65kNjcy
fb: www.fb.com/goqaevent
fb: www.fb.com/qaday.org
linkedin: https://www.linkedin.com/company/goqa/
Сайт: www.qaday.org
QA Fest 2015. Ярослав Пернеровский. Мутанты наступают - смогут ли ваши тесты...QAFestМутационное тестирование - это еще одна интересная методика тестирования, призванная выявить недостатки ваших тестов.
2. - Трохи історії
- Інсталяція PHPUnit
- Структура тесту
- Asserts
- Написання Тестів
- Data Providers
- Mock Objects
- Трохи про TDD
- Два слова про BDD
3. Трохи історії
SUnit - xUnit framework на Smalltalk (Kent Beck)
JUnit - порт xUnit на Java (Kent Beck & Erich Gamma)
PHPUnit - порт xUnit на PHP (Sebastian Bergmann)
SimpleTest - конкурет PHPUnit
6. Структура тесту
- Базовий інтерфейс
TestCase/TestSuite implements PHPUnit_Framework_Test
public function run(PHPUnit_Framework_TestResult $result);
- Запуск
$test->run($result):
$result->run($test):
$test->setUpBeforeClass() //once per class
$test->setUp()
$test->runTest()
$test->tearDown()
$test->tearDownAfterClass() //once per class
7. Структура тесту
- Інтерфейс suite`a
PHPUnit_Framework_TestSuite implements IteratorAggregate
- Запуск тестів з suite’а
foreach ($suite as $test) {
$test->run();
}
8. Asserts
- TestCase містить 90 методів assert
$this->assertEquals('expected', 'actual', 'custom message');
$this->assertThat('expected',
PHPUnit_Framework_Constraint $constraint, 'custom
message');
- 3 "marked" function
markTestIncomplete();
markTestSkipped();
fail();
10. Написання Тестів
class FirstTest extends PHPUnit_Framework_TestCase
{
public function testFirst()
{
$this->assertTrue(true);
}
}
class FirstTest extends PHPUnit_Framework_TestCase
{
/**
* @test
*/
public function first()
{
$this->assertTrue(true);
}
}
11. Data Providers
public function firstDataProvider()
{
return array(
'empty' => array(''),
'incorrect' => array('@#^&!^#*!#')
);
}
/**
* @test
* @dataProvider firstDataProvider
*/
public function first($data)
{
$this->assertFalse($object->validate($data));
}
17. Трохи про TDD
Простий приклад TDD
Спершу тест:
class EmailTest extends PHPUnit_Framework_TestCase
{
public function testGetDomainFromEmail()
{
$e = new Email();
$this->assertEquals(
'example.com',
$e->getDomainFromEmail('test@examlple.com')
);
}
}
Запускаєм тест. Результат Error.
18. Трохи про TDD
Найпростішим способом заставляєм працювати тест.
Підміняєм реалізацію (Fake It).
class Email
{
public function getDomainFromEmail($email)
{
return 'example.com';
}
}
Зелена плоса. Тест спрацьовує.
19. Трохи про TDD
Рефакторимо. Видаляємо дублювання.
class Email
{
public function getDomainFromEmail($email)
{
return explode('@', $email)[1];
}
}
Зелена плоса. Тест проходить. Метод працює так як нам
потрібно.
20. Трохи про TDD
Ще один приклад
Спершу тест:
class EmailTest extends PHPUnit_Framework_TestCase
{
public function testIsEmailValid()
{
$v = new Validator();
$this->assertTrue(
$v->isEmailValid('test@examlple.com')
);
}
}
Запускаєм тест. Результат Error.
21. Трохи про TDD
Найпростішим способом заставляєм працювати тест.
class Validator
{
public function isEmailValid($email)
{
return true;
}
}
Зелена плоса. Тест проходить.
22. Трохи про TDD
Добавимо більше тестових випадків (Triangulate).
public function isEmailValidDataProvider()
{
return array(
'correct' => array('test@example.com', true),
'incorrect' => array('incorrect', false),
);
}
public function testIsEmailValid($email, $expectedResult)
{
//...
$this->assertEquals($expectedResult, $v->isEmailValid
($email));
}
Запускаєм і на цей раз бачим Fail.
Далі пишемо правильну реалізацію.
23. Трохи про TDD
Якщо код зрозуміло пишіть зразу правильний тест.
(Oblivious Implementation).
24. Два слова про BDD
- Базується на TDD.
- Описує роботу Бізнесу та Девелоперів.
- Бізнес пише специфікації в вигляді тестів або
специфікації генеруються в тести.
- Девелопери пишуть код так щоб всі тести
спрацьовували.
Рішення для PHP:
Codeception
Behat
PHPUnit_Story
25. Матеріали
Книжки:
Kent Beck - XP. Test Driven Development
Martin Fowler - Refactoring: Improving the Design of Existing Code
Лінки:
http://www.phpunit.de/manual/3.8/en/index.html
http://behat.org/
http://codeception.com/
http://getcomposer.org/
http://en.wikipedia.org/wiki/Test-driven_development
http://en.wikipedia.org/wiki/Behavior-driven_development
26. Дякую за увагу!
Андрій Насінник
Копанія:
Magento
Email:
andriy.nas@gmail.com
https://github.com/Nas1k
Skype:
nas_ua