際際滷

際際滷Share a Scribd company logo
Code-driven testing
          亟亳仂: 仂亰仂弍仆亳从亳

          仍亠从舒仆亟 舒于仍亳舒从, 2011
          pavlyshak@gmail.com
Agenda
   仂仆 Unit test
   亟仄仆舒 亰舒仍亠亢仆仂亠亶, stubs
   丐亠于舒仆仆 于亰舒仄仂亟亶, mocks
   亊从仂 仂仂亳 亠于
   Unit vs integration testing
   舒从亳从亳
   亠亳从亳
丐亠于舒仆仆
 仂亳仆舒 舒亰仂仄 亰 仂亰仂弍从仂
 舒仗从舒仄仂  亟亳于亳仄仂
 弌于仂ム仄仂 亟仂仗仂仄亢仆 亰舒仂弍亳
   仂仆仂仍仆 仗仂亞舒仄亳
   仂仗仂仄亢仆亳亶 UI
Unit test, 于亳亰仆舒亠仆仆
   仂亟 (亰舒亰于亳舒亶, 仄亠仂亟)
   亊从亳亶 于亳从仍亳从舒 仆亳亶 从仂亟
    仗仍 仂亞仂 仗亠亠于 仗舒于亳仍仆
   亠磻亳 仗亳仗亠仆

 Unit = 仄仂亟仍, 从仂仄仗仂仆亠仆
 (仆从, 仄亠仂亟, 从仍舒, Unit of Work)
Unit test
[TestFixture]
public class CalculatorTests
{
    [Test]
    public void Sum_ReturnsCorrectValue()
    {
        var math = new Calculator();

        int result = math.Sum(1, 2);

        Assert.AreEqual(3, result);
    }
}
Arrange/Act/Assert
[TestFixture]
public class CalculatorTests
{
    [Test]
    public void Sum_ReturnsCorrectValue()
    {
        var math = new Calculator(); // Arrange

        int result = math.Sum(1, 2); // Act

        Assert.AreEqual(3, result); // Assert
    }
}
亟亳仆亳亶 assert/亟亳仆亳亶 verify
 豫仆-亠 仗仂于亳仆亠仆 亠于舒亳 仂 仂亟仆亠
 舒亰于舒 亠 于舒亢仍亳于舒
[Test]
public void Start_Test()
{
    var survey = new Survey();

    survey.Start();

    Assert.AreEqual(SurveyState.InProgress, survey.State);
    Assert.IsTrue(survey.FinishDate > survey.StartDate);
}
Unit test framework
 亳从仂仆舒仆仆 亠于
   亟仆仂亞仂, 亟亠从仍从仂, 于
   仆亠亞舒 亰 IDE
 API 亟仍 仆舒仗亳舒仆仆 亠于
 于仂仄舒亳亰舒
 亠亠亞仍磲 亠亰仍舒于
Unit test framework
   NUnit, MS Test, MBUnit, DBUnit
   JUnit, JWalk, TestNG, DBUnit
   C++test, CppUnit, Google C++ Testing Fx
   PyUnit
Continuous integration
Continuous integration
舒仍亠亢仆仂
DEMO
[Test]
public void Start_ChangesStateToInProgress()
{
    var survey = new Survey();

    survey.Start();

    Assert.AreEqual(SurveyState.InProgress,
                    survey.State);
}
舒仍亠亢仆仂
   Survey 亰舒仍亠亢亳 于亟 EmailSender
   亠 仂亠仄仂 于亟亳仍舒亳 仗舒于亢仆 仍亳亳
   弌于仂ム仄仂 stub 于仆
   弌于仂ム仄仂 stub 舒于仂仄舒亳仆仂
   亠 亠 亠仄仂 舒仆!

    Assert.AreEqual(SurveyState.InProgress,
        survey.State);
Interaction testing
   仂亠弍舒 亠于舒亳 于亰舒仄仂亟
   弌于仂ム仄仂 mock 于仆
   弌于仂ム仄仂 mock 舒于仂仄舒亳仆仂
   亟亳仆 mock 仆舒 亠
   丐亠仄仂 仆亠 舒仆, 舒 于亰舒仄仂亟!

    mockEmailSender.Verify();
