0% found this document useful (0 votes)
15 views

Lesson 4 - UT Execution

Uploaded by

vinhnqda180069
Copyright
© © All Rights Reserved
Available Formats
Download as PPTX, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
15 views

Lesson 4 - UT Execution

Uploaded by

vinhnqda180069
Copyright
© © All Rights Reserved
Available Formats
Download as PPTX, PDF, TXT or read online on Scribd
You are on page 1/ 25

Unit Testing Execution

© FPT SOFTWARE – TRAINING MATERIAL – Internal use 04e-BM/NS/HDCV/FSOFT v2/3


ent and Code Coverage

Agenda
 Software testing levels
 Manual unit testing
 Unit Testing based on UT cases
 Automated Unit Testing
 Automated Unit Testing with NUnit
 Automated Tests vs. Manual Tests
 Best Practices

© FPT SOFTWARE – TRAINING MATERIAL – Internal use 04e-BM/NS/HDCV/FSOFT


2 v2/3
Too many of Software Testing Levels

Process Process

Manual Automatic Traditional Test Test driven


process Development
test test

© FPT SOFTWARE – TRAINING MATERIAL – Internal use 04e-BM/NS/HDCV/FSOFT v2/3


How we test this function?
Requirement :
- Write a module to add an User to DataBase
Business rule :
- Email can not be duplicated
- Email must be in valid form
- UserName ‘s length must be > 8
- UserName can not be dupplicated
- Password length must be > 8

© FPT SOFTWARE – TRAINING MATERIAL – Internal use 04e-BM/NS/HDCV/FSOFT v2/3


ttribution Share-alike

Manual Unit Testing

Write code
Uploading the code to some place
Build it
Running the code manually (in many cases filling
up forms etc step by step)
Check Log files, Database, External Services,
Values of variable names, Output on the screen
etc
If it does not work, repeat the above process

© FPT SOFTWARE – TRAINING MATERIAL – Internal use 5


04e-BM/NS/HDCV/FSOFT v2/3
Manual Unit Testing - Limitation
- Developer nhớ được trường hợp nào thì test trường hợp đó
- Đến cuối dự án số lượng test case càng lúc càng nhiều, khả
năng cover của lập trình viên giảm xuống!
- Nhiều test case bị trùng lắp
- Nhiều test case bị lack
- Team lead không thể review hết được
-  Kết quả dự án chỉ trông chờ vào tester!!!!
-  Rất nhiều lỗi phát sinh sau khi system test, đa phần các lỗi
xuất phát do Dev test không kỹ từ lúc Unit Test!

© FPT SOFTWARE – TRAINING MATERIAL – Internal use 04e-BM/NS/HDCV/FSOFT v2/3


Unit Testing based on UT cases

 Để giải quyết vấn đề trên Mỗi khi developer test xong phải viết
tài liệu mô tả test case trên word hoặc excel !
 Điều này giúp team rất dễ dàng review.. Tuy nhiên, cách làm
này sẽ phát sinh ra rất nhiều hạn chế!

© FPT SOFTWARE – TRAINING MATERIAL – Internal use 04e-BM/NS/HDCV/FSOFT v2/3


Unit Testing based on UT cases

 Các dự án lớn thì số lượng tài liệu test case thường cũng
rất lớn!
 Các dự án lớn thì requirement thường hay thay đổi
 Mỗi khi requirement thay đổi Phải sửa code phải cập
nhật lại tài liệu testcase và lại manual retest , rất tốn
effortCàng đến cuối dự án, lượng việc sinh ra càng
nhiều , viết test case document trở thành “địa ngục “
thực sự ! dev không còn đủ effort update test case
document, tài liệu nhanh chóng bị lạc hậu, hoặc việc
update chỉ là đối phó!
 Một số trường hợp không thể dùng Excel Unit TestCase

So, what is the solution?

© FPT SOFTWARE – TRAINING MATERIAL – Internal use 04e-BM/NS/HDCV/FSOFT v2/3


ttribution Share-alike

Automated Unit Testing


First Step

 Coding Process with Automated Unit Tests


Write code
Write one or more test cases script
Auto-compile and run
If tests fail -> make appropriate modifications
If tests pass -> repeat for next method

© FPT SOFTWARE – TRAINING MATERIAL – Internal use 9


04e-BM/NS/HDCV/FSOFT v2/3
Automated Unit Testing
Common Tools

 UT Tools for
references:
 Java: JUnit, J2MEUnit
 C/C++: cppUnit
 Python: pyUnit
 Perl: PerlUnit
 Visual Basic: vbUnit
 C# .NET: Nunit,csUnit

 Refferences:
 http://www.testingfaqs.org/t-unit.html
 www.junit.org
 http://www.codeproject.com/gen/design/autp5.asp

© FPT SOFTWARE – TRAINING MATERIAL – Internal use 04e-BM/NS/HDCV/FSOFT v2/3


Automated Unit Testing
Common Tools
http://sourceforge.net/projects/cppunit/
http://www.nunit.org
http://www.junit.org/

© FPT SOFTWARE – TRAINING MATERIAL – Internal use 04e-BM/NS/HDCV/FSOFT v2/3


ttribution Share-alike

Automated Unit Testing Demo

© FPT SOFTWARE – TRAINING MATERIAL – Internal use 12


04e-BM/NS/HDCV/FSOFT v2/3
Automated Unit Testing with NUnit
Milk ? Beer or
What is NUnit?
Coffee?

 NUnit – an open source test tool for .NET


 Useful for development and regression
 Leads to a design-for-test approach
 Tests can be written in VB.NET or C#

© FPT SOFTWARE – TRAINING MATERIAL – Internal use 04e-BM/NS/HDCV/FSOFT v2/3


Automated Unit Testing with NUnit
Where to get NUnit?

 Let’s go to website:
http://www.nunit.org/index.php?p=download

Yeahh, I got it

© FPT SOFTWARE – TRAINING MATERIAL – Internal use 04e-BM/NS/HDCV/FSOFT v2/3


Automated Unit Testing with NUnit
Where to get Nunit? - Extract to any folder

mumm, it is
easy

© FPT SOFTWARE – TRAINING MATERIAL – Internal use 04e-BM/NS/HDCV/FSOFT v2/3


Automated Unit Testing with Nunit
Screens of tool

Yeahh, It tastes
good

© FPT SOFTWARE – TRAINING MATERIAL – Internal use 04e-BM/NS/HDCV/FSOFT v2/3


Automated Unit Testing with Nunit
How to use NUnit?
 Create a test case base on NUnit framework
 Deploy and Run

Who knows…

© FPT SOFTWARE – TRAINING MATERIAL – Internal use 04e-BM/NS/HDCV/FSOFT v2/3


Automated Unit Testing with Nunit
Create a test case

 Step 1: Create a Class


 Step 2: Add a reference nunit.Framework.dll to this class
 Step 3: Add a reference to *.dll contains function which
you want to do Unit test
 Step 4: Restructure class following Nunit frame work
 Step 5: Write a test case

Let’s me go…

© FPT SOFTWARE – TRAINING MATERIAL – Internal use 04e-BM/NS/HDCV/FSOFT v2/3


Automated Unit Testing with Nunit
Create a test case
 Step 1: Create a Class
 Step 2: Add a reference
nunit.Framework.dll to this class
 Step 3: Add a reference to *.dll
contains function which you want
to do Unit test
 Step 4: Restructure class
following Nunit frame work

© FPT SOFTWARE – TRAINING MATERIAL – Internal use 04e-BM/NS/HDCV/FSOFT v2/3


Automated Unit Testing with Nunit
Create a test case
 Step 5: Write a test case
 Each test case will be a function/method of class
 Must have attribute [Test] above a function/method
 Ex:

[Test]
public void testCase1()
{
Assert.AreEqual(0, intA);
}

[Test]
public void testCase2()
{
Assert.AreEqual(0, divides(intA, intB));
}
Beer Please !!!

© FPT SOFTWARE – TRAINING MATERIAL – Internal use 04e-BM/NS/HDCV/FSOFT v2/3


Automated Unit Testing with Nunit
Core Features
 Core Features to code a test case
 Assertions
• Equality Assserts:
– Ex: Assert.AreEqual( int expected, int actual );
• Condition Tests:
– Ex: Assert.IsTrue( bool condition );
• Comparrison Asserts
– Ex: Assert.Greater( int arg1, int arg2 );
• Type Asserts
– Ex: Assert.IsInstanceOfType( Type expected, object actual );
• Utility methods
– Ex: Assert.Fail();
• String Assert
– Ex: StringAssert.Contains( string expected, string actual );
• Collection Asserts
– Ex: CollectionAssert.AreEqual( Collection expected, Collection
actual );
 Attributes

© FPT SOFTWARE – TRAINING MATERIAL – Internal use 04e-BM/NS/HDCV/FSOFT v2/3


Automated Unit Testing with Nunit
Core Features
 Attributes
[TestFixture]
[Category("TestUnitExample")]
public class TestNUnit
{
private int intA;
private int intB;
private CaculatesSomeThings objCal;

[SetUp]
protected void SetUp()
{
intA = 0;
intB = 0;
objCal = new CaculatesSomeThings();
}

[Test]
Public void TestCase1()
{
Assert.AreEqual(0, objCal.Multifly(intA, intB))
}

© FPT SOFTWARE – TRAINING MATERIAL – Internal use 04e-BM/NS/HDCV/FSOFT v2/3


Automated Unit Testing with Nunit
Deploy and Run
 Step 1: Compile a test case class to dll
 Step 2: Run NUnit tool
 Step 3: Open *.dll contains test case class
 Step 4: Choose the test case you want to run
 Step 5: Click run button to see the report

I don’t believe…

© FPT SOFTWARE – TRAINING MATERIAL – Internal use 04e-BM/NS/HDCV/FSOFT v2/3


Automated Unit Testing with Nunit
Deploy and Run

Quality… God let


me sleep

© FPT SOFTWARE – TRAINING MATERIAL – Internal use 04e-BM/NS/HDCV/FSOFT v2/3


ent and Code Coverage

Q&A

© FPT SOFTWARE – TRAINING MATERIAL – Internal use 04e-BM/NS/HDCV/FSOFT


25 v2/3

You might also like