SlideShare une entreprise Scribd logo
1  sur  6
Télécharger pour lire hors ligne
Test-Driven Development and Quality-Engineering Implementation
2
Developer-Level Testing
developers are responsible for validating tests before committing code
Regression  Tes,ng
04 Smoke  Tests
Integra,on  Tests
Unit  Tests
03
02
01
Regression
A  test  that  was  wri;en  when  a  
bug   was   fixed.   It   ensure   that  
this  specific  bug  will  not  occur  
again.   The   full   name   is   "non-­‐
regression  test".  It  can  also  be  
a   test   made   prior   to   changing  
an   applica,on   to   make   sure  
the   applica,on   provides   the  
same  outcome.
Smoke
A  simple  integra,on  test  where  
we   just   check   that   when   the  
system  under  test  is  invoked  it  
returns  normally  and  does  not  
blow  up.  It  is  an  analogy  with  
electronics,  where  the  first  test  
occurs   when   powering   up   a  
circuit:  if  it  smokes,  it's  bad.
Integra,on
Test  the  correct  inter-­‐opera,on  
of   mul,ple   subsystems.   There  
is   whole   spectrum   here,   from  
tes,ng   integra,on   between  
two   classes,   to   tes,ng   full  
integra,on   with   the   live    
database   and   the   produc,on  
environment.
Unit
Specify   and   test   one   point   of  
contact  of  a  single  method  of  a  
class.   This   should   have   a   very  
narrow  and  well  defined  scope.  
Complex   dependencies   and  
interac,ons   to   the   outside  
world  are  stubbed  or  mocked.
3
Acceptance  Test
Test  that  a  feature  or  use  case  
is  correctly  implemented.  It  is  
similar  to  an  integra,on  test,  
but  with  a  focus  on  the  use  
case  to  provide  rather  than  on  
the  components  involved.
System  Test
Test  that  tests  a  system  as  a  
black  box.  Dependencies  on  
other  systems  are  oPen  
mocked  or  stubbed  during  the  
test  (otherwise  it  would  be  
more  of  an  integra,on  test).
Pre-­‐Flight  Check
Tests  that  are  repeated  in  a  
produc,on-­‐like  environment,  
to  alleviate  the  'builds  on  my  
machine'  syndrome.  OPen  this  
is  realized  by  doing  an  
acceptance  or  smoke  test  in  a  
produc,on-­‐like  environment
System-Level Testing
system tests are run after code has been merged and deployed  to integration environments
4
Pre-­‐Flight  Check
Smoke  Tests
Unit  Tests
Near-term mobile platform testing suffers from the
resource-constrained nature of the mobile engineering
department. Due to this restriction, our process for
mobile testing is compressed.
Unit Tests are written for functionality that would be
difficult to manually test.
Smoke Tests are written for major functionality, and
represent a broad spectrum of basic testing.
Acceptance Tests are now performed manually on the
mobile side of the house.
Pre-Flight Check is also a manual step in Q1, in order to
meet deadlines. The goal is to make this step automatic
by Q3 2015.
Mobile Platform Testing
Acceptance  Test
Mobile Platform Testing
mobile testing processes are resource-constrained in Q1 2015
5
Test-­‐driven  development  (TDD)  is  a  soPware  development  process  that  relies  on  the  repe,,on  of  a  
very  short  development  cycle:  first  the  developer  writes  an  (ini,ally  failing)  automated  test  case  
that  defines  a  desired  improvement  or  new  func,on,  then  produces  the  minimum  amount  of  code  
to  pass  that  test,  and  finally  refactors  the  new  code  to  acceptable  standards.
TASK ASSIGNED BUILD TESTS WRITE CODE TEST
REVIEW
DEPLOY
COMMIT
Test-Driven Workflow Overview
JIRA workflow for test-driven development
6
Test-Driven Development Integration Tools
Technologies  exist  for  facilita,ng  test-­‐driven  development  and  managing  workflows  associated  
with  implemen,ng  this  process.  These  tools  are  instrumental  in  helping  developers  see  TDD  as  a  
tool  rather  than  a  burden.
Maven UnitTest Jenkins JIRA Selenium
Technology Integration
tools and technologies used in test-driven development

