SlideShare a Scribd company logo
1 of 9
Автоматизоване тестування
Тестування
• Тестування – процес пошуку дефектів
• Тестування не може довести відсутності
  дефектів
  – Лише їх наявність
• В будь-якій програмі є дефекти
• Краще знаходити дефекти раніше, ніж
  пізніше
Тестування
• Відбувається разом із розробкою
• Спосіб: запускаємо і дивимось чи працює
• Створюємо допоміжні засоби
  – Консольні програми
  – Допоміжний UI
Testing Framework
Призначення:
• Виконання тестів
• API для написання тестів
• Автоматизація
• Перегляд результатів
C++ Testing Frameworks
• googletest + googlemock
  https://code.google.com/p/googletest/
  https://code.google.com/p/googlemock/

• Boost.Test
  http://www.boost.org/doc/libs/1_53_0/more/getting_started/
  http://www.boost.org/doc/libs/1_53_0/libs/test/doc/html/utf/testing-
  tools/reference.html

• Others
  http://en.wikipedia.org/wiki/List_of_unit_testing_frameworks#C.2B.2B
// offtopic
*.sdf file can grow large
Keep VS IntelliSense cache in %TEMP% instead
of current solution folder
http://stackoverflow.com/questions/7706984/visual-studio-
2010-c-project-remove-sdf-file
Simple test
#define BOOST_TEST_MODULE MathTests
#include "boost/test/included/unit_test.hpp"
#include "math.hpp"                          Descriptive name

BOOST_AUTO_TEST_CASE(AddTwoPositiveIntegersReturnsCorrectResult)
{                         Set up System Under Test
    Math math;                    (Arrange)
                                          Call System Under Test
    auto result = math.add(1, 2);                   (Act)
    BOOST_REQUIRE_EQUAL(3, result);
                                                   Assert
}



                            Unit test
Модульний тест (unit test)
Показує, що модуль працює правильно
Тестує лише логіку (add)
Не тестує взаємодію з БД, файлами, мережею
Виконується в пам’яті
Тестує лише один клас/метод
Короткий і читабельний
Не містить циклів та умов
Повторюваний, не залежить від послідовності
Assertions
BOOST_REQUIRE(true);
BOOST_REQUIRE_EQUAL_COLLECTIONS(begin(), end(),
     begin(), end());
BOOST_REQUIRE_GE(4, 3); // 4 >= 3
BOOST_REQUIRE_GT(4, 3); // 4 > 3
BOOST_REQUIRE_LE(3, 4); // 3 <= 4
BOOST_REQUIRE_LT(3, 4); // 3 < 4
BOOST_REQUIRE_NE(3, 4); // 3 != 4
BOOST_FAIL("Failure");

More Related Content

Viewers also liked

cpp-2013 #11 Constness and Exceptions
cpp-2013 #11 Constness and Exceptionscpp-2013 #11 Constness and Exceptions
cpp-2013 #11 Constness and ExceptionsAmazon Web Services
 
cpp-2013 #12 Управління пам&rsquo;яттю Частина 2
cpp-2013 #12 Управління пам&rsquo;яттю Частина 2cpp-2013 #12 Управління пам&rsquo;яттю Частина 2
cpp-2013 #12 Управління пам&rsquo;яттю Частина 2Amazon Web Services
 
High Availability Application Architectures in Amazon VPC (ARC202) | AWS re:I...
High Availability Application Architectures in Amazon VPC (ARC202) | AWS re:I...High Availability Application Architectures in Amazon VPC (ARC202) | AWS re:I...
High Availability Application Architectures in Amazon VPC (ARC202) | AWS re:I...Amazon Web Services
 
Aspect-Oriented Programming (AOP) in .NET
Aspect-Oriented Programming (AOP) in .NETAspect-Oriented Programming (AOP) in .NET
Aspect-Oriented Programming (AOP) in .NETYuriy Guts
 
Export management ppt
Export management pptExport management ppt
Export management pptAMARAYYA
 
Import,export procedure
Import,export procedureImport,export procedure
Import,export procedurerishnrish
 
Export procedure
Export procedureExport procedure
Export procedureJay Parekh
 
EXPORT PROCEDURE & DOCUMENTATION
EXPORT PROCEDURE & DOCUMENTATIONEXPORT PROCEDURE & DOCUMENTATION
EXPORT PROCEDURE & DOCUMENTATIONvikas chauhan
 
Import & export presentation
Import & export presentationImport & export presentation
Import & export presentationEric Lee
 
