• Share
  • Email
  • Embed
  • Like
  • Save
  • Private Content
Unit Testing - Nakov's Talk @ VarnaConf 2013
 

Unit Testing - Nakov's Talk @ VarnaConf 2013

on

  • 14,213 views

Unit testing - презентацията на Наков на ВарнаКонф 2013 - http://www.varnaconf.com

Unit testing - презентацията на Наков на ВарнаКонф 2013 - http://www.varnaconf.com

Statistics

Views

Total Views
14,213
Views on SlideShare
946
Embed Views
13,267

Actions

Likes
1
Downloads
8
Comments
0

16 Embeds 13,267

http://www.nakov.com 13146
http://cloud.feedly.com 37
http://www.feedspot.com 26
http://www.dnevnik.bg 18
http://feedreader.com 13
http://webcache.googleusercontent.com 8
http://translate.googleusercontent.com 5
http://www.newsblur.com 3
http://digg.com 2
http://prlog.ru 2
http://zakazat-kreditnie-karti-218.all-kredit.appspot.com 2
http://inoreader.com 1
http://summary 1
http://www.365dailyjournal.com 1
https://www.google.bg 1
http://reader.aol.com 1
More...

Accessibility

Upload Details

Uploaded via as Microsoft PowerPoint

Usage Rights

CC Attribution-NonCommercial LicenseCC Attribution-NonCommercial License

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Processing…
Post Comment
Edit your comment

    Unit Testing - Nakov's Talk @ VarnaConf 2013 Unit Testing - Nakov's Talk @ VarnaConf 2013 Presentation Transcript

    • UnitTesting Building Rock-Solid Software Svetlin Nakov Telerik Software Academy http://academy.telerik.com ManagerTechnicalTraining http://www.nakov.com
    • What is UnitTesting?
    • UnitTest – Definition A unit test is a piece of code written by a developer that exercises a very small, specific area of functionality of the code being tested. “Program testing can be used to show the presence of bugs, but never to show their absence!” Edsger Dijkstra, [1972]
    • UnitTest – Example int sum(int[] array) { int sum = 0; for (int i=0; i<array.length; i++) sum += array[i]; return sum; } void testSum() { if (sum(new int[]{1,2}) != 3) throw new TestFailedException("1+2 != 3"); if (sum(new int[]{-2}) != -2) throw new TestFailedException("-2 != -2"); if (sum(new int[]{}) != 0) throw new TestFailedException("0 != 0"); }
    • UnitTesting – Some Facts  Tests are pieces of code (small programs)  In most cases unit tests are written by developers, not by QA engineers  Unit tests are released into the code repository (TFS / SVN / Git) along with the code they test  Unit testing framework is needed  Visual StudioTeamTest (VSTT)  NUnit, MbUnit, Gallio, etc. 5
    • UnitTesting Frameworks & JUnit
    • UnitTesting Frameworks  JUnit  The first popular unit testing framework  Based on Java, written by Kent Beck & Co.  Similar frameworks have been developed for a broad range of computer languages  NUnit – for C# and all .NET languages  cppUnit, jsUnit, PhpUnit, PerlUnit, ...  Visual StudioTeamTest (VSTT)  Developed by Microsoft, integrated inVS 7
    • UnitTesting Frameworks  JUnit – the first unit testing framework  www.junit.org  Based on Java  Developed by Erich Gamma and Kent Beck  Unit testing frameworks have been developed for a broad range of computer languages  NUnit – for C#,VB.NET and .NET languages  cppUnit, DUnit, jsUnit, PhpUnit, PerlUnit, ...  List of xUnit frameworks can be found at: http://www.testingfaqs.org/t-unit.html
    • JUnit – Features  Test code is annotated using Java 5 annotations  Test code contains assertions  Tests are grouped in test fixtures and test suites  Several execution interfaces  Eclipse integrated plug-in  Console interface: java org.junit.runner.JUnitCore <test-class>
    • JUnit – Annotations  @Test  Annotates a test case method  @Before, @After  Annotates methods called before/after each test case  @BeforeClass, @AfterClass  Annotates methods called one time before and after all test cases in the class  @Ignore  Ignores a test case 10
    • JUnit – Assertions  Using org.junit.Assert class  Assertions check a condition and throw exception if the condition is not satisfied  Comparing values  assertEquals ([message], expected value, calculated value)  Comparing objects  assertNull([message], object)  assertNotNull([message], object)  assertSame ([message], expected obj, calculated obj)
    • JUnit – Assertions (2)  Conditions  assertTrue(condition)  assertFalse(condition)  Forced test fail  fail()  Expecting exception  @Test(expected=IndexOutOfBoundsExcept ion.class)
    •  Java class that needs unit testing: JUnit – Example public class Sumator { public int sum(int a, int b) { int sum = a + b; return sum; } public int sum(int... nums) { int sum = 0; for (int i = 0; i < nums; i++) sum += nums[i]; return sum; } }
    •  JUnit based test class (fixture): JUnit – Example import org.junit.Test; import static org.junit.Assert.*; public class SumatorTest { @Test public void testSum() { Sumator sumator = new Sumator(); int sum = sumator.sum(new int[] {2,3,4}); assertEquals(sum, 9); } }
    •  JUnit text fixture with setup and cleanup: JUnit – Example public class SumatorTest { private Sumator sumator; @Before public void setUpTestCase() { this.sumator = new Sumator(); } @Test public void testSum() { int sum = sumator.sum(2, 3); assertEquals(sum, 5); } @After public void cleanUpTestCase() { this.sumator = null; } }
    • Test Suites  Suits are sets of JUnit test classes  We can define test suits with annotations: import org.junit.runner.RunWith; import org.junit.runners.Suite; import org.junit.runners.Suite.SuiteClasses; @RunWith(value=Suite.class) @SuiteClasses(value={Test1.class, Test2.class}) public class AllTests { }
    • Eclipse and JUnit  Eclipse has built-in support for integration with JUnit  Can create, run and debug JUnit tests
    • Testing with JUnit Live Demo
    • форумпрограмиране,форум уеб дизайн курсовеи уроци по програмиране,уеб дизайн – безплатно програмиранеза деца – безплатни курсове и уроци безплатенSEO курс -оптимизация за търсачки уроципо уеб дизайн, HTML,CSS, JavaScript,Photoshop уроципо програмиранеи уеб дизайн за ученици ASP.NETMVCкурс – HTML,SQL,C#,.NET,ASP.NETMVC безплатенкурс"Разработка на софтуер в cloud среда" BGCoder -онлайн състезателна система -online judge курсовеи уроци по програмиране,книги – безплатно отНаков безплатенкурс"Качествен програменкод" алгоакадемия – състезателно програмиране,състезания ASP.NETкурс -уеб програмиране,бази данни, C#,.NET,ASP.NET курсовеи уроци по програмиране– Телерик академия курсмобилни приложения с iPhone, Android,WP7,PhoneGap freeC#book, безплатна книга C#,книга Java,книга C# Дончо Минков -сайт за програмиране Николай Костов -блог за програмиране C#курс,програмиране,безплатно UnitTesting http://academy.telerik.com
    • FreeTrainings @Telerik Academy  C# Programming @Telerik Academy  csharpfundamentals.telerik.com  Telerik Software Academy  academy.telerik.com  Telerik Academy @ Facebook  facebook.com/TelerikAcademy  Telerik Software Academy Forums  forums.academy.telerik.com