Contenu connexe

Tendances

12 functional-system-testing
12 functional-system-testing12 functional-system-testing
12 functional-system-testingnickynicks76
 
Software Testing Tecniques
Software Testing TecniquesSoftware Testing Tecniques
Software Testing Tecniquesersanbilik
 
TDD in the ABAP world - sitNL 2013 edition
TDD in the ABAP world - sitNL 2013 editionTDD in the ABAP world - sitNL 2013 edition
TDD in the ABAP world - sitNL 2013 editionHendrik Neumann
 
ABAP Code Retreat Frankfurt 2016: TDD - Test Driven Development
ABAP Code Retreat Frankfurt 2016: TDD - Test Driven DevelopmentABAP Code Retreat Frankfurt 2016: TDD - Test Driven Development
ABAP Code Retreat Frankfurt 2016: TDD - Test Driven DevelopmentHendrik Neumann
 
Practical unit testing in c & c++
Practical unit testing in c & c++Practical unit testing in c & c++
Practical unit testing in c & c++Matt Hargett
 
Quality assurance tests
Quality assurance testsQuality assurance tests
Quality assurance testsamitzore
 
Software Testing
Software TestingSoftware Testing
Software TestingKiran Kumar
 
Combinatorial testing ppt
Combinatorial testing pptCombinatorial testing ppt
Combinatorial testing pptKedar Kumar
 
Unit tests & TDD
Unit tests & TDDUnit tests & TDD
Unit tests & TDDDror Helper
 
Hunt On The White Rabbit 10 A Eng
Hunt On The White Rabbit 10 A EngHunt On The White Rabbit 10 A Eng
Hunt On The White Rabbit 10 A EngAndrew Issaenko
 
Unit Testing Concepts and Best Practices
Unit Testing Concepts and Best PracticesUnit Testing Concepts and Best Practices
Unit Testing Concepts and Best PracticesDerek Smith
 
Parasoft .TEST, Write better C# Code Using Data Flow Analysis
Parasoft .TEST, Write better C# Code Using  Data Flow Analysis Parasoft .TEST, Write better C# Code Using  Data Flow Analysis
Parasoft .TEST, Write better C# Code Using Data Flow Analysis Engineering Software Lab
 
Testy dymne, integracyjne i jednostkowe w Laravel
Testy dymne, integracyjne i jednostkowe w LaravelTesty dymne, integracyjne i jednostkowe w Laravel
Testy dymne, integracyjne i jednostkowe w LaravelLaravel Poland MeetUp
 

Tendances (20)

Mutation Testing
Mutation TestingMutation Testing
Mutation Testing
 
Unit Testing
Unit TestingUnit Testing
Unit Testing
 
12 functional-system-testing
12 functional-system-testing12 functional-system-testing
12 functional-system-testing
 
System testing
System testingSystem testing
System testing
 
Types of Non Functional Testing
Types of Non Functional TestingTypes of Non Functional Testing
Types of Non Functional Testing
 
Software Testing Tecniques
Software Testing TecniquesSoftware Testing Tecniques
Software Testing Tecniques
 
TDD in the ABAP world - sitNL 2013 edition
TDD in the ABAP world - sitNL 2013 editionTDD in the ABAP world - sitNL 2013 edition
TDD in the ABAP world - sitNL 2013 edition
 
ABAP Code Retreat Frankfurt 2016: TDD - Test Driven Development
ABAP Code Retreat Frankfurt 2016: TDD - Test Driven DevelopmentABAP Code Retreat Frankfurt 2016: TDD - Test Driven Development
ABAP Code Retreat Frankfurt 2016: TDD - Test Driven Development
 