A PROJECT REPORT ON EXPORT PROCESS AND DOCUMENTATION
A PROJECT REPORT ON EXPORT PROCESS AND DOCUMENTATIONA PROJECT REPORT ON EXPORT PROCESS AND DOCUMENTATION
A PROJECT REPORT ON EXPORT PROCESS AND DOCUMENTATIONSagar Anand
 
EXPORT IMPORT
EXPORT IMPORTEXPORT IMPORT
EXPORT IMPORTRati Kaul
 

Viewers also liked (16)

cpp-2013 #20 Best practices
cpp-2013 #20 Best practicescpp-2013 #20 Best practices
cpp-2013 #20 Best practices
 
cpp-2013 #18 Qt Part 2
cpp-2013 #18 Qt Part 2cpp-2013 #18 Qt Part 2
cpp-2013 #18 Qt Part 2
 
cpp-2013 #4 Memory management
cpp-2013 #4 Memory managementcpp-2013 #4 Memory management
cpp-2013 #4 Memory management
 
cpp-2013 #11 Constness and Exceptions
cpp-2013 #11 Constness and Exceptionscpp-2013 #11 Constness and Exceptions
cpp-2013 #11 Constness and Exceptions
 
cpp-2013 #12 Управління пам&rsquo;яттю Частина 2
cpp-2013 #12 Управління пам&rsquo;яттю Частина 2cpp-2013 #12 Управління пам&rsquo;яттю Частина 2
cpp-2013 #12 Управління пам&rsquo;яттю Частина 2
 
cpp-2013 #17 Libraries
cpp-2013 #17 Librariescpp-2013 #17 Libraries
cpp-2013 #17 Libraries
 
High Availability Application Architectures in Amazon VPC (ARC202) | AWS re:I...
High Availability Application Architectures in Amazon VPC (ARC202) | AWS re:I...High Availability Application Architectures in Amazon VPC (ARC202) | AWS re:I...
High Availability Application Architectures in Amazon VPC (ARC202) | AWS re:I...
 
Aspect-Oriented Programming (AOP) in .NET
Aspect-Oriented Programming (AOP) in .NETAspect-Oriented Programming (AOP) in .NET
Aspect-Oriented Programming (AOP) in .NET
 
Export management ppt
Export management pptExport management ppt
Export management ppt
 
Import,export procedure
Import,export procedureImport,export procedure
Import,export procedure
 
Export procedure
Export procedureExport procedure
Export procedure
 
EXPORT PROCEDURE & DOCUMENTATION
EXPORT PROCEDURE & DOCUMENTATIONEXPORT PROCEDURE & DOCUMENTATION
EXPORT PROCEDURE & DOCUMENTATION
 
Export Procedures and Documents
Export Procedures and DocumentsExport Procedures and Documents
Export Procedures and Documents
 
Import & export presentation
Import & export presentationImport & export presentation
Import & export presentation
 
A PROJECT REPORT ON EXPORT PROCESS AND DOCUMENTATION
A PROJECT REPORT ON EXPORT PROCESS AND DOCUMENTATIONA PROJECT REPORT ON EXPORT PROCESS AND DOCUMENTATION
A PROJECT REPORT ON EXPORT PROCESS AND DOCUMENTATION
 
EXPORT IMPORT
EXPORT IMPORTEXPORT IMPORT
EXPORT IMPORT
 

Similar to cpp-2013 #16 Automated testing

МИХАЙЛО БОДНАРЧУК «Як перестати боятись та полюбити автотести на JavaScript» ...
МИХАЙЛО БОДНАРЧУК «Як перестати боятись та полюбити автотести на JavaScript» ...МИХАЙЛО БОДНАРЧУК «Як перестати боятись та полюбити автотести на JavaScript» ...
МИХАЙЛО БОДНАРЧУК «Як перестати боятись та полюбити автотести на JavaScript» ...GoQA
 
[Knowledge Sharing] - Unit Testing by Pavlo Serdyuk (UKR)
[Knowledge Sharing] - Unit Testing by Pavlo Serdyuk (UKR)[Knowledge Sharing] - Unit Testing by Pavlo Serdyuk (UKR)
[Knowledge Sharing] - Unit Testing by Pavlo Serdyuk (UKR)Exoft LLC
 
Code driven testing -- oleksandr pavlyshak
Code driven testing -- oleksandr pavlyshakCode driven testing -- oleksandr pavlyshak
Code driven testing -- oleksandr pavlyshakIgor Bronovskyy
 