Stubs + mocks
 亟亳仆 亠  仂亟亳仆 mock
 亠从仍从舒 stubs

                 Fakes


        Stubs             Mocks
         0..*              0..1
仂仂从亳亶 仗亟仄仂从
How unit testing helps
 丿于亳亟亳亶 亳从仍 亠于舒仆仆 从仂亟
 仂仂亳亶 亟弍亠从 仗仂 仄仂亢仍亳于 亟亠亠从亳
 亠亠从亳 亟亠亠于
仍ム亳 亠于
   舒亳亶 从仂亟
   弌舒弍仍仆舒 仆仂于舒 仆从仂仆舒仍仆
   仍亠 于仗亠于仆亠仆仂  亰仄仆舒
   亠仆亠 亠亞亠亶
   仂仂 亳从仍亳 亠仍亰于
亊从仂
亊从仂 ミ術 亠于
 Readable
 Maintainable
 Trustworthy
Readable
   亠亞从仂 亰仂亰仄亳, 仂 于亟弍于舒 于 亠
   亊从亳亶 从仂亟 亠
   亊从 仗亠亠亟仄仂于亳
   亊从 仗亳仗亠仆仆 仗亠亠于ム
   乂仂 亠 亠
   仂亳亶 从仂亟 亠
Trustworthy
   亠仍亠于舒仆仆 亟仂 仗仂仄亳仍仂从
   弌舒弍仍仆仂 (仆亠) 仗仂仂亟
   亠仄舒 从仂仆仍从ム亳 亠于
   弌仗舒于亟 亠ム
Code driven testing (UA)
Maintainable
   丐亠亳 仍亠亞从仂 亠舒亞ム 仆舒 亰仄仆亳
   亠 于亳仄舒亞舒ム 从仂仆亞舒
   亠 亰舒仍亠亢舒 于亟 仆亳 亠于
   仂亳亶 从仂亟 亠
亰仆仂于亳亟亳
亳亟亳 亠于
 豫仆
 仆亠亞舒亶仆
 仆
豫仆 亠亳
   丐亠ム 仂亟亳仆 仄仂亟仍
   亳从仂仆ム 于亳从仍ム仆仂 于 仗舒仄
   亠 于亳仄舒亞舒ム 从仂仆亞舒
   亠 于亳仄舒亞舒ム DB, FS, AD, Net
   舒于亢亟亳
     仂于仂ミ火夷出 仗仂仂亟
     弍仂 仗仂于仂ミ火夷出 仆亠 仗仂仂亟
     丐仂仄 仂 仆亠 亰舒仍亠亢舒 于亟 亰仄仆仆亳 舒从仂于
仆亠亞舒亶仆 亠亳
 丐亠ム 仄仂亟仍 舒亰仂仄
 仂亢 仄舒亳 亰仆 仗仂于亠亟仆从
  亰舒仍亠亢仆仂 于亟
   弌亠亠亟仂于亳舒 (FS, DB, AD, OS, .config)
   仂磲从 于亳从仂仆舒仆仆
   仍从仂 于亳从仂仆舒仆仆
   舒亞舒仂仗仂仂仆仂
   仂于仆仂亞仂 仄
仆亠亞舒亶仆 亠亳 -- 亰仆舒从亳
   TearDown()
   DateTime.Now
   Thread
   Environment.MachineName
   Database.Save()
   File.Open()
Mixing
 丼从亠 仂亰亟仍亠仆仆 UT 舒 IT
Trustworthy
 豫仆-亠亳  
   仂仂亟 --> 仄舒弍 仆亠仄舒 亟亠亠从
   亠 仗仂仂亟 --> 仂仆仂  亟亠亠从
 仆亠亞舒亶仆 亠亳  (亟亠从仂仍亳) 
   仂仂亟 --> 仆亠仄舒 亟亠亠从
   亠 仗仂仂亟 --> 仄仂亢仍亳于仂 亟亠亠从