Practical unit testing in c & c++
Practical unit testing in c & c++Practical unit testing in c & c++
Practical unit testing in c & c++
 
Quality assurance tests
Quality assurance testsQuality assurance tests
Quality assurance tests
 
Testing &ampdebugging
Testing &ampdebuggingTesting &ampdebugging
Testing &ampdebugging
 
Software Testing
Software TestingSoftware Testing
Software Testing
 
Combinatorial testing ppt
Combinatorial testing pptCombinatorial testing ppt
Combinatorial testing ppt
 
Unit tests & TDD
Unit tests & TDDUnit tests & TDD
Unit tests & TDD
 
Test Reports
Test ReportsTest Reports
Test Reports
 
Hunt On The White Rabbit 10 A Eng
Hunt On The White Rabbit 10 A EngHunt On The White Rabbit 10 A Eng
Hunt On The White Rabbit 10 A Eng
 
Debugging
DebuggingDebugging
Debugging
 
Unit Testing Concepts and Best Practices
Unit Testing Concepts and Best PracticesUnit Testing Concepts and Best Practices
Unit Testing Concepts and Best Practices
 
Parasoft .TEST, Write better C# Code Using Data Flow Analysis
Parasoft .TEST, Write better C# Code Using  Data Flow Analysis Parasoft .TEST, Write better C# Code Using  Data Flow Analysis
Parasoft .TEST, Write better C# Code Using Data Flow Analysis
 
Testy dymne, integracyjne i jednostkowe w Laravel
Testy dymne, integracyjne i jednostkowe w LaravelTesty dymne, integracyjne i jednostkowe w Laravel
Testy dymne, integracyjne i jednostkowe w Laravel
 

Similaire à Test-Driven Development Quality Engineering

Similaire à Test-Driven Development Quality Engineering (20)

Testing
Testing Testing
Testing
 
Testing throughout the software life cycle (test levels)
Testing throughout the software life cycle (test levels)Testing throughout the software life cycle (test levels)
Testing throughout the software life cycle (test levels)
 
software testing
software testingsoftware testing
software testing
 
Software testing
Software testingSoftware testing
Software testing
 
Testing concepts
Testing conceptsTesting concepts
Testing concepts
 
Test levels
Test levelsTest levels
Test levels
 
Software test life cycle
Software test life cycleSoftware test life cycle
Software test life cycle
 
Types
TypesTypes
Types
 
Testing type
Testing typeTesting type
Testing type
 
WEEK 2 SOFTWARE TESTING TRAINING MANUAL _TYPES OF TESTING FINAL.pptx
WEEK 2 SOFTWARE TESTING TRAINING MANUAL  _TYPES OF TESTING FINAL.pptxWEEK 2 SOFTWARE TESTING TRAINING MANUAL  _TYPES OF TESTING FINAL.pptx
WEEK 2 SOFTWARE TESTING TRAINING MANUAL _TYPES OF TESTING FINAL.pptx
 
Testing ppt
Testing pptTesting ppt
Testing ppt
 
Types of software testing
Types of software testingTypes of software testing
Types of software testing
 
Software testing
Software testingSoftware testing
Software testing
 
Software testing
Software testingSoftware testing
Software testing
 
Object Oriented Testing
Object Oriented TestingObject Oriented Testing
Object Oriented Testing
 
Software testing.ppt
Software testing.pptSoftware testing.ppt
Software testing.ppt
 
softwaretesting-140721025833-phpapp02.pdf
softwaretesting-140721025833-phpapp02.pdfsoftwaretesting-140721025833-phpapp02.pdf
softwaretesting-140721025833-phpapp02.pdf
 
Software testing
Software testingSoftware testing
Software testing
 
Testing in Software Engineering.docx
Testing in Software Engineering.docxTesting in Software Engineering.docx
Testing in Software Engineering.docx
 
Unit testing - what is its importance
Unit testing - what is its importanceUnit testing - what is its importance
Unit testing - what is its importance
 