Anton Serputko Start performance-testing-from-scratch, BAQ
Anton Serputko Start performance-testing-from-scratch, BAQAnton Serputko Start performance-testing-from-scratch, BAQ
Anton Serputko Start performance-testing-from-scratch, BAQDakiry
 
Oleksij burdin, baq
Oleksij burdin, baqOleksij burdin, baq
Oleksij burdin, baqDakiry
 
ОЛЕКСАНДР ХОТЕМСЬКИЙ «ChatGPT: який вплив буде мати на тестування?» Online Q...
ОЛЕКСАНДР ХОТЕМСЬКИЙ «ChatGPT: який вплив буде мати на тестування?»  Online Q...ОЛЕКСАНДР ХОТЕМСЬКИЙ «ChatGPT: який вплив буде мати на тестування?»  Online Q...
ОЛЕКСАНДР ХОТЕМСЬКИЙ «ChatGPT: який вплив буде мати на тестування?» Online Q...GoQA
 
07 - vysnovky z tdd, pohliad pochatkivtsia - vitalii zinchenko it event 2013...
07 -  vysnovky z tdd, pohliad pochatkivtsia - vitalii zinchenko it event 2013...07 -  vysnovky z tdd, pohliad pochatkivtsia - vitalii zinchenko it event 2013...
07 - vysnovky z tdd, pohliad pochatkivtsia - vitalii zinchenko it event 2013...Igor Bronovskyy
 
Покрокова інструкція створення онлайн тестів на прикладі сервісу Майстер-Тест
Покрокова інструкція створення онлайн тестів на прикладі сервісу Майстер-ТестПокрокова інструкція створення онлайн тестів на прикладі сервісу Майстер-Тест
Покрокова інструкція створення онлайн тестів на прикладі сервісу Майстер-ТестNataliia Andrieieva
 
Як покращити Python web UI тести
Як покращити Python web UI тестиЯк покращити Python web UI тести
Як покращити Python web UI тестиRomanPobotin1
 
Структура тест-кейсу та звіту про помилки.pptx
Структура тест-кейсу та звіту про помилки.pptxСтруктура тест-кейсу та звіту про помилки.pptx
Структура тест-кейсу та звіту про помилки.pptxssuser40c4fa
 
QA Fest 2016. Яна Кокряшкіна. Паралельний запуск автоматизованих тестів за до...
QA Fest 2016. Яна Кокряшкіна. Паралельний запуск автоматизованих тестів за до...QA Fest 2016. Яна Кокряшкіна. Паралельний запуск автоматизованих тестів за до...
QA Fest 2016. Яна Кокряшкіна. Паралельний запуск автоматизованих тестів за до...QAFest
 
Testing Web in Agile
Testing Web in AgileTesting Web in Agile
Testing Web in AgileA1eksandras
 
Phpunit модульне тестування
Phpunit модульне тестуванняPhpunit модульне тестування
Phpunit модульне тестуванняVladimir Maslechkin
 
Test Planning & Test Strategy
Test Planning & Test StrategyTest Planning & Test Strategy
Test Planning & Test StrategyRoman Iakymchuk
 
Роман Писик - ISTQB Full Advanced: підготовка та застосування знань на практиці
Роман Писик - ISTQB Full Advanced: підготовка та застосування знань на практиціРоман Писик - ISTQB Full Advanced: підготовка та застосування знань на практиці
Роман Писик - ISTQB Full Advanced: підготовка та застосування знань на практиціGoQA
 
Isa88 основа стандарту інтегрованого виробництва
Isa88 основа стандарту інтегрованого виробництваIsa88 основа стандарту інтегрованого виробництва
Isa88 основа стандарту інтегрованого виробництваПупена Александр
 

Similar to cpp-2013 #16 Automated testing (20)

МИХАЙЛО БОДНАРЧУК «Як перестати боятись та полюбити автотести на JavaScript» ...
МИХАЙЛО БОДНАРЧУК «Як перестати боятись та полюбити автотести на JavaScript» ...МИХАЙЛО БОДНАРЧУК «Як перестати боятись та полюбити автотести на JavaScript» ...
МИХАЙЛО БОДНАРЧУК «Як перестати боятись та полюбити автотести на JavaScript» ...
 
[Knowledge Sharing] - Unit Testing by Pavlo Serdyuk (UKR)
[Knowledge Sharing] - Unit Testing by Pavlo Serdyuk (UKR)[Knowledge Sharing] - Unit Testing by Pavlo Serdyuk (UKR)
[Knowledge Sharing] - Unit Testing by Pavlo Serdyuk (UKR)
 