舒从亳从亳
仂亞从舒 于 ミ術-亠舒
 Asserts in if/switch/for/while
 仆舒仆仂 仗亟于亳 亶仄仂于仆 仗仂磦亳
  亟亠亠从舒 于 亠
 仂亞 readability & maintainability
弍仍ミ火夷出術 仍仂亞从亳 production 从仂亟
   亳从仍舒亟
   Tests last
   丐亠 仆亠 亠
   Expected hardcoded values
Magic numbers
 亳从仍舒亟
 舒亶仗仂 仄仂亢仍亳于 亰仆舒亠仆仆
 亞仂仍仂亠仆仆  仗亠亠于从舒 于 亠
仄仆舒 亠于
 弌于仂亠仆仆:
   丕 弍仍仂 于亳仗舒亟从于
 亳亟舒仍亠仆仆:
   仂仍亳 亠 弍仍亠 仆亠 仗仂弍仆亳亶
 亠亟舒亞于舒仆仆:
   仍 maintainability/readability
   仍 于亳亟从仂
   仂仍亳 亠 仗仂于亳仆亠仆 于亳从仂仆于舒亳 仗仂-仆仂仄
丐亠于舒仍仆亳从 亰仆舒仂亟亳 亟亠亠从
 仂于亳亶 亠
 亠 仗仂于亳仆亠仆 弍亳 亰仆舒亶亟亠仆亳亶
  亠于舒仍仆亳从舒仄亳 亰仆仂于
乂仂 仄亳
   仍从 亠亞亠亶
   丼舒 于亳仗舒于仍亠仆仆 亟亠亠从于
   亠亳从亳 磻仂 从仂亟
   People feedback
   仂从亳 (coverage)
弍亳舒亶亠 于亟仂仄仍亠仆仂
   丐亠于舒仆仆 仆亠 弍亠亰从仂仂于仆亠
   舒亟仄仆 亠于
   舒亟仄仆 亠于 于亰舒仄仂亟亶
   100% 仗仂从亳 仆亠 亰舒于亢亟亳 仗仂弍仆亠
舒 仂 亟亳于亳亳 亟舒仍
   Unit testing patterns
   Mocks/stubs/fakes, isolation frameworks
   TDD, Test Driven Development
   Contracts, Contract Driven Development
Q&A

Code-driven testing
   仍亠从舒仆亟 舒于仍亳舒从, 2011
   pavlyshak@gmail.com

More Related Content

Viewers also liked (20)

PPTX
永姻艶壊艶稼岳温界庄坦稼1
Hugo Alvarez Luis
PPT
Investigaci坦n tesis
Sherin Morgado
PPS
Uepc tics
Claudia Repetto
PDF
Decreto-Lei 121/2013 de 22 de agosto
Fernando Barroso
PPTX
comparacion renacimiento impresionismo
charlysoto
PPTX
Prestar servicios de calidad al huesped
Tasha Michaud
PPTX
Mapa coneptual
manu_gomezsuarez
PDF
Programa de especializacion en sst
Roxana Ruiz
PPTX
La naturaleza
estefanun
PPT
Llum
omuntada
DOC
Securedownload
Vanessa Costa
PDF
Nouveaut辿s DVD et CD-ROM - CRDP de l'acad辿mie de Grenoble
vamange
DOC
Planifica巽達o 3尊per鱈odo
jwurster01
PDF
Acoes promocionais sao joao montilla caruaru 2011
Marcativa Comunica巽達o Estrat辿gica
PPTX
Attachment (1)
bonecaah
PPTX
Pao compu
vallejoevelyn
PDF
Simple - Rottaely
Rodrigo Melo - Business Executive
PPTX
Deisi
analiacardoso
PDF
[E book][project] apostila gerenciamento de projetos
wssouza
KEY
Congr竪s des archivestes
montrealouvert
永姻艶壊艶稼岳温界庄坦稼1
Hugo Alvarez Luis
Investigaci坦n tesis
Sherin Morgado
Uepc tics
Claudia Repetto
Decreto-Lei 121/2013 de 22 de agosto
Fernando Barroso
comparacion renacimiento impresionismo
charlysoto
Prestar servicios de calidad al huesped
Tasha Michaud
Mapa coneptual
manu_gomezsuarez
Programa de especializacion en sst
Roxana Ruiz
La naturaleza
estefanun
Llum
omuntada
Securedownload
Vanessa Costa
Nouveaut辿s DVD et CD-ROM - CRDP de l'acad辿mie de Grenoble
vamange
Planifica巽達o 3尊per鱈odo
jwurster01
Acoes promocionais sao joao montilla caruaru 2011
Marcativa Comunica巽達o Estrat辿gica
Attachment (1)
bonecaah
Pao compu
vallejoevelyn
[E book][project] apostila gerenciamento de projetos
wssouza
Congr竪s des archivestes
montrealouvert

