SlideShare a Scribd company logo
1 of 25
© 2015 Return on Intelligence, Inc. Confidential 1
Traning for beginers in UT development
Designed by LibreOffice, Kubuntu 14.04, A.Tylevich, 2016
Unit Tests ? It is very simple and easy!
© 2015 Return on Intelligence, Inc. Confidential 2
About training
This is introduction.
Tries to explain why all this is necessary.
A little of code, more philosophy and history
Why ?
For whom ?
Designed by LibreOffice, Kubuntu 14.04
© 2015 Return on Intelligence, Inc. Confidential 3
Content
Historical reference
What are Unit Tests ?
UT - what for they are necessary (philosophy)
What is the Unit and what can be the Unit
Approaches in UT
Without frameworks (stub classes)
Frameworks (examples, annotations)
UT frameworks
Junit 3, 4 (Asserts …)
TestNG
Mock frameworks
JMock
EasyMock
Mockito
EJB Mock Container
Additional frameworks
Equals Verifier
Addition of dependences in pom.xml
Code Coverage
Cobertura
Covering examples
… tools
Automation tests
QTP, Selenium
FitNesse
Links to literature and sources
Designed by LibreOffice, Kubuntu 14.04
© 2015 Return on Intelligence, Inc. Confidential 4
One of the first
attempts to
create a
programming
language, from
1943 to 1945
1940 1980 1990
In the early of 1950s
the quantity of the
developed software
increased, and
programs became
very big
1950
FORTRAN(1954)
ALGOL(1960)
Mashine
languages
Pascal(1970),
C(1972),
SQL(1978)
C++(1980),
Ada(1983),
Perl(1987)
PHP(1995),
Java(1995),
JavaScript(1995)
Some important
languages were
developed:
Python (1991),
Ruby (1993),
Delphi (1995), ...
Improvement of
the paradigms
defined in the
previous
decades
NewParadigms
and…
Historical reference
Programming languages
Designed by LibreOffice, Kubuntu 14.04
1960
New languages
appear:
Smalltalk (1972)
1970
© 2015 Return on Intelligence, Inc. Confidential 5
Historical reference
Designed by LibreOffice, Kubuntu 14.04
Testing
1980
Correctness->
searchforissues
Preventionof
mistakes
Designand
supportoftests
Early 1990s, the testing
includes planning, design,
support and implementation
of tests.
The testing starts providing
quality of the software.
1980s, a concept of the
prevention of defects appears.
Tests - method of the
prevention of issues.
Appears methodology of testing
on all cycle of development.
Exhaustive
testing
Early 1970s, testing was
presented as "activities for
confirmation of correctness of
work of the software"
From confirmations to search for
issues
1970 19901960
© 2015 Return on Intelligence, Inc. Confidential 6
Framework SUnit appears for Smalltalk language in 1998 .
Designed by LibreOffice, Kubuntu 14.04
Historical reference
Testing
SUnit represented structure and functionality to xUnit.
CppUnit - a framework for C ++
DUnit - the tool for the environment of development of Delphi
JUnit - library for Java
NUnit - environment a unit testing for .NET
phpUnit - library for PHP
vbUnit - Visual Basic
JsUnit (Jasmine) - JavaScript
© 2015 Return on Intelligence, Inc. Confidential 7
What are Unit Tests
Unit Testing is a software testing process by which individual module of
source code ... are tested to determine whether they are fit for use.
What is the process?
What is module ?
Process — implementation, writing and run of Unit Tests
Module — atomic part of a code
Designed by LibreOffice, Kubuntu 14.04
Unit testing, wikipedia
© 2015 Return on Intelligence, Inc. Confidential 8
UT - what for they are necessary
In the 1990s testing passed to ensuring the quality covering all cycle of development
You constantly are engaged in testing
(This is integration testing: "Test" buttons or class with name TestServer)
Some customers demand a very high level of testing
You need to understand how code works
You need to write a part of code, but you have no opportunity to test it in actual
environment and you exactly know what data will come to methods
It isn't necessary to write unit tests, if
You do the simple site of 3-5 html-pages with one form of sending the e-mail
You are developed a simple flash games or banners
You do the project for an exhibition
You always write a code without mistakes, you have an ideal brain and gift of
anticipation. Your code is so cool that it changes itself according to customer
requirements. Periodically the code explains to the customer that his requirements
don't need to be realized
Designed by LibreOffice, Kubuntu 14.04
Philosophy
© 2015 Return on Intelligence, Inc. Confidential 9
What is the Unit
Program
Module
Class
Method
That you will think up
Unit -
small self-sufficient part of a code realizing some behavior.
Designed by LibreOffice, Kubuntu 14.04
What can be Unit
© 2015 Return on Intelligence, Inc. Confidential 10
Approaches in UT
UT
simple atomic testing
TDD
(Test-Driven Development)
Development through testing.
Designed by LibreOffice, Kubuntu 14.04
UT -> TDD -> BDD -> DDT
© 2015 Return on Intelligence, Inc. Confidential 11
Approaches in UT
BDD
(Behavior Driven Development)
BDD is further evolution of ideas of TDD.
DDT
(Data-Driven Testing)
Methodology of the testing operated by data.
Designed by LibreOffice, Kubuntu 14.04
UT -> TDD -> BDD -> DDT
© 2015 Return on Intelligence, Inc. Confidential 12
Without frameworks
RDP ?
RDP !
Designed by LibreOffice, Kubuntu 14.04
Or how it was earlier ?
Frameworks
Or how it is now ?
RDP.
RDP.
© 2015 Return on Intelligence, Inc. Confidential 13
Framework JUnit 3 JUnit 4
Java version Java 1.4 Java 1.5
Extends TestCase -
Overrides setUp & tearDown annotations
Annotations -
@Before
@After
@Test
@Ignore
Repeated RepeatedTest @Repeat( times = xxx )
UT Frameworks
JUnit 3, 4 (Asserts…)
Designed by LibreOffice, Kubuntu 14.04
© 2015 Return on Intelligence, Inc. Confidential 14
UT Frameworks
Designed by LibreOffice, Kubuntu 14.04
TestNG
Framework JUnit 4 TestNG
Test annotation @Test @Test
Start before the suit – @BeforeSuite
Start after the suit – @AfterSuite
Start before test – @BeforeTest
Start after test – @AfterTest
Start before test from group – @BeforeGroups
Start after test from group – @AfterGroups
Start before a class @BeforeClass @BeforeClass
Start after a class @AfterClass @AfterClass
Start before each test method @Before @BeforeMethod
Start after each test method @After @AfterMethod
To ignore the test @Ignore @Test(enable=false)
To expect an exception @Test (expected = Exception.class) @Test (expectedExceptions = Exception.class)
Timeout @Test (timeout = 1000) @Test (timeout = 1000)
© 2015 Return on Intelligence, Inc. Confidential 15
UT Frameworks
Designed by LibreOffice, Kubuntu 14.04
Addition of dependences into pom.xml
JUnit 3 JUnit 4 TestNG
<dependencies>
...
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>3.8.1</version>
<scope>test</scope>
</dependency>
</dependencies>
<dependencies>
...
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.12</version>
<scope>test</scope>
</dependency>
</dependencies>
<dependencies>
...
<dependency>
<groupId>org.testng</groupId>
<artifactId>testng</artifactId>
<version>6.9.10</version>
<scope>test</scope>
</dependency>
</dependencies>
© 2015 Return on Intelligence, Inc. Confidential 16
Mock frameworks
Designed by LibreOffice, Kubuntu 14.04
And additional frameworks
JMock
Mockito
EasyMock
EJB Mock Container
Equals Verifier
Framework JMock Mockito
Type Proxy-based Proxy-based
Stubbing Yes Yes
Default return values 0, empty String, false, empty array, null 0, empty String, false, empty array, null
Instances are Strict Non-strict
Declarative No Yes
Interface additional efforts From box
Abstract class additional efforts ?
Class additional efforts From box
© 2015 Return on Intelligence, Inc. Confidential 17
Mock frameworks
Designed by LibreOffice, Kubuntu 14.04
Addition of dependences into pom.xml
JMock Mockito Equals Verifier
<dependencies>
...
<dependency>
<groupId>org.jmock</groupId>
<artifactId>jmock</artifactId>
<version>2.8.1</version>
<scope>test</scope>
</dependency>
</dependencies>
<dependencies>
...
<dependency>
<groupId>org.mockito</groupId>
<artifactId>mockito-all</artifactId>
<version>1.10.19</version>
<scope>test</scope>
</dependency>
</dependencies>
<dependencies>
…
<dependency>
<groupId>nl.jqno.equalsverifier</groupId>
<artifactId>equalsverifier</artifactId>
<version>1.7.7</version>
<scope>test</scope>
</dependency>
</dependencies>
© 2015 Return on Intelligence, Inc. Confidential 18
Code Coverage
Designed by LibreOffice, Kubuntu 14.04
Cobertura
if (x == 0) {
System.out.println("X is zero");
} else {
System.out.println("X is invalid");
}
© 2015 Return on Intelligence, Inc. Confidential 19
Code Coverage
Designed by LibreOffice, Kubuntu 14.04
Addition of Cobertura dependences into pom.xml
Dependency section Build section Reporting section
<dependencies>
...
<dependency>
<groupId>
net.sourceforge.cobertura
</groupId>
<artifactId>cobertura</artifactId>
<version>2.1.1</version>
</dependency>
</dependencies>
<build>
<plugins>
...
<plugin>
<groupId>
org.codehaus.mojo
</groupId>
<artifactId>
cobertura-maven-plugin
</artifactId>
<version>2.6</version>
<configuration>
<check>
<...Rate> ...</...Rate>
</check>
<formats>
<format>html</format>
</formats>
<instrumentation>
<excludes>
<exclude> ... /*.class</exclude>
</excludes>
</instrumentation>
</configuration>
</plugin>
</plugins>
</build>
<reporting>
<plugins>
...
<plugin>
<groupId>
org.codehaus.mojo
</groupId>
<artifactId>
cobertura-maven-
plugin
</artifactId>
<version>2.6</version>
<configuration>
<formats>
<format>html</format>
<format>xml</format>
</formats>
</configuration>
</plugin>
</plugins>
</reporting>
© 2015 Return on Intelligence, Inc. Confidential 20
Automation tests
Designed by LibreOffice, Kubuntu 14.04
QTP, Selenium
QTP Selenium
Commercial tool Open source tool
Tests can only be developed in QTP IDE Wide range of IDEs like Visual Studio,
Eclipse, Netbeans
Oly VB script Supports JAVA, .NET, Ruby, Perl, PHP, and
many other
User friendly and scripts are developed quickly Script requires more time to develop and
high skills
Latest version of HP ALM supports code that was
developed 5 years back
With new release of API the Test Scripts
need to be updated
© 2015 Return on Intelligence, Inc. Confidential 21
Automation tests
Designed by LibreOffice, Kubuntu 14.04
FitNesse
© 2015 Return on Intelligence, Inc. Confidential 22
Example
Designed by LibreOffice, Kubuntu 14.04
Why UT are necessary
© 2015 Return on Intelligence, Inc. Confidential 23
Questions
Designed by LibreOffice, Kubuntu 14.04
© 2015 Return on Intelligence, Inc. Confidential 24
Links
Designed by LibreOffice, Kubuntu 14.04
History of programming languages
https://en.wikipedia.org/wiki/History_of_programming_languages
TDD
https://en.wikipedia.org/wiki/Test-driven_development
BDD
https://en.wikipedia.org/wiki/Behavior-driven_development
xUnit
https://en.wikipedia.org/wiki/XUnit
JUnit
http://junit.org/cookbook.html
Open Source Testing Tools in Java
http://java-source.net/open-source/testing-tools
Cobertura
https://github.com/cobertura/cobertura/wiki/Roadmap
http://cobertura.github.io/cobertura/
eCobertura (Eclipce plugin)
http://ecobertura.johoop.de/
EqualsVerifier
http://www.jqno.nl/equalsverifier/
© 2015 Return on Intelligence, Inc. Confidential 25
Links to webinars
Designed by LibreOffice, Kubuntu 14.04
Вебинар "Introduction to Automation Testing"
http://www.returnonintelligence.ru/webinars/introduction-to-automation-testing
Вебинар "Code Coverage“
http://www.returnonintelligence.ru/webinars/code-coverage
Вебинар "Testing Your Code“ (TDD)
http://www.returnonintelligence.ru/webinars/testingyourcode
Вебинар "Эволюция к Behavior Driven Development на примере популярного фреймворка
JBehave"
http://www.returnonintelligence.ru/webinars/bdd

More Related Content

What's hot

Questions of java
Questions of javaQuestions of java
Questions of javaWaseem Wasi
 
DevLabs Alliance Top 50 Selenium Interview Questions for SDET
DevLabs Alliance Top 50 Selenium Interview Questions for SDETDevLabs Alliance Top 50 Selenium Interview Questions for SDET
DevLabs Alliance Top 50 Selenium Interview Questions for SDETDevLabs Alliance
 
Top 20 software testing interview questions for sdet
Top 20 software testing interview questions for sdetTop 20 software testing interview questions for sdet
Top 20 software testing interview questions for sdetDevLabs Alliance
 
Being a professional software tester
Being a professional software testerBeing a professional software tester
Being a professional software testerAnton Keks
 
Software Engineering - RS3
Software Engineering - RS3Software Engineering - RS3
Software Engineering - RS3AtakanAral
 
RPG Program for Unit Testing RPG
RPG Program for Unit Testing RPG RPG Program for Unit Testing RPG
RPG Program for Unit Testing RPG Greg.Helton
 
Type Annotations in Java 8
Type Annotations in Java 8 Type Annotations in Java 8
Type Annotations in Java 8 FinLingua, Inc.
 
37 Java Interview Questions
37 Java Interview Questions37 Java Interview Questions
37 Java Interview QuestionsArc & Codementor
 
201 core java interview questions oo ps interview questions - javatpoint
201 core java interview questions   oo ps interview questions - javatpoint201 core java interview questions   oo ps interview questions - javatpoint
201 core java interview questions oo ps interview questions - javatpointravi tyagi
 
Agile Days Twin Cities 2011
Agile Days Twin Cities 2011Agile Days Twin Cities 2011
Agile Days Twin Cities 2011Brian Repko
 
Stopping the Rot - Putting Legacy C++ Under Test
Stopping the Rot - Putting Legacy C++ Under TestStopping the Rot - Putting Legacy C++ Under Test
Stopping the Rot - Putting Legacy C++ Under TestSeb Rose
 
Introduction about Python by JanBask Training
Introduction about Python by JanBask TrainingIntroduction about Python by JanBask Training
Introduction about Python by JanBask TrainingJanBask Training
 
Using Entity Framework's New POCO Features: Part 1, by Julie Lerman
Using Entity Framework's New POCO Features: Part 1, by Julie LermanUsing Entity Framework's New POCO Features: Part 1, by Julie Lerman
Using Entity Framework's New POCO Features: Part 1, by Julie LermanJulie Lerman
 

What's hot (19)

Questions of java
Questions of javaQuestions of java
Questions of java
 
Unit testing (eng)
Unit testing (eng)Unit testing (eng)
Unit testing (eng)
 
DevLabs Alliance Top 50 Selenium Interview Questions for SDET
DevLabs Alliance Top 50 Selenium Interview Questions for SDETDevLabs Alliance Top 50 Selenium Interview Questions for SDET
DevLabs Alliance Top 50 Selenium Interview Questions for SDET
 
Top 20 software testing interview questions for sdet
Top 20 software testing interview questions for sdetTop 20 software testing interview questions for sdet
Top 20 software testing interview questions for sdet
 
Php unit (eng)
Php unit (eng)Php unit (eng)
Php unit (eng)
 
Being a professional software tester
Being a professional software testerBeing a professional software tester
Being a professional software tester
 
Debugging
DebuggingDebugging
Debugging
 
Software Engineering - RS3
Software Engineering - RS3Software Engineering - RS3
Software Engineering - RS3
 
RPG Program for Unit Testing RPG
RPG Program for Unit Testing RPG RPG Program for Unit Testing RPG
RPG Program for Unit Testing RPG
 
Type Annotations in Java 8
Type Annotations in Java 8 Type Annotations in Java 8
Type Annotations in Java 8
 
37 Java Interview Questions
37 Java Interview Questions37 Java Interview Questions
37 Java Interview Questions
 
201 core java interview questions oo ps interview questions - javatpoint
201 core java interview questions   oo ps interview questions - javatpoint201 core java interview questions   oo ps interview questions - javatpoint
201 core java interview questions oo ps interview questions - javatpoint
 
Cursus phpunit
Cursus phpunitCursus phpunit
Cursus phpunit
 
Understanding Annotations in Java
Understanding Annotations in JavaUnderstanding Annotations in Java
Understanding Annotations in Java
 
Spring IO 2015 Spock Workshop
Spring IO 2015 Spock WorkshopSpring IO 2015 Spock Workshop
Spring IO 2015 Spock Workshop
 
Agile Days Twin Cities 2011
Agile Days Twin Cities 2011Agile Days Twin Cities 2011
Agile Days Twin Cities 2011
 
Stopping the Rot - Putting Legacy C++ Under Test
Stopping the Rot - Putting Legacy C++ Under TestStopping the Rot - Putting Legacy C++ Under Test
Stopping the Rot - Putting Legacy C++ Under Test
 
Introduction about Python by JanBask Training
Introduction about Python by JanBask TrainingIntroduction about Python by JanBask Training
Introduction about Python by JanBask Training
 
Using Entity Framework's New POCO Features: Part 1, by Julie Lerman
Using Entity Framework's New POCO Features: Part 1, by Julie LermanUsing Entity Framework's New POCO Features: Part 1, by Julie Lerman
Using Entity Framework's New POCO Features: Part 1, by Julie Lerman
 

Similar to Beginner Training in UT Development

Introduction to Unified Functional Testing 12 (UFT)
Introduction to Unified Functional Testing 12 (UFT)Introduction to Unified Functional Testing 12 (UFT)
Introduction to Unified Functional Testing 12 (UFT)Archana Krushnan
 
Introduction to Unified Func. Test..pptx
Introduction to Unified Func. Test..pptxIntroduction to Unified Func. Test..pptx
Introduction to Unified Func. Test..pptxJamelPandiin2
 
Behavior Driven Development with SpecFlow
Behavior Driven Development with SpecFlowBehavior Driven Development with SpecFlow
Behavior Driven Development with SpecFlowRachid Kherrazi
 
Behavior Driven Testing with SpecFlow
Behavior Driven Testing with SpecFlowBehavior Driven Testing with SpecFlow
Behavior Driven Testing with SpecFlowRachid Kherrazi
 
Continuous Delivery with a PaaS Application
Continuous Delivery with a PaaS ApplicationContinuous Delivery with a PaaS Application
Continuous Delivery with a PaaS ApplicationMark Rendell
 
UFT- New features and comparison with QTP
UFT- New features and comparison with QTPUFT- New features and comparison with QTP
UFT- New features and comparison with QTPRita Singh
 
30 days or less: New Features to Production
30 days or less: New Features to Production30 days or less: New Features to Production
30 days or less: New Features to ProductionKarthik Gaekwad
 
UFT An advance version of QTP
UFT  An advance version of QTPUFT  An advance version of QTP
UFT An advance version of QTPRita Singh
 
Fundamentals of DevOps and CI/CD
Fundamentals of DevOps and CI/CDFundamentals of DevOps and CI/CD
Fundamentals of DevOps and CI/CDBatyr Nuryyev
 
Test driven development and unit testing with examples in C++
Test driven development and unit testing with examples in C++Test driven development and unit testing with examples in C++
Test driven development and unit testing with examples in C++Hong Le Van
 
Introduction To UnitTesting & JUnit
Introduction To UnitTesting & JUnitIntroduction To UnitTesting & JUnit
Introduction To UnitTesting & JUnitMindfire Solutions
 
Cinfony - Bring cheminformatics toolkits into tune
Cinfony - Bring cheminformatics toolkits into tuneCinfony - Bring cheminformatics toolkits into tune
Cinfony - Bring cheminformatics toolkits into tunebaoilleach
 
Tales from the Dark Side: Ori Bendet Selenium Conference India 2016
Tales from the Dark Side: Ori Bendet Selenium Conference India 2016Tales from the Dark Side: Ori Bendet Selenium Conference India 2016
Tales from the Dark Side: Ori Bendet Selenium Conference India 2016Ori Bendet
 
Using Embedded Linux for Infrastructure Systems
Using Embedded Linux for Infrastructure SystemsUsing Embedded Linux for Infrastructure Systems
Using Embedded Linux for Infrastructure SystemsYoshitake Kobayashi
 
Functest in Depth
Functest in DepthFunctest in Depth
Functest in DepthOPNFV
 
Implementing TDD in for .net Core applications
Implementing TDD in for .net Core applicationsImplementing TDD in for .net Core applications
Implementing TDD in for .net Core applicationsAhmad Kazemi
 
Devops - Continuous Integration And Continuous Development
Devops - Continuous Integration And Continuous DevelopmentDevops - Continuous Integration And Continuous Development
Devops - Continuous Integration And Continuous DevelopmentSandyJohn5
 

Similar to Beginner Training in UT Development (20)

Introduction to Unified Functional Testing 12 (UFT)
Introduction to Unified Functional Testing 12 (UFT)Introduction to Unified Functional Testing 12 (UFT)
Introduction to Unified Functional Testing 12 (UFT)
 
Introduction to Unified Func. Test..pptx
Introduction to Unified Func. Test..pptxIntroduction to Unified Func. Test..pptx
Introduction to Unified Func. Test..pptx
 
Behavior Driven Development with SpecFlow
Behavior Driven Development with SpecFlowBehavior Driven Development with SpecFlow
Behavior Driven Development with SpecFlow
 
Behavior Driven Testing with SpecFlow
Behavior Driven Testing with SpecFlowBehavior Driven Testing with SpecFlow
Behavior Driven Testing with SpecFlow
 
TDD - Agile
TDD - Agile TDD - Agile
TDD - Agile
 
Continuous Delivery with a PaaS Application
Continuous Delivery with a PaaS ApplicationContinuous Delivery with a PaaS Application
Continuous Delivery with a PaaS Application
 
UFT- New features and comparison with QTP
UFT- New features and comparison with QTPUFT- New features and comparison with QTP
UFT- New features and comparison with QTP
 
30 days or less: New Features to Production
30 days or less: New Features to Production30 days or less: New Features to Production
30 days or less: New Features to Production
 
UFT An advance version of QTP
UFT  An advance version of QTPUFT  An advance version of QTP
UFT An advance version of QTP
 
Fundamentals of DevOps and CI/CD
Fundamentals of DevOps and CI/CDFundamentals of DevOps and CI/CD
Fundamentals of DevOps and CI/CD
 
Test driven development and unit testing with examples in C++
Test driven development and unit testing with examples in C++Test driven development and unit testing with examples in C++
Test driven development and unit testing with examples in C++
 
Introduction To UnitTesting & JUnit
Introduction To UnitTesting & JUnitIntroduction To UnitTesting & JUnit
Introduction To UnitTesting & JUnit
 
Cinfony - Bring cheminformatics toolkits into tune
Cinfony - Bring cheminformatics toolkits into tuneCinfony - Bring cheminformatics toolkits into tune
Cinfony - Bring cheminformatics toolkits into tune
 
Munit_in_mule_naveen
Munit_in_mule_naveenMunit_in_mule_naveen
Munit_in_mule_naveen
 
Why test with flex unit
Why test with flex unitWhy test with flex unit
Why test with flex unit
 
Tales from the Dark Side: Ori Bendet Selenium Conference India 2016
Tales from the Dark Side: Ori Bendet Selenium Conference India 2016Tales from the Dark Side: Ori Bendet Selenium Conference India 2016
Tales from the Dark Side: Ori Bendet Selenium Conference India 2016
 
Using Embedded Linux for Infrastructure Systems
Using Embedded Linux for Infrastructure SystemsUsing Embedded Linux for Infrastructure Systems
Using Embedded Linux for Infrastructure Systems
 
Functest in Depth
Functest in DepthFunctest in Depth
Functest in Depth
 
Implementing TDD in for .net Core applications
Implementing TDD in for .net Core applicationsImplementing TDD in for .net Core applications
Implementing TDD in for .net Core applications
 
Devops - Continuous Integration And Continuous Development
Devops - Continuous Integration And Continuous DevelopmentDevops - Continuous Integration And Continuous Development
Devops - Continuous Integration And Continuous Development
 

More from Return on Intelligence

Introduction to Backbone.js & Marionette.js
Introduction to Backbone.js & Marionette.jsIntroduction to Backbone.js & Marionette.js
Introduction to Backbone.js & Marionette.jsReturn on Intelligence
 
Types of testing and their classification
Types of testing and their classificationTypes of testing and their classification
Types of testing and their classificationReturn on Intelligence
 
Apache cassandra - future without boundaries (part3)
Apache cassandra - future without boundaries (part3)Apache cassandra - future without boundaries (part3)
Apache cassandra - future without boundaries (part3)Return on Intelligence
 
Apache cassandra - future without boundaries (part2)
Apache cassandra - future without boundaries (part2)Apache cassandra - future without boundaries (part2)
Apache cassandra - future without boundaries (part2)Return on Intelligence
 
Apache cassandra - future without boundaries (part1)
Apache cassandra - future without boundaries (part1)Apache cassandra - future without boundaries (part1)
Apache cassandra - future without boundaries (part1)Return on Intelligence
 

More from Return on Intelligence (20)

Clean Code Approach
Clean Code ApproachClean Code Approach
Clean Code Approach
 
Code Coverage
Code CoverageCode Coverage
Code Coverage
 
Effective Communication in english
Effective Communication in englishEffective Communication in english
Effective Communication in english
 
Anti-patterns
Anti-patternsAnti-patterns
Anti-patterns
 
Conflicts Resolving
Conflicts ResolvingConflicts Resolving
Conflicts Resolving
 
Database versioning with liquibase
Database versioning with liquibaseDatabase versioning with liquibase
Database versioning with liquibase
 
Effective Feedback
Effective FeedbackEffective Feedback
Effective Feedback
 
English for Negotiations 2016
English for Negotiations 2016English for Negotiations 2016
English for Negotiations 2016
 
Lean Software Development
Lean Software DevelopmentLean Software Development
Lean Software Development
 
Quick Start to AngularJS
Quick Start to AngularJSQuick Start to AngularJS
Quick Start to AngularJS
 
Introduction to Backbone.js & Marionette.js
Introduction to Backbone.js & Marionette.jsIntroduction to Backbone.js & Marionette.js
Introduction to Backbone.js & Marionette.js
 
Types of testing and their classification
Types of testing and their classificationTypes of testing and their classification
Types of testing and their classification
 
Introduction to EJB
Introduction to EJBIntroduction to EJB
Introduction to EJB
 
Enterprise Service Bus
Enterprise Service BusEnterprise Service Bus
Enterprise Service Bus
 
Apache cassandra - future without boundaries (part3)
Apache cassandra - future without boundaries (part3)Apache cassandra - future without boundaries (part3)
Apache cassandra - future without boundaries (part3)
 
Apache cassandra - future without boundaries (part2)
Apache cassandra - future without boundaries (part2)Apache cassandra - future without boundaries (part2)
Apache cassandra - future without boundaries (part2)
 
Apache cassandra - future without boundaries (part1)
Apache cassandra - future without boundaries (part1)Apache cassandra - future without boundaries (part1)
Apache cassandra - future without boundaries (part1)
 
Career development in exigen services
Career development in exigen servicesCareer development in exigen services
Career development in exigen services
 
Introduction to selenium web driver
Introduction to selenium web driverIntroduction to selenium web driver
Introduction to selenium web driver
 
Enterprise service bus part 2
Enterprise service bus part 2Enterprise service bus part 2
Enterprise service bus part 2
 

Recently uploaded

A Secure and Reliable Document Management System is Essential.docx
A Secure and Reliable Document Management System is Essential.docxA Secure and Reliable Document Management System is Essential.docx
A Secure and Reliable Document Management System is Essential.docxComplianceQuest1
 
Optimizing AI for immediate response in Smart CCTV
Optimizing AI for immediate response in Smart CCTVOptimizing AI for immediate response in Smart CCTV
Optimizing AI for immediate response in Smart CCTVshikhaohhpro
 
5 Signs You Need a Fashion PLM Software.pdf
5 Signs You Need a Fashion PLM Software.pdf5 Signs You Need a Fashion PLM Software.pdf
5 Signs You Need a Fashion PLM Software.pdfWave PLM
 
SyndBuddy AI 2k Review 2024: Revolutionizing Content Syndication with AI
SyndBuddy AI 2k Review 2024: Revolutionizing Content Syndication with AISyndBuddy AI 2k Review 2024: Revolutionizing Content Syndication with AI
SyndBuddy AI 2k Review 2024: Revolutionizing Content Syndication with AIABDERRAOUF MEHENNI
 
Hand gesture recognition PROJECT PPT.pptx
Hand gesture recognition PROJECT PPT.pptxHand gesture recognition PROJECT PPT.pptx
Hand gesture recognition PROJECT PPT.pptxbodapatigopi8531
 
Unveiling the Tech Salsa of LAMs with Janus in Real-Time Applications
Unveiling the Tech Salsa of LAMs with Janus in Real-Time ApplicationsUnveiling the Tech Salsa of LAMs with Janus in Real-Time Applications
Unveiling the Tech Salsa of LAMs with Janus in Real-Time ApplicationsAlberto González Trastoy
 
TECUNIQUE: Success Stories: IT Service provider
TECUNIQUE: Success Stories: IT Service providerTECUNIQUE: Success Stories: IT Service provider
TECUNIQUE: Success Stories: IT Service providermohitmore19
 
Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...
Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...
Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...Steffen Staab
 
Software Quality Assurance Interview Questions
Software Quality Assurance Interview QuestionsSoftware Quality Assurance Interview Questions
Software Quality Assurance Interview QuestionsArshad QA
 
How To Troubleshoot Collaboration Apps for the Modern Connected Worker
How To Troubleshoot Collaboration Apps for the Modern Connected WorkerHow To Troubleshoot Collaboration Apps for the Modern Connected Worker
How To Troubleshoot Collaboration Apps for the Modern Connected WorkerThousandEyes
 
CALL ON ➥8923113531 🔝Call Girls Badshah Nagar Lucknow best Female service
CALL ON ➥8923113531 🔝Call Girls Badshah Nagar Lucknow best Female serviceCALL ON ➥8923113531 🔝Call Girls Badshah Nagar Lucknow best Female service
CALL ON ➥8923113531 🔝Call Girls Badshah Nagar Lucknow best Female serviceanilsa9823
 
The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...
The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...
The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...ICS
 
Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...
Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...
Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...MyIntelliSource, Inc.
 
Unlocking the Future of AI Agents with Large Language Models
Unlocking the Future of AI Agents with Large Language ModelsUnlocking the Future of AI Agents with Large Language Models
Unlocking the Future of AI Agents with Large Language Modelsaagamshah0812
 
CALL ON ➥8923113531 🔝Call Girls Kakori Lucknow best sexual service Online ☂️
CALL ON ➥8923113531 🔝Call Girls Kakori Lucknow best sexual service Online  ☂️CALL ON ➥8923113531 🔝Call Girls Kakori Lucknow best sexual service Online  ☂️
CALL ON ➥8923113531 🔝Call Girls Kakori Lucknow best sexual service Online ☂️anilsa9823
 
Right Money Management App For Your Financial Goals
Right Money Management App For Your Financial GoalsRight Money Management App For Your Financial Goals
Right Money Management App For Your Financial GoalsJhone kinadey
 
Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...
Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...
Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...harshavardhanraghave
 
W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...
W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...
W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...panagenda
 
Learn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdf
Learn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdfLearn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdf
Learn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdfkalichargn70th171
 

Recently uploaded (20)

A Secure and Reliable Document Management System is Essential.docx
A Secure and Reliable Document Management System is Essential.docxA Secure and Reliable Document Management System is Essential.docx
A Secure and Reliable Document Management System is Essential.docx
 
Optimizing AI for immediate response in Smart CCTV
Optimizing AI for immediate response in Smart CCTVOptimizing AI for immediate response in Smart CCTV
Optimizing AI for immediate response in Smart CCTV
 
5 Signs You Need a Fashion PLM Software.pdf
5 Signs You Need a Fashion PLM Software.pdf5 Signs You Need a Fashion PLM Software.pdf
5 Signs You Need a Fashion PLM Software.pdf
 
SyndBuddy AI 2k Review 2024: Revolutionizing Content Syndication with AI
SyndBuddy AI 2k Review 2024: Revolutionizing Content Syndication with AISyndBuddy AI 2k Review 2024: Revolutionizing Content Syndication with AI
SyndBuddy AI 2k Review 2024: Revolutionizing Content Syndication with AI
 
Hand gesture recognition PROJECT PPT.pptx
Hand gesture recognition PROJECT PPT.pptxHand gesture recognition PROJECT PPT.pptx
Hand gesture recognition PROJECT PPT.pptx
 
Unveiling the Tech Salsa of LAMs with Janus in Real-Time Applications
Unveiling the Tech Salsa of LAMs with Janus in Real-Time ApplicationsUnveiling the Tech Salsa of LAMs with Janus in Real-Time Applications
Unveiling the Tech Salsa of LAMs with Janus in Real-Time Applications
 
TECUNIQUE: Success Stories: IT Service provider
TECUNIQUE: Success Stories: IT Service providerTECUNIQUE: Success Stories: IT Service provider
TECUNIQUE: Success Stories: IT Service provider
 
Microsoft AI Transformation Partner Playbook.pdf
Microsoft AI Transformation Partner Playbook.pdfMicrosoft AI Transformation Partner Playbook.pdf
Microsoft AI Transformation Partner Playbook.pdf
 
Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...
Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...
Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...
 
Software Quality Assurance Interview Questions
Software Quality Assurance Interview QuestionsSoftware Quality Assurance Interview Questions
Software Quality Assurance Interview Questions
 
How To Troubleshoot Collaboration Apps for the Modern Connected Worker
How To Troubleshoot Collaboration Apps for the Modern Connected WorkerHow To Troubleshoot Collaboration Apps for the Modern Connected Worker
How To Troubleshoot Collaboration Apps for the Modern Connected Worker
 
CALL ON ➥8923113531 🔝Call Girls Badshah Nagar Lucknow best Female service
CALL ON ➥8923113531 🔝Call Girls Badshah Nagar Lucknow best Female serviceCALL ON ➥8923113531 🔝Call Girls Badshah Nagar Lucknow best Female service
CALL ON ➥8923113531 🔝Call Girls Badshah Nagar Lucknow best Female service
 
The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...
The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...
The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...
 
Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...
Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...
Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...
 
Unlocking the Future of AI Agents with Large Language Models
Unlocking the Future of AI Agents with Large Language ModelsUnlocking the Future of AI Agents with Large Language Models
Unlocking the Future of AI Agents with Large Language Models
 
CALL ON ➥8923113531 🔝Call Girls Kakori Lucknow best sexual service Online ☂️
CALL ON ➥8923113531 🔝Call Girls Kakori Lucknow best sexual service Online  ☂️CALL ON ➥8923113531 🔝Call Girls Kakori Lucknow best sexual service Online  ☂️
CALL ON ➥8923113531 🔝Call Girls Kakori Lucknow best sexual service Online ☂️
 
Right Money Management App For Your Financial Goals
Right Money Management App For Your Financial GoalsRight Money Management App For Your Financial Goals
Right Money Management App For Your Financial Goals
 
Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...
Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...
Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...
 
W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...
W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...
W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...
 
Learn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdf
Learn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdfLearn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdf
Learn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdf
 

Beginner Training in UT Development

  • 1. © 2015 Return on Intelligence, Inc. Confidential 1 Traning for beginers in UT development Designed by LibreOffice, Kubuntu 14.04, A.Tylevich, 2016 Unit Tests ? It is very simple and easy!
  • 2. © 2015 Return on Intelligence, Inc. Confidential 2 About training This is introduction. Tries to explain why all this is necessary. A little of code, more philosophy and history Why ? For whom ? Designed by LibreOffice, Kubuntu 14.04
  • 3. © 2015 Return on Intelligence, Inc. Confidential 3 Content Historical reference What are Unit Tests ? UT - what for they are necessary (philosophy) What is the Unit and what can be the Unit Approaches in UT Without frameworks (stub classes) Frameworks (examples, annotations) UT frameworks Junit 3, 4 (Asserts …) TestNG Mock frameworks JMock EasyMock Mockito EJB Mock Container Additional frameworks Equals Verifier Addition of dependences in pom.xml Code Coverage Cobertura Covering examples … tools Automation tests QTP, Selenium FitNesse Links to literature and sources Designed by LibreOffice, Kubuntu 14.04
  • 4. © 2015 Return on Intelligence, Inc. Confidential 4 One of the first attempts to create a programming language, from 1943 to 1945 1940 1980 1990 In the early of 1950s the quantity of the developed software increased, and programs became very big 1950 FORTRAN(1954) ALGOL(1960) Mashine languages Pascal(1970), C(1972), SQL(1978) C++(1980), Ada(1983), Perl(1987) PHP(1995), Java(1995), JavaScript(1995) Some important languages were developed: Python (1991), Ruby (1993), Delphi (1995), ... Improvement of the paradigms defined in the previous decades NewParadigms and… Historical reference Programming languages Designed by LibreOffice, Kubuntu 14.04 1960 New languages appear: Smalltalk (1972) 1970
  • 5. © 2015 Return on Intelligence, Inc. Confidential 5 Historical reference Designed by LibreOffice, Kubuntu 14.04 Testing 1980 Correctness-> searchforissues Preventionof mistakes Designand supportoftests Early 1990s, the testing includes planning, design, support and implementation of tests. The testing starts providing quality of the software. 1980s, a concept of the prevention of defects appears. Tests - method of the prevention of issues. Appears methodology of testing on all cycle of development. Exhaustive testing Early 1970s, testing was presented as "activities for confirmation of correctness of work of the software" From confirmations to search for issues 1970 19901960
  • 6. © 2015 Return on Intelligence, Inc. Confidential 6 Framework SUnit appears for Smalltalk language in 1998 . Designed by LibreOffice, Kubuntu 14.04 Historical reference Testing SUnit represented structure and functionality to xUnit. CppUnit - a framework for C ++ DUnit - the tool for the environment of development of Delphi JUnit - library for Java NUnit - environment a unit testing for .NET phpUnit - library for PHP vbUnit - Visual Basic JsUnit (Jasmine) - JavaScript
  • 7. © 2015 Return on Intelligence, Inc. Confidential 7 What are Unit Tests Unit Testing is a software testing process by which individual module of source code ... are tested to determine whether they are fit for use. What is the process? What is module ? Process — implementation, writing and run of Unit Tests Module — atomic part of a code Designed by LibreOffice, Kubuntu 14.04 Unit testing, wikipedia
  • 8. © 2015 Return on Intelligence, Inc. Confidential 8 UT - what for they are necessary In the 1990s testing passed to ensuring the quality covering all cycle of development You constantly are engaged in testing (This is integration testing: "Test" buttons or class with name TestServer) Some customers demand a very high level of testing You need to understand how code works You need to write a part of code, but you have no opportunity to test it in actual environment and you exactly know what data will come to methods It isn't necessary to write unit tests, if You do the simple site of 3-5 html-pages with one form of sending the e-mail You are developed a simple flash games or banners You do the project for an exhibition You always write a code without mistakes, you have an ideal brain and gift of anticipation. Your code is so cool that it changes itself according to customer requirements. Periodically the code explains to the customer that his requirements don't need to be realized Designed by LibreOffice, Kubuntu 14.04 Philosophy
  • 9. © 2015 Return on Intelligence, Inc. Confidential 9 What is the Unit Program Module Class Method That you will think up Unit - small self-sufficient part of a code realizing some behavior. Designed by LibreOffice, Kubuntu 14.04 What can be Unit
  • 10. © 2015 Return on Intelligence, Inc. Confidential 10 Approaches in UT UT simple atomic testing TDD (Test-Driven Development) Development through testing. Designed by LibreOffice, Kubuntu 14.04 UT -> TDD -> BDD -> DDT
  • 11. © 2015 Return on Intelligence, Inc. Confidential 11 Approaches in UT BDD (Behavior Driven Development) BDD is further evolution of ideas of TDD. DDT (Data-Driven Testing) Methodology of the testing operated by data. Designed by LibreOffice, Kubuntu 14.04 UT -> TDD -> BDD -> DDT
  • 12. © 2015 Return on Intelligence, Inc. Confidential 12 Without frameworks RDP ? RDP ! Designed by LibreOffice, Kubuntu 14.04 Or how it was earlier ? Frameworks Or how it is now ? RDP. RDP.
  • 13. © 2015 Return on Intelligence, Inc. Confidential 13 Framework JUnit 3 JUnit 4 Java version Java 1.4 Java 1.5 Extends TestCase - Overrides setUp & tearDown annotations Annotations - @Before @After @Test @Ignore Repeated RepeatedTest @Repeat( times = xxx ) UT Frameworks JUnit 3, 4 (Asserts…) Designed by LibreOffice, Kubuntu 14.04
  • 14. © 2015 Return on Intelligence, Inc. Confidential 14 UT Frameworks Designed by LibreOffice, Kubuntu 14.04 TestNG Framework JUnit 4 TestNG Test annotation @Test @Test Start before the suit – @BeforeSuite Start after the suit – @AfterSuite Start before test – @BeforeTest Start after test – @AfterTest Start before test from group – @BeforeGroups Start after test from group – @AfterGroups Start before a class @BeforeClass @BeforeClass Start after a class @AfterClass @AfterClass Start before each test method @Before @BeforeMethod Start after each test method @After @AfterMethod To ignore the test @Ignore @Test(enable=false) To expect an exception @Test (expected = Exception.class) @Test (expectedExceptions = Exception.class) Timeout @Test (timeout = 1000) @Test (timeout = 1000)
  • 15. © 2015 Return on Intelligence, Inc. Confidential 15 UT Frameworks Designed by LibreOffice, Kubuntu 14.04 Addition of dependences into pom.xml JUnit 3 JUnit 4 TestNG <dependencies> ... <dependency> <groupId>junit</groupId> <artifactId>junit</artifactId> <version>3.8.1</version> <scope>test</scope> </dependency> </dependencies> <dependencies> ... <dependency> <groupId>junit</groupId> <artifactId>junit</artifactId> <version>4.12</version> <scope>test</scope> </dependency> </dependencies> <dependencies> ... <dependency> <groupId>org.testng</groupId> <artifactId>testng</artifactId> <version>6.9.10</version> <scope>test</scope> </dependency> </dependencies>
  • 16. © 2015 Return on Intelligence, Inc. Confidential 16 Mock frameworks Designed by LibreOffice, Kubuntu 14.04 And additional frameworks JMock Mockito EasyMock EJB Mock Container Equals Verifier Framework JMock Mockito Type Proxy-based Proxy-based Stubbing Yes Yes Default return values 0, empty String, false, empty array, null 0, empty String, false, empty array, null Instances are Strict Non-strict Declarative No Yes Interface additional efforts From box Abstract class additional efforts ? Class additional efforts From box
  • 17. © 2015 Return on Intelligence, Inc. Confidential 17 Mock frameworks Designed by LibreOffice, Kubuntu 14.04 Addition of dependences into pom.xml JMock Mockito Equals Verifier <dependencies> ... <dependency> <groupId>org.jmock</groupId> <artifactId>jmock</artifactId> <version>2.8.1</version> <scope>test</scope> </dependency> </dependencies> <dependencies> ... <dependency> <groupId>org.mockito</groupId> <artifactId>mockito-all</artifactId> <version>1.10.19</version> <scope>test</scope> </dependency> </dependencies> <dependencies> … <dependency> <groupId>nl.jqno.equalsverifier</groupId> <artifactId>equalsverifier</artifactId> <version>1.7.7</version> <scope>test</scope> </dependency> </dependencies>
  • 18. © 2015 Return on Intelligence, Inc. Confidential 18 Code Coverage Designed by LibreOffice, Kubuntu 14.04 Cobertura if (x == 0) { System.out.println("X is zero"); } else { System.out.println("X is invalid"); }
  • 19. © 2015 Return on Intelligence, Inc. Confidential 19 Code Coverage Designed by LibreOffice, Kubuntu 14.04 Addition of Cobertura dependences into pom.xml Dependency section Build section Reporting section <dependencies> ... <dependency> <groupId> net.sourceforge.cobertura </groupId> <artifactId>cobertura</artifactId> <version>2.1.1</version> </dependency> </dependencies> <build> <plugins> ... <plugin> <groupId> org.codehaus.mojo </groupId> <artifactId> cobertura-maven-plugin </artifactId> <version>2.6</version> <configuration> <check> <...Rate> ...</...Rate> </check> <formats> <format>html</format> </formats> <instrumentation> <excludes> <exclude> ... /*.class</exclude> </excludes> </instrumentation> </configuration> </plugin> </plugins> </build> <reporting> <plugins> ... <plugin> <groupId> org.codehaus.mojo </groupId> <artifactId> cobertura-maven- plugin </artifactId> <version>2.6</version> <configuration> <formats> <format>html</format> <format>xml</format> </formats> </configuration> </plugin> </plugins> </reporting>
  • 20. © 2015 Return on Intelligence, Inc. Confidential 20 Automation tests Designed by LibreOffice, Kubuntu 14.04 QTP, Selenium QTP Selenium Commercial tool Open source tool Tests can only be developed in QTP IDE Wide range of IDEs like Visual Studio, Eclipse, Netbeans Oly VB script Supports JAVA, .NET, Ruby, Perl, PHP, and many other User friendly and scripts are developed quickly Script requires more time to develop and high skills Latest version of HP ALM supports code that was developed 5 years back With new release of API the Test Scripts need to be updated
  • 21. © 2015 Return on Intelligence, Inc. Confidential 21 Automation tests Designed by LibreOffice, Kubuntu 14.04 FitNesse
  • 22. © 2015 Return on Intelligence, Inc. Confidential 22 Example Designed by LibreOffice, Kubuntu 14.04 Why UT are necessary
  • 23. © 2015 Return on Intelligence, Inc. Confidential 23 Questions Designed by LibreOffice, Kubuntu 14.04
  • 24. © 2015 Return on Intelligence, Inc. Confidential 24 Links Designed by LibreOffice, Kubuntu 14.04 History of programming languages https://en.wikipedia.org/wiki/History_of_programming_languages TDD https://en.wikipedia.org/wiki/Test-driven_development BDD https://en.wikipedia.org/wiki/Behavior-driven_development xUnit https://en.wikipedia.org/wiki/XUnit JUnit http://junit.org/cookbook.html Open Source Testing Tools in Java http://java-source.net/open-source/testing-tools Cobertura https://github.com/cobertura/cobertura/wiki/Roadmap http://cobertura.github.io/cobertura/ eCobertura (Eclipce plugin) http://ecobertura.johoop.de/ EqualsVerifier http://www.jqno.nl/equalsverifier/
  • 25. © 2015 Return on Intelligence, Inc. Confidential 25 Links to webinars Designed by LibreOffice, Kubuntu 14.04 Вебинар "Introduction to Automation Testing" http://www.returnonintelligence.ru/webinars/introduction-to-automation-testing Вебинар "Code Coverage“ http://www.returnonintelligence.ru/webinars/code-coverage Вебинар "Testing Your Code“ (TDD) http://www.returnonintelligence.ru/webinars/testingyourcode Вебинар "Эволюция к Behavior Driven Development на примере популярного фреймворка JBehave" http://www.returnonintelligence.ru/webinars/bdd