Code driven testing (UA)
Code driven testing (UA)Code driven testing (UA)
Code driven testing (UA)
 
Code driven testing -- oleksandr pavlyshak
Code driven testing -- oleksandr pavlyshakCode driven testing -- oleksandr pavlyshak
Code driven testing -- oleksandr pavlyshak
 
Anton Serputko Start performance-testing-from-scratch, BAQ
Anton Serputko Start performance-testing-from-scratch, BAQAnton Serputko Start performance-testing-from-scratch, BAQ
Anton Serputko Start performance-testing-from-scratch, BAQ
 
Oleksij burdin, baq
Oleksij burdin, baqOleksij burdin, baq
Oleksij burdin, baq
 
Phpunit
PhpunitPhpunit
Phpunit
 
ОЛЕКСАНДР ХОТЕМСЬКИЙ «ChatGPT: який вплив буде мати на тестування?» Online Q...
ОЛЕКСАНДР ХОТЕМСЬКИЙ «ChatGPT: який вплив буде мати на тестування?»  Online Q...ОЛЕКСАНДР ХОТЕМСЬКИЙ «ChatGPT: який вплив буде мати на тестування?»  Online Q...
ОЛЕКСАНДР ХОТЕМСЬКИЙ «ChatGPT: який вплив буде мати на тестування?» Online Q...
 
07 - vysnovky z tdd, pohliad pochatkivtsia - vitalii zinchenko it event 2013...
07 -  vysnovky z tdd, pohliad pochatkivtsia - vitalii zinchenko it event 2013...07 -  vysnovky z tdd, pohliad pochatkivtsia - vitalii zinchenko it event 2013...
07 - vysnovky z tdd, pohliad pochatkivtsia - vitalii zinchenko it event 2013...
 
Покрокова інструкція створення онлайн тестів на прикладі сервісу Майстер-Тест
Покрокова інструкція створення онлайн тестів на прикладі сервісу Майстер-ТестПокрокова інструкція створення онлайн тестів на прикладі сервісу Майстер-Тест
Покрокова інструкція створення онлайн тестів на прикладі сервісу Майстер-Тест
 
Як покращити Python web UI тести
Як покращити Python web UI тестиЯк покращити Python web UI тести
Як покращити Python web UI тести
 
етапи розвязування задач
етапи розвязування задачетапи розвязування задач
етапи розвязування задач
 
Структура тест-кейсу та звіту про помилки.pptx
Структура тест-кейсу та звіту про помилки.pptxСтруктура тест-кейсу та звіту про помилки.pptx
Структура тест-кейсу та звіту про помилки.pptx
 
QA Fest 2016. Яна Кокряшкіна. Паралельний запуск автоматизованих тестів за до...
QA Fest 2016. Яна Кокряшкіна. Паралельний запуск автоматизованих тестів за до...QA Fest 2016. Яна Кокряшкіна. Паралельний запуск автоматизованих тестів за до...
QA Fest 2016. Яна Кокряшкіна. Паралельний запуск автоматизованих тестів за до...
 
S88.01 tutorial (укр мова)
S88.01 tutorial (укр мова)S88.01 tutorial (укр мова)
S88.01 tutorial (укр мова)
 
Testing Web in Agile
Testing Web in AgileTesting Web in Agile
Testing Web in Agile
 
Phpunit модульне тестування
Phpunit модульне тестуванняPhpunit модульне тестування
Phpunit модульне тестування
 
Test Planning & Test Strategy
Test Planning & Test StrategyTest Planning & Test Strategy
Test Planning & Test Strategy
 
Роман Писик - ISTQB Full Advanced: підготовка та застосування знань на практиці
Роман Писик - ISTQB Full Advanced: підготовка та застосування знань на практиціРоман Писик - ISTQB Full Advanced: підготовка та застосування знань на практиці
Роман Писик - ISTQB Full Advanced: підготовка та застосування знань на практиці
 
Isa88 основа стандарту інтегрованого виробництва
Isa88 основа стандарту інтегрованого виробництваIsa88 основа стандарту інтегрованого виробництва
Isa88 основа стандарту інтегрованого виробництва
 

More from Amazon Web Services

More from Amazon Web Services (12)

cpp-2013 #19 Concurrency
cpp-2013 #19 Concurrencycpp-2013 #19 Concurrency
cpp-2013 #19 Concurrency
 