Similar to Code driven testing (UA) (20)

PPTX
CoreCamp "Automated testing basics for developers"
Bohdan Pashkovskyi
PPTX
13 testing
eleksdev
PPTX
cpp-2013 #16 Automated testing
Amazon Web Services
PPTX
丼 束How did we improve delivery using tests損 Lviv QA Day 2019
QADay
PDF
丐亠于舒仆仆 亰 亟仂仗仂仄仂亞仂 PHPUnit
Andriy Nasinnyk
PPTX
Automated testing
Bohdan Pashkovskyi
PDF
"Unit testing in AngularJS" 亳从仂 仂亰仍磻
Fwdays
PPTX
舒亳仆舒 仆舒从-弌仗仆亠仆从仂 Agile 仂亳仄舒 ISTQB
QADay
ODP
仂亠 亰舒弍亠亰仗亠亠仆仆 磻仂 仗仂亞舒仄仆亳 仗仂亟从于
Igor Bronovskyy
PDF
丐亠于舒仆仆 仗亳 仂亰仂弍 仗仂亞舒仄仆仂亞仂 亰舒弍亠亰仗亠亠仆仆. Unit Tests.
Elantix
PDF
Testing in Ruby
Pivorak MeetUp
PPTX
仗亳仂亟仆舒 亠从仂仆仂仄仆舒 亟仂仂亢仆 从舒舒 亟仍 仗亠亠仂亟 从仂仄舒仆亟亳 仂亰仂弍从亳 仆舒 亠 亠仆...
Andrii Podanenko
ODP
Phpunit 仄仂亟仍仆亠 亠于舒仆仆
Vladimir Maslechkin
PPTX
丐亠于舒仆仆 仂亞舒仄仆仂亞仂 舒弍亠亰仗亠亠仆仆 仆舒 舒从亳 - 丼亠于亠仆 2014
QualityAssuranceGroup
PPTX
Phpunit
Vladimir Maslechkin
PPTX
Marafon_part1 (1).pptx
ssuser75c4bb
PDF
仆仂于仆i 仄仂仄亠仆亳 仄仂亟仍仆仂亞仂 亠于舒仆仆 于 Qt
Trola.org
PDF
Roman Yakymchuk "仂仍亟仆亳从亠 亠于舒仆仆. 亠亠亰舒仗从"
Dakiry
PDF
"Elements of functional programming in C# based on Language-Ext library as an...
Fwdays
PPTX
QA Fest 2015. 亊仂仍舒于 亠仆亠仂于从亳亳. 舒仆 仆舒仗舒ム - 仄仂亞 仍亳 于舒亳 亠...
QAFest
CoreCamp "Automated testing basics for developers"
Bohdan Pashkovskyi
13 testing
eleksdev
cpp-2013 #16 Automated testing
Amazon Web Services
丼 束How did we improve delivery using tests損 Lviv QA Day 2019
QADay
丐亠于舒仆仆 亰 亟仂仗仂仄仂亞仂 PHPUnit
Andriy Nasinnyk
Automated testing
Bohdan Pashkovskyi
"Unit testing in AngularJS" 亳从仂 仂亰仍磻
Fwdays
舒亳仆舒 仆舒从-弌仗仆亠仆从仂 Agile 仂亳仄舒 ISTQB
QADay
仂亠 亰舒弍亠亰仗亠亠仆仆 磻仂 仗仂亞舒仄仆亳 仗仂亟从于
Igor Bronovskyy
丐亠于舒仆仆 仗亳 仂亰仂弍 仗仂亞舒仄仆仂亞仂 亰舒弍亠亰仗亠亠仆仆. Unit Tests.
Elantix
Testing in Ruby
Pivorak MeetUp
仗亳仂亟仆舒 亠从仂仆仂仄仆舒 亟仂仂亢仆 从舒舒 亟仍 仗亠亠仂亟 从仂仄舒仆亟亳 仂亰仂弍从亳 仆舒 亠 亠仆...
Andrii Podanenko
Phpunit 仄仂亟仍仆亠 亠于舒仆仆
Vladimir Maslechkin
丐亠于舒仆仆 仂亞舒仄仆仂亞仂 舒弍亠亰仗亠亠仆仆 仆舒 舒从亳 - 丼亠于亠仆 2014
QualityAssuranceGroup
Marafon_part1 (1).pptx
ssuser75c4bb
仆仂于仆i 仄仂仄亠仆亳 仄仂亟仍仆仂亞仂 亠于舒仆仆 于 Qt
Trola.org
Roman Yakymchuk "仂仍亟仆亳从亠 亠于舒仆仆. 亠亠亰舒仗从"
Dakiry
"Elements of functional programming in C# based on Language-Ext library as an...
Fwdays
QA Fest 2015. 亊仂仍舒于 亠仆亠仂于从亳亳. 舒仆 仆舒仗舒ム - 仄仂亞 仍亳 于舒亳 亠...
QAFest
Ad