Test-Driven Development Quality Engineering

  • 1. Test-Driven Development and Quality-Engineering Implementation
  • 2. 2 Developer-Level Testing developers are responsible for validating tests before committing code Regression  Tes,ng 04 Smoke  Tests Integra,on  Tests Unit  Tests 03 02 01 Regression A  test  that  was  wri;en  when  a   bug   was   fixed.   It   ensure   that   this  specific  bug  will  not  occur   again.   The   full   name   is   "non-­‐ regression  test".  It  can  also  be   a   test   made   prior   to   changing   an   applica,on   to   make   sure   the   applica,on   provides   the   same  outcome. Smoke A  simple  integra,on  test  where   we   just   check   that   when   the   system  under  test  is  invoked  it   returns  normally  and  does  not   blow  up.  It  is  an  analogy  with   electronics,  where  the  first  test   occurs   when   powering   up   a   circuit:  if  it  smokes,  it's  bad. Integra,on Test  the  correct  inter-­‐opera,on   of   mul,ple   subsystems.   There   is   whole   spectrum   here,   from   tes,ng   integra,on   between   two   classes,   to   tes,ng   full   integra,on   with   the   live     database   and   the   produc,on   environment. Unit Specify   and   test   one   point   of   contact  of  a  single  method  of  a   class.   This   should   have   a   very   narrow  and  well  defined  scope.   Complex   dependencies   and   interac,ons   to   the   outside   world  are  stubbed  or  mocked.
  • 3. 3 Acceptance  Test Test  that  a  feature  or  use  case   is  correctly  implemented.  It  is   similar  to  an  integra,on  test,   but  with  a  focus  on  the  use   case  to  provide  rather  than  on   the  components  involved. System  Test Test  that  tests  a  system  as  a   black  box.  Dependencies  on   other  systems  are  oPen   mocked  or  stubbed  during  the   test  (otherwise  it  would  be   more  of  an  integra,on  test). Pre-­‐Flight  Check Tests  that  are  repeated  in  a   produc,on-­‐like  environment,   to  alleviate  the  'builds  on  my   machine'  syndrome.  OPen  this   is  realized  by  doing  an   acceptance  or  smoke  test  in  a   produc,on-­‐like  environment System-Level Testing system tests are run after code has been merged and deployed  to integration environments
  • 4. 4 Pre-­‐Flight  Check Smoke  Tests Unit  Tests Near-term mobile platform testing suffers from the resource-constrained nature of the mobile engineering department. Due to this restriction, our process for mobile testing is compressed. Unit Tests are written for functionality that would be difficult to manually test. Smoke Tests are written for major functionality, and represent a broad spectrum of basic testing. Acceptance Tests are now performed manually on the mobile side of the house. Pre-Flight Check is also a manual step in Q1, in order to meet deadlines. The goal is to make this step automatic by Q3 2015. Mobile Platform Testing Acceptance  Test Mobile Platform Testing mobile testing processes are resource-constrained in Q1 2015
  • 5. 5 Test-­‐driven  development  (TDD)  is  a  soPware  development  process  that  relies  on  the  repe,,on  of  a   very  short  development  cycle:  first  the  developer  writes  an  (ini,ally  failing)  automated  test  case   that  defines  a  desired  improvement  or  new  func,on,  then  produces  the  minimum  amount  of  code   to  pass  that  test,  and  finally  refactors  the  new  code  to  acceptable  standards. TASK ASSIGNED BUILD TESTS WRITE CODE TEST REVIEW DEPLOY COMMIT Test-Driven Workflow Overview JIRA workflow for test-driven development
  • 6. 6 Test-Driven Development Integration Tools Technologies  exist  for  facilita,ng  test-­‐driven  development  and  managing  workflows  associated   with  implemen,ng  this  process.  These  tools  are  instrumental  in  helping  developers  see  TDD  as  a   tool  rather  than  a  burden. Maven UnitTest Jenkins JIRA Selenium Technology Integration tools and technologies used in test-driven development