cpp-2013 #15 Databases
cpp-2013 #15 Databasescpp-2013 #15 Databases
cpp-2013 #15 Databases
 
cpp-2013 #14 Основи Qt
cpp-2013 #14 Основи Qtcpp-2013 #14 Основи Qt
cpp-2013 #14 Основи Qt
 
cpp-2013 #13 C++11
cpp-2013 #13 C++11cpp-2013 #13 C++11
cpp-2013 #13 C++11
 
cpp-2013 #9 STL Algorithms Part 1
cpp-2013 #9 STL Algorithms Part 1cpp-2013 #9 STL Algorithms Part 1
cpp-2013 #9 STL Algorithms Part 1
 
cpp-2013 #8 STL Containers Part 2
cpp-2013 #8 STL Containers Part 2cpp-2013 #8 STL Containers Part 2
cpp-2013 #8 STL Containers Part 2
 
cpp-2013 #7 Templates and STL Containers
cpp-2013 #7 Templates and STL Containerscpp-2013 #7 Templates and STL Containers
cpp-2013 #7 Templates and STL Containers
 
cpp-2013 #6 OOP Part 2
cpp-2013 #6 OOP Part 2cpp-2013 #6 OOP Part 2
cpp-2013 #6 OOP Part 2
 
cpp-2013 #5 File and network input/output
cpp-2013 #5 File and network input/outputcpp-2013 #5 File and network input/output
cpp-2013 #5 File and network input/output
 
cpp-2013 #3 OOP Basics
cpp-2013 #3 OOP Basicscpp-2013 #3 OOP Basics
cpp-2013 #3 OOP Basics
 
cpp-2013 #2 Organizing your code
cpp-2013 #2 Organizing your codecpp-2013 #2 Organizing your code
cpp-2013 #2 Organizing your code
 
cpp-2013 #1 C++ basics
cpp-2013 #1 C++ basicscpp-2013 #1 C++ basics
cpp-2013 #1 C++ basics
 

cpp-2013 #16 Automated testing

  • 2. Тестування • Тестування – процес пошуку дефектів • Тестування не може довести відсутності дефектів – Лише їх наявність • В будь-якій програмі є дефекти • Краще знаходити дефекти раніше, ніж пізніше
  • 3. Тестування • Відбувається разом із розробкою • Спосіб: запускаємо і дивимось чи працює • Створюємо допоміжні засоби – Консольні програми – Допоміжний UI
  • 4. Testing Framework Призначення: • Виконання тестів • API для написання тестів • Автоматизація • Перегляд результатів
  • 5. C++ Testing Frameworks • googletest + googlemock https://code.google.com/p/googletest/ https://code.google.com/p/googlemock/ • Boost.Test http://www.boost.org/doc/libs/1_53_0/more/getting_started/ http://www.boost.org/doc/libs/1_53_0/libs/test/doc/html/utf/testing- tools/reference.html • Others http://en.wikipedia.org/wiki/List_of_unit_testing_frameworks#C.2B.2B
  • 6. // offtopic *.sdf file can grow large Keep VS IntelliSense cache in %TEMP% instead of current solution folder http://stackoverflow.com/questions/7706984/visual-studio- 2010-c-project-remove-sdf-file
  • 7. Simple test #define BOOST_TEST_MODULE MathTests #include "boost/test/included/unit_test.hpp" #include "math.hpp" Descriptive name BOOST_AUTO_TEST_CASE(AddTwoPositiveIntegersReturnsCorrectResult) { Set up System Under Test Math math; (Arrange) Call System Under Test auto result = math.add(1, 2); (Act) BOOST_REQUIRE_EQUAL(3, result); Assert } Unit test
  • 8. Модульний тест (unit test) Показує, що модуль працює правильно Тестує лише логіку (add) Не тестує взаємодію з БД, файлами, мережею Виконується в пам’яті Тестує лише один клас/метод Короткий і читабельний Не містить циклів та умов Повторюваний, не залежить від послідовності
  • 9. Assertions BOOST_REQUIRE(true); BOOST_REQUIRE_EQUAL_COLLECTIONS(begin(), end(), begin(), end()); BOOST_REQUIRE_GE(4, 3); // 4 >= 3 BOOST_REQUIRE_GT(4, 3); // 4 > 3 BOOST_REQUIRE_LE(3, 4); // 3 <= 4 BOOST_REQUIRE_LT(3, 4); // 3 < 4 BOOST_REQUIRE_NE(3, 4); // 3 != 4 BOOST_FAIL("Failure");