Code driven testing (UA)

  • 1. Code-driven testing 亟亳仂: 仂亰仂弍仆亳从亳 仍亠从舒仆亟 舒于仍亳舒从, 2011 pavlyshak@gmail.com
  • 2. Agenda 仂仆 Unit test 亟仄仆舒 亰舒仍亠亢仆仂亠亶, stubs 丐亠于舒仆仆 于亰舒仄仂亟亶, mocks 亊从仂 仂仂亳 亠于 Unit vs integration testing 舒从亳从亳 亠亳从亳
  • 3. 丐亠于舒仆仆 仂亳仆舒 舒亰仂仄 亰 仂亰仂弍从仂 舒仗从舒仄仂 亟亳于亳仄仂 弌于仂ム仄仂 亟仂仗仂仄亢仆 亰舒仂弍亳 仂仆仂仍仆 仗仂亞舒仄亳 仂仗仂仄亢仆亳亶 UI
  • 4. Unit test, 于亳亰仆舒亠仆仆 仂亟 (亰舒亰于亳舒亶, 仄亠仂亟) 亊从亳亶 于亳从仍亳从舒 仆亳亶 从仂亟 仗仍 仂亞仂 仗亠亠于 仗舒于亳仍仆 亠磻亳 仗亳仗亠仆 Unit = 仄仂亟仍, 从仂仄仗仂仆亠仆 (仆从, 仄亠仂亟, 从仍舒, Unit of Work)
  • 5. Unit test [TestFixture] public class CalculatorTests { [Test] public void Sum_ReturnsCorrectValue() { var math = new Calculator(); int result = math.Sum(1, 2); Assert.AreEqual(3, result); } }
  • 6. Arrange/Act/Assert [TestFixture] public class CalculatorTests { [Test] public void Sum_ReturnsCorrectValue() { var math = new Calculator(); // Arrange int result = math.Sum(1, 2); // Act Assert.AreEqual(3, result); // Assert } }
  • 7. 亟亳仆亳亶 assert/亟亳仆亳亶 verify 豫仆-亠 仗仂于亳仆亠仆 亠于舒亳 仂 仂亟仆亠 舒亰于舒 亠 于舒亢仍亳于舒 [Test] public void Start_Test() { var survey = new Survey(); survey.Start(); Assert.AreEqual(SurveyState.InProgress, survey.State); Assert.IsTrue(survey.FinishDate > survey.StartDate); }
  • 8. Unit test framework 亳从仂仆舒仆仆 亠于 亟仆仂亞仂, 亟亠从仍从仂, 于 仆亠亞舒 亰 IDE API 亟仍 仆舒仗亳舒仆仆 亠于 于仂仄舒亳亰舒 亠亠亞仍磲 亠亰仍舒于
  • 9. Unit test framework NUnit, MS Test, MBUnit, DBUnit JUnit, JWalk, TestNG, DBUnit C++test, CppUnit, Google C++ Testing Fx PyUnit
  • 13. DEMO [Test] public void Start_ChangesStateToInProgress() { var survey = new Survey(); survey.Start(); Assert.AreEqual(SurveyState.InProgress, survey.State); }
  • 14. 舒仍亠亢仆仂 Survey 亰舒仍亠亢亳 于亟 EmailSender 亠 仂亠仄仂 于亟亳仍舒亳 仗舒于亢仆 仍亳亳 弌于仂ム仄仂 stub 于仆 弌于仂ム仄仂 stub 舒于仂仄舒亳仆仂 亠 亠 亠仄仂 舒仆! Assert.AreEqual(SurveyState.InProgress, survey.State);
  • 15. Interaction testing 仂亠弍舒 亠于舒亳 于亰舒仄仂亟 弌于仂ム仄仂 mock 于仆 弌于仂ム仄仂 mock 舒于仂仄舒亳仆仂 亟亳仆 mock 仆舒 亠 丐亠仄仂 仆亠 舒仆, 舒 于亰舒仄仂亟! mockEmailSender.Verify();
  • 16. Stubs + mocks 亟亳仆 亠 仂亟亳仆 mock 亠从仍从舒 stubs Fakes Stubs Mocks 0..* 0..1
  • 18. How unit testing helps 丿于亳亟亳亶 亳从仍 亠于舒仆仆 从仂亟 仂仂亳亶 亟弍亠从 仗仂 仄仂亢仍亳于 亟亠亠从亳 亠亠从亳 亟亠亠于
  • 19. 仍ム亳 亠于 舒亳亶 从仂亟 弌舒弍仍仆舒 仆仂于舒 仆从仂仆舒仍仆 仍亠 于仗亠于仆亠仆仂 亰仄仆舒 亠仆亠 亠亞亠亶 仂仂 亳从仍亳 亠仍亰于
  • 21. 亊从仂 ミ術 亠于 Readable Maintainable Trustworthy
  • 22. Readable 亠亞从仂 亰仂亰仄亳, 仂 于亟弍于舒 于 亠 亊从亳亶 从仂亟 亠 亊从 仗亠亠亟仄仂于亳 亊从 仗亳仗亠仆仆 仗亠亠于ム 乂仂 亠 亠 仂亳亶 从仂亟 亠
  • 23. Trustworthy 亠仍亠于舒仆仆 亟仂 仗仂仄亳仍仂从 弌舒弍仍仆仂 (仆亠) 仗仂仂亟 亠仄舒 从仂仆仍从ム亳 亠于 弌仗舒于亟 亠ム
  • 25. Maintainable 丐亠亳 仍亠亞从仂 亠舒亞ム 仆舒 亰仄仆亳 亠 于亳仄舒亞舒ム 从仂仆亞舒 亠 亰舒仍亠亢舒 于亟 仆亳 亠于 仂亳亶 从仂亟 亠
  • 27. 亳亟亳 亠于 豫仆 仆亠亞舒亶仆 仆
  • 28. 豫仆 亠亳 丐亠ム 仂亟亳仆 仄仂亟仍 亳从仂仆ム 于亳从仍ム仆仂 于 仗舒仄 亠 于亳仄舒亞舒ム 从仂仆亞舒 亠 于亳仄舒亞舒ム DB, FS, AD, Net 舒于亢亟亳 仂于仂ミ火夷出 仗仂仂亟 弍仂 仗仂于仂ミ火夷出 仆亠 仗仂仂亟 丐仂仄 仂 仆亠 亰舒仍亠亢舒 于亟 亰仄仆仆亳 舒从仂于
  • 29. 仆亠亞舒亶仆 亠亳 丐亠ム 仄仂亟仍 舒亰仂仄 仂亢 仄舒亳 亰仆 仗仂于亠亟仆从 亰舒仍亠亢仆仂 于亟 弌亠亠亟仂于亳舒 (FS, DB, AD, OS, .config) 仂磲从 于亳从仂仆舒仆仆 仍从仂 于亳从仂仆舒仆仆 舒亞舒仂仗仂仂仆仂 仂于仆仂亞仂 仄
  • 30. 仆亠亞舒亶仆 亠亳 -- 亰仆舒从亳 TearDown() DateTime.Now Thread Environment.MachineName Database.Save() File.Open()
  • 32. Trustworthy 豫仆-亠亳 仂仂亟 --> 仄舒弍 仆亠仄舒 亟亠亠从 亠 仗仂仂亟 --> 仂仆仂 亟亠亠从 仆亠亞舒亶仆 亠亳 (亟亠从仂仍亳) 仂仂亟 --> 仆亠仄舒 亟亠亠从 亠 仗仂仂亟 --> 仄仂亢仍亳于仂 亟亠亠从
  • 34. 仂亞从舒 于 ミ術-亠舒 Asserts in if/switch/for/while 仆舒仆仂 仗亟于亳 亶仄仂于仆 仗仂磦亳 亟亠亠从舒 于 亠 仂亞 readability & maintainability
  • 35. 弍仍ミ火夷出術 仍仂亞从亳 production 从仂亟 亳从仍舒亟 Tests last 丐亠 仆亠 亠 Expected hardcoded values
  • 36. Magic numbers 亳从仍舒亟 舒亶仗仂 仄仂亢仍亳于 亰仆舒亠仆仆 亞仂仍仂亠仆仆 仗亠亠于从舒 于 亠
  • 37. 仄仆舒 亠于 弌于仂亠仆仆: 丕 弍仍仂 于亳仗舒亟从于 亳亟舒仍亠仆仆: 仂仍亳 亠 弍仍亠 仆亠 仗仂弍仆亳亶 亠亟舒亞于舒仆仆: 仍 maintainability/readability 仍 于亳亟从仂 仂仍亳 亠 仗仂于亳仆亠仆 于亳从仂仆于舒亳 仗仂-仆仂仄
  • 38. 丐亠于舒仍仆亳从 亰仆舒仂亟亳 亟亠亠从 仂于亳亶 亠 亠 仗仂于亳仆亠仆 弍亳 亰仆舒亶亟亠仆亳亶 亠于舒仍仆亳从舒仄亳 亰仆仂于
  • 39. 乂仂 仄亳 仍从 亠亞亠亶 丼舒 于亳仗舒于仍亠仆仆 亟亠亠从于 亠亳从亳 磻仂 从仂亟 People feedback 仂从亳 (coverage)
  • 40. 弍亳舒亶亠 于亟仂仄仍亠仆仂 丐亠于舒仆仆 仆亠 弍亠亰从仂仂于仆亠 舒亟仄仆 亠于 舒亟仄仆 亠于 于亰舒仄仂亟亶 100% 仗仂从亳 仆亠 亰舒于亢亟亳 仗仂弍仆亠
  • 41. 舒 仂 亟亳于亳亳 亟舒仍 Unit testing patterns Mocks/stubs/fakes, isolation frameworks TDD, Test Driven Development Contracts, Contract Driven Development
  • 42. Q&A Code-driven testing 仍亠从舒仆亟 舒于仍亳舒从, 2011 pavlyshak@gmail.com