0% found this document useful (0 votes)
19 views25 pages

Lesson 4 - UT Execution

Uploaded by

vinhnqda180069
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PPTX, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
19 views25 pages

Lesson 4 - UT Execution

Uploaded by

vinhnqda180069
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
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