Các hệthống nhúng ngày nay rất phát triển với những ứng dụng rộng rãi trong nhiều 
lĩnh vực công nghiệp và đời sống, đâu đâu ta cũng bắt gặp các ứng dụng của hệthống 
nhúng, từnhững thiết bịnhỏnhư điện thoại, máy nghe nhạc đến các hệthống phức tạp 
nhưô tô, máy móc công nghiệp. Trong phát triển phần mềm nhúng, khâu kiểm thửcó vai 
trò quan trọng trong việc đảm bảo chất lượng và độtin cậy của hệthống. Các hệthống 
nhúng có kiến trúc phần cứng cũng nhưphần mềm rất đa dạng, trong đó có rất nhiều hệ
thống sửdụng vi điều khiển họ8051 và phần mềm viết cho hệthống này thường được 
viết bằng ngôn ngữC. Khóa luận này sẽtrình bày một sốphương pháp kiểm thửchương 
trình C cho vi điều khiển 8051. 
Một cách rất phổbiến đểkiểm thửphần mềm cho hệthống nhúng nói chung và cho 
hệthống 8051 nói riêng, đó là chạy phần mềm trên chương trình giảlập phần cứng, 
chương trình giảlập ở đây có thểlà một vi điều khiển ảo, cũng có thểlà chương trình mô 
phỏng trực quan cảmột hệthống mạch bao gồm vi điều khiển và các thiết bịkhác. Một 
cách khác đểkiểm thửchương trình cho 8051 đó là sửdụng công cụUnit Test – kiểm thử
mức đơn vị, Unit Test giúp ta kiểm thửvà đảm bảo chất lượng từng đơn vịnhỏnhất của 
chương trình.
                
              
                                            
                                
            
                       
            
                 61 trang
61 trang | 
Chia sẻ: nhungnt | Lượt xem: 3032 | Lượt tải: 1 
              
            Bạn đang xem trước 20 trang tài liệu Đề tài Kiểm thử phần mềm nhúng, để xem tài liệu hoàn chỉnh bạn click vào nút DOWNLOAD ở trên
ĐẠI HỌC QUỐC GIA HÀ NỘI 
TRƯỜNG ĐẠI HỌC CÔNG NGHỆ 
Bùi Ngọc Hải 
KIỂM THỬ PHẦN MỀM NHÚNG 
KHOÁ LUẬN TỐT NGHIỆP ĐẠI HỌC HỆ CHÍNH QUY 
Ngành: Công nghệ thông tin 
HÀ NỘI - 2010 
ĐẠI HỌC QUỐC GIA HÀ NỘI 
TRƯỜNG ĐẠI HỌC CÔNG NGHỆ 
Bùi Ngọc Hải 
KIỂM THỬ PHẦN MỀM NHÚNG 
KHOÁ LUẬN TỐT NGHIỆP ĐẠI HỌC HỆ CHÍNH QUY 
Ngành: Công nghệ thông tin 
 Cán bộ hướng dẫn: PGS.TS Nguyễn Ngọc Bình 
HÀ NỘI - 2010 
Lời cảm ơn 
Đầu tiên tôi xin bày tỏ lòng biết ơn chân thành và sâu sắc tới PGS.TS Nguyễn Ngọc 
Bình, người thầy đã định hướng đề tài và tận tình hướng dẫn tôi hoàn thành khóa luận 
này. 
Tôi xin gửi lời cảm ơn chân thành tới các thầy, cô giáo khoa Công nghệ thông tin, 
trường Đại học Công Nghệ - Đại học Quốc Gia Hà Nội đã chỉ bảo, giúp đỡ tôi trong suốt 
quá trình học tập tại trường. 
Tôi cũng xin được gửi lời cảm ơn chân thành tới bạn bè của tôi, những người đã 
luôn cổ vũ, động viên, giúp đỡ tôi trong suốt quá trình học tập và thực hiện khóa luận tốt 
nghiệp. 
Cuối cùng tôi xin gửi lời cảm ơn tới bố mẹ và toàn thể gia đình với lòng biết ơn và 
tình yêu thương sâu sắc. 
 Hà Nội, tháng 5 năm 2010 
 Bùi Ngọc Hải 
Tóm tắt 
Các hệ thống nhúng ngày nay rất phát triển với những ứng dụng rộng rãi trong nhiều 
lĩnh vực công nghiệp và đời sống, đâu đâu ta cũng bắt gặp các ứng dụng của hệ thống 
nhúng, từ những thiết bị nhỏ như điện thoại, máy nghe nhạc đến các hệ thống phức tạp 
như ô tô, máy móc công nghiệp. Trong phát triển phần mềm nhúng, khâu kiểm thử có vai 
trò quan trọng trong việc đảm bảo chất lượng và độ tin cậy của hệ thống. Các hệ thống 
nhúng có kiến trúc phần cứng cũng như phần mềm rất đa dạng, trong đó có rất nhiều hệ 
thống sử dụng vi điều khiển họ 8051 và phần mềm viết cho hệ thống này thường được 
viết bằng ngôn ngữ C. Khóa luận này sẽ trình bày một số phương pháp kiểm thử chương 
trình C cho vi điều khiển 8051. 
Một cách rất phổ biến để kiểm thử phần mềm cho hệ thống nhúng nói chung và cho 
hệ thống 8051 nói riêng, đó là chạy phần mềm trên chương trình giả lập phần cứng, 
chương trình giả lập ở đây có thể là một vi điều khiển ảo, cũng có thể là chương trình mô 
phỏng trực quan cả một hệ thống mạch bao gồm vi điều khiển và các thiết bị khác. Một 
cách khác để kiểm thử chương trình cho 8051 đó là sử dụng công cụ Unit Test – kiểm thử 
mức đơn vị, Unit Test giúp ta kiểm thử và đảm bảo chất lượng từng đơn vị nhỏ nhất của 
chương trình. 
Mục lục 
Chương 1. Mở đầu .............................................................................................................. 1 
1.1. Đặt vấn đề ................................................................................................................. 1 
1.2. Phạm vi nghiên cứu ................................................................................................. 1 
1.3. Cấu trúc của khóa luận ........................................................................................... 2 
Chương 2. Hệ thống nhúng và phần mềm nhúng ........................................................... 3 
2.1. Hệ thống nhúng ........................................................................................................ 3 
2.2. Phần mềm nhúng ..................................................................................................... 5 
Chương 3. Kiểm thử phần mềm và kiểm thử phần mềm nhúng .................................. 7 
3.1 Kiểm thử phần mềm ................................................................................................. 7 
3.1.1. Kiểm thử phần mềm là gì? ............................................................................... 7 
3.1.2. Kiểm thử đơn vị (unit test): .............................................................................. 7 
3.1.3. Integration Test – Kiểm thử tích hợp .............................................................. 8 
3.1.4. System Test - Kiểm thử mức hệ thống ............................................................ 8 
3.1.5. Acceptance Test - Kiểm thử chấp nhận sản phẩm ......................................... 9 
3.1.6. Regression Test - Kiểm thử hồi quy ................................................................ 9 
3.2. Kiểm thử phần mềm nhúng .................................................................................. 10 
3.2.1. Tổng quan về kiểm thử phần mềm nhúng .................................................... 10 
3.2.2. Kiểm thử bằng phương pháp chạy phần mềm trên môi trường giả lập 
phần cứng. .................................................................................................................. 10 
3.2.3. Kiểm thử phần mềm nhúng bằng Unit Test. ................................................ 11 
Chương 4. Lập trình nhúng cho vi điều khiển 8051 bằng ngôn ngữ C ....................... 12 
4.1. Vi điều khiển 8051 .................................................................................................. 12 
4.2. Lập trình C cho 8051 với trình biên dịch SDCC ................................................ 13 
4.2.1. Ngôn ngữ C và lập trình nhúng ..................................................................... 13 
4.2.2. Lập trình C cho 8051 ...................................................................................... 14 
4.2.3. Trình biên dịch SDCC .................................................................................... 15 
4.2.4. IDE cho lập trình 8051 với SDCC ................................................................. 18 
4.2.5. Ví dụ về lập trình C cho 8051 với SDCC và MIDE-51 ................................ 19 
Chương 5. Kiểm thử chương trình cho 8051 bằng công cụ giả lập ............................. 21 
5.1. Chương trình giả lập vi điều khiển “8051 series microcontroller simulator”. 21 
5.1.1. 8051 series microcontroller simulator ........................................................... 21 
5.1.2. Ví dụ kiểm thử chương trình cho 8051 trên chương trình giả lập 8051 
series microcontroller simulator .............................................................................. 23 
5.1.3. Nhận xét ........................................................................................................... 28 
5.2. Chương trình mô phỏng hệ thống mạch điện tử Proteus .................................. 29 
5.2.1. Giới thiệu Proteus ........................................................................................... 29 
5.2.2. Ví dụ về kiểm thử chương trình nhấp nháy Led trên Proteus ................... 33 
5.2.3. Nhận xét ........................................................................................................... 37 
Chương 6. Kiểm thử chương trình cho 8051 bằng Unit Test, sử dụng công cụ 
Embedded Unit ................................................................................................................. 38 
6.1. Giới thiệu Embedded Unit .................................................................................... 38 
6.2. Cải tiến để sử dụng Embedded Unit cho lập trình C cho 8051 ......................... 39 
6.3. Ví dụ kiểm thử chương trình C cho 8051 với Embedded Unit .......................... 40 
6.4. Nhận xét .................................................................................................................. 44 
Chương 7. Kết luận .......................................................................................................... 45 
Phụ lục ............................................................................................................................... 46 
Phụ lục A: Kiến trúc vi điều khiển 8051 ..................................................................... 46 
Phụ lục B: Hướng dẫn sử dụng Embedded Unit ....................................................... 52 
Tài liệu tham khảo ............................................................................................................ 55 
Chương 1. Mở đầu 
1.1. Đặt vấn đề 
Hệ thống nhúng rất đa dạng và phong phú, tuy nhiên có rất ít người biết được tầm 
quan trọng và sự hiện hữu của chúng trong thế giới quanh ta. Từ những hệ thống phức tạp 
như hàng không vũ trụ, phòng thủ quân sự, máy móc tự động trong công nghiệp, đến 
những phương tiện di chuyển thông thường như máy bay, xe điện, xe hơi, các trang thiết 
bị y tế trong bệnh viện, cho tới những thiết bị truyền hình và điện thoại di động chúng ta 
sử dụng hằng ngày, đâu đâu cũng có sự hiện diện của hệ thống nhúng. 
Cùng với sự đa dạng của các hệ thống nhúng, lĩnh vực lập trình phần mềm nhúng 
hiện nay rất phát triển. Trong phát triển phần mềm thì hoạt động kiểm thử có vai trò hết 
sức quan trọng, mang tính sống còn của sản phẩm, và với phần mềm nhúng cũng không 
phải là ngoại lệ. Sự phát triển của các hệ thống nhúng kéo theo những yêu cầu phát triển 
của hoạt động kiểm thử phần mềm nhúng. Có những hệ thống nhúng đòi hỏi độ tin cậy rất 
cao, việc kiểm thử cho các hệ thống này yêu cầu cẩn thận hơn so với kiểm thử phần mềm 
thông thường. 
Tuy nhiên hiện nay, hệ thống nhúng ở Việt Nam phát triển khá khiêm tốn so với thế 
giới, và lĩnh vực kiểm thử cho phần mềm nhúng lại càng khiêm tốn hơn. Có rất ít các tài 
liệu, các bài báo nói về hoạt động kiểm thử phần mềm nhúng cũng như không có nhiều 
các công cụ hỗ trợ cho việc kiểm thử này. Việc nghiên cứu và tìm hiểu các phương pháp, 
các kĩ thuật kiểm thử cho phần mềm nhúng là một vấn đề cần thiết hiện nay, nó sẽ góp 
phần thúc đẩy sự phát triển của lĩnh vực hệ thống nhúng, một lĩnh vực giàu tiềm năng 
nhưng mới chỉ bước đầu phát triển tại Việt Nam. 
1.2. Phạm vi nghiên cứu 
Trong phạm vi của khóa luận này, tôi nghiên cứu và trình bày về một loại hệ thống 
nhúng cụ thể - đó là các hệ thống sử dụng vi điều khiển 8051 và một số phương pháp 
kiểm thử chương trình cho các hệ thống này. Hệ thống sử dụng 8051 tôi trình bày ở đây 
chỉ là các hệ thống đơn giản, không sử dụng hệ điều hành nhúng, ví dụ như hệ thống đèn 
Led nối với vi điều khiển, phần mềm viết cho hệ thống này là chương trình điều khiển 
Led.Các chương trình được lập trình bằng ngôn ngữ C, sử dụng công cụ biên dịch chạy 
trên môi trường Windows XP 32 bit. 
 1
Các phương pháp kiểm thử mà tôi giới thiệu trong khóa luận này là phương pháp 
kiểm thử chức năng sử dụng chương trình mô phỏng phần cứng và phương pháp sử dụng 
Unit Test ( kiểm thử đơn vị ), hai phương pháp này cũng đều được thực hiện bởi các công 
cụ kiểm thử chạy trên môi trường Windows XP 32 bit. 
Với phương pháp kiểm thử sử dụng Unit Test, tôi giới thiệu một Unit Test 
Framework cho chương trình C nhúng là Embedded Unit, và tôi có đề xuất một phương 
pháp để kiểm thử chương trình cho vi điều khiển 8051 sử dụng công cụ Embedded Unit 
với một trình biên không hỗ trợ cho 8051 là GCC. Đó là việc tạo một file thư viện 
“8051.h” chứa các biến của vi điều khiển, file này chỉ dùng khi test, nó giúp cho GCC 
không báo lỗi vì thiếu thư viện khi biên dịch các phép kiểm thử. 
1.3. Cấu trúc của khóa luận 
Phần còn lại của khóa luận có cấu trúc như sau: 
- Chương 2 : giới thiệu sơ lược về hệ thống nhúng và phần mềm nhúng. 
- Chương 3 : trình bày về lí thuyết kiểm thử phần mềm và kiểm thử phần mềm 
nhúng. 
- Chương 4 : giới thiệu về vi điều khiển 8051 và lập trình C cho hệ thống 8051 trên 
Windows sử dụng trình biên dịch SDCC. 
- Chương 5 : phương pháp kiểm thử phần mềm nhúng sử dụng công cụ giả lập phần 
cứng, giới thiệu công cụ giả lập vi điều khiển 8051 và phần mềm mô phỏng hệ thống 
mạch Proteus. 
- Chương 6 : phương pháp kiểm thử đơn vi ( Unit Test) cho phần mềm nhúng sử 
dụng Embedded Unit, giới thiệu về Embedded Unit và cải tiến để sử dụng nó cho chương 
trình 8051 trên Windows. 
- Chương 7 : rút ra kết luận từ các vấn đề đã nghiên cứu. 
 2
Chương 2. Hệ thống nhúng và phần mềm nhúng 
2.1. Hệ thống nhúng 
Hệ thống nhúng (Embedded system) là một thuật ngữ để chỉ một hệ thống có khả 
năng tự trị được nhúng vào trong một môi trường hay một hệ thống mẹ. Đó là các hệ 
thống tích hợp cả phần cứng và phần phềm phục vụ các bài toán chuyên dụng trong nhiều 
lĩnh vực công nghiệp, tự động hoá điều khiển, quan trắc và truyền tin. Đặc điểm của các 
hệ thống nhúng là hoạt động ổn định và có tính năng tự động hoá cao.[5] 
Hệ thống nhúng thường được thiết kế để thực hiện một chức năng chuyên dụng, 
thường nó có khả năng tự hành và được thiết kế tích hợp vào một hệ thống lớn hơn để 
thực hiện một chức năng chuyên biệt nào đó. Khác với các máy tính đa chức năng, chẳng 
hạn như máy tính cá nhân, một hệ thống nhúng chỉ thực hiện một hoặc một vài chức năng 
nhất định, thường đi kèm với những yêu cầu cụ thể và bao gồm một số thiết bị máy móc 
và phần cứng chuyên dụng mà ta không tìm thấy trong một máy tính đa năng nói chung 
[5]. 
Vì hệ thống chỉ được xây dựng cho một số nhiệm vụ nhất định nên các nhà thiết kế 
có thể tối ưu hóa nó nhằm giảm thiểu kích thước và chi phí sản xuất. Các hệ thống nhúng 
thường được sản xuất hàng loạt với số lượng lớn. Hệ thống nhúng rất đa dạng, phong phú 
về chủng loại. Đó có thể là những thiết bị cầm tay nhỏ gọn như đồng hồ kĩ thuật số và 
máy chơi nhạc MP3, hoặc những sản phẩm lớn như đèn giao thông, bộ kiểm soát trong 
nhà máy hoặc hệ thống kiểm soát các máy năng lượng hạt nhân. Xét về độ phức tạp, hệ 
thống nhúng có thể rất đơn giản với một vi điều khiển hoặc rất phức tạp với nhiều đơn vị, 
các thiết bị ngoại vi và mạng lưới được nằm gọn trong một lớp vỏ máy lớn. Các thiết bị 
PDA hoặc máy tính cầm tay cũng có một số đặc điểm tương tự với hệ thống nhúng như 
các hệ điều hành hoặc vi xử lý điều khiển chúng nhưng các thiết bị này không phải là hệ 
thống nhúng thật sự bởi chúng là các thiết bị đa năng, cho phép sử dụng nhiều ứng dụng 
và kết nối đến nhiều thiết bị ngoại vi [13]. 
Hệ thống nhúng bao gồm cả thiết bị phần cứng và phần mềm, hầu hết đều phải thỏa 
mãn yêu cầu hoạt động theo thời gian thực (real-time). Tùy theo tính chất và yêu cầu, 
mức độ đáp ứng của hệ thống có thể phải là rất nhanh (ví dụ như hệ thống thắng trong xe 
 3
hơi hoặc điều khiển thiết bị trong nhà máy), hoặc có thể chấp nhận một mức độ chậm trễ 
tương đối (ví dụ như điện thoại di động, máy lạnh, ti-vi) [13]. 
Để có thể dễ hình dung, ta xem ví dụ sau đây: một chiếc xe hơi trung bình có 
khoảng 70-80 chip vi xử lý (micro controller unit), mỗi bộ vi xử lý đảm nhiệm một nhiệm 
vụ, chẳng hạn như đóng mở cửa, điều khiển đèn tín hiệu, đo nhiệt độ trong/ngoài xe, hiển 
thị giao diện người dùng , điều khiển thắng (nếu dùng hệ thống thắng điện)… 
Mỗi bộ phận như thế là một hệ thống nhúng, tất cả được thiết kế tích hợp vào một hệ 
thống chung lớn hơn, chính là chiếc xe hơi. Một ví dụ khác gần gũi hơn với cuộc sống 
hằng ngày, đó là những chiếc điện thoại di động. Các chức năng như điều khiển màn hình 
hiển thị, máy nghe nhạc và radio, bộ cảm ứng chụp hình, kết nối với máy tính và thiết bị 
ngoại vi, hoặc cao cấp hơn là kết nối với hệ thống định vị toàn cầu (GPS), tất cả đều là 
những hệ thống nhúng được tích hợp chung vào chiếc điện thoại. 
Các hệ thống nhúng có thể không có giao diện (đối với những hệ thống đơn nhiệm) 
hoặc có đầy đủ giao diện giao tiếp với người dùng tương tự như các hệ điều hành trong 
các thiết bị để bàn. Đối với các hệ thống đơn giản, thiết bị nhúng sử dụng nút bấm, đèn 
LED và hiển thị chữ cỡ nhỏ hoặc chỉ hiển thị số, thường đi kèm với một hệ thống menu 
đơn giản. 
Còn trong một hệ thống phức tạp hơn, một màn hình đồ họa, cảm ứng hoặc có các 
nút bấm ở lề màn hình cho phép thực hiện các thao tác phức tạp mà tối thiểu hóa được 
khoảng không gian cần sử dụng; ý nghĩa của các nút bấm có thể thay đổi theo màn hình 
và các lựa chọn. Các hệ thống nhúng thường có một màn hình với một nút bấm dạng cần 
điểu khiển (joystick button). Sự phát triển mạnh mẽ của mạng toàn cầu đã mang đến cho 
những nhà thiết kế hệ nhúng một lựa chọn mới là sử dụng một giao diện web thông qua 
việc kết nối mạng. Điều này có thể giúp tránh được chi phí cho những màn hình phức tạp 
nhưng đồng thời vẫn cung cấp khả năng hiển thị và nhập liệu phức tạp khi cần đến, thông 
qua một máy tính khác. Điều này là hết sức hữu dụng đối với các thiết bị điều khiển từ xa, 
cài đặt vĩnh viễn. Ví dụ, các router là các thiết bị đã ứng dụng tiện ích này. 
Độ tin cậy của hệ thống nhúng 
Các hệ thống nhúng thường nằm trong các cỗ máy được kỳ vọng là sẽ chạy hàng 
năm trời liên tục mà không bị lỗi hoặc có thể khôi phục hệ thống khi gặp lỗi. Vì thế, các 
 4
phần mềm hệ thống nhúng được phát triển và kiểm thử một cách cẩn thận hơn là phần 
mềm cho máy tính cá nhân. 
 Ngoài ra, các thiết bị rời không đáng tin cậy như ổ đĩa, công tắc hoặc nút bấm 
thường bị hạn chế sử dụng. Việc khôi phục hệ thống khi gặp lỗi có thể được thực hiện 
bằng cách sử dụng các kỹ thuật như watchdog timer – nếu phần mềm không đều đặn nhận 
được các tín hiệu watchdog định kì thì hệ thống sẽ bị khởi động lại [5]. 
Một số vấn đề cụ thể về độ tin cậy như: 
- Hệ thống không thể ngừng để sửa chữa một cách an toàn, ví dụ như ở các hệ thống 
không gian, hệ thống dây cáp dưới đáy biển, các đèn hiệu dẫn đường,… Giải pháp đưa ra 
là chuyển sang sử dụng các hệ thống con dự trữ hoặc các phần mềm cung cấp một phần 
chức năng. 
- Hệ thống phải được chạy liên tục vì tính an toàn, ví dụ như các thiết bị dẫn đường 
máy bay, thiết bị kiểm soát độ an toàn trong các nhà máy hóa chất,… Giải pháp đưa ra là 
lựa chọn backup hệ thống. 
- Nếu hệ thống ngừng hoạt động sẽ gây tổn thất rất nhiều tiền của ví dụ như các 
dịch vụ buôn bán tự động, hệ thống chuyển tiền, hệ thống kiểm soát trong các nhà máy 
…[5] 
2.2. Phần mềm nhúng 
Là phần mềm trong các hệ thống nhúng. Phần mềm nhúng có thể là những chương 
trình đơn giản chạy trực tiếp trên nền phần cứng hoặc là những chương trình, ứng dụng 
chạy trên nền một hệ điều hành nhúng. Phần mềm nhúng thường chạy với số tài nguyên 
phần cứng hạn chế: không có bàn phím, màn hình hoặc có nhưng với kích thước nhỏ, bộ 
nhớ hạn chế.[5] 
Phần mềm nhúng thường được lập trình trên máy tính cá nhân của lập trình viên, 
được biên dịch với một trình biên dịch và một môi trường phát triển, máy tính dùng để lập 
trình được gọi là host. Sau đó chương trình được nạp lên thiết bị và chạy, thiết bị mà 
chương trình được nạp lên gọi la target.Với mỗi target khác nhau sẽ có cấu trúc vi điểu 
khiển khác nhau, và sử dụng hệ điều hành nhúng khác nhau, do vậy tùy từng loại sẽ có 
các cách thức lập trình tương ứng . 
 5
C là một trong những ngôn ngữ lập trình nhúng phổ biến nhất hiện nay. C có một số 
ưu điểm nổi bật tiêu biểu như khá nhỏ và dễ dàng cho việc học, các chương trình biên 
dịch C thường khá sẵn cho hầu hết các bộ xử lý đang sử dụng hiện nay, và có rất nhiều 
người đã biết và làm chủ được ngôn ngữ này. 
 6
Chương 3. Kiểm thử phần mềm và kiểm thử phần mềm 
nhúng 
3.1 Kiểm thử phần mềm 
3.1.1. Kiểm thử phần mềm là gì? 
Kiểm thử phần mềm là hoạt động khảo sát sản phần mềm nhằm cung cấp cho người 
có lợi ích liên quan đến phần mềm những thông tin về chất lượng của sản phẩm phần 
mềm ấy. Mục đích của kiểm thử phần mềm là tìm ra các lỗi hay khiếm khuyết phần mềm 
nhằm đảm bảo hiệu quả hoạt động tối ưu của phần mềm trong nhiều lĩnh vực khác 
nhau.[6] 
Theo nghĩa thông thường nhất, kiểm thử phần mềm bao gồm việc chạy thử phần 
mềm hay một chức năng của phần mềm, xem nó chạy đúng như mong muốn hay không. 
Việc kiểm thử này có thể thực hiện từng chặng, sau khi mỗi chức năng hoặc mô đun được 
phát triển, hoặc thực hiện sau cùng, khi phần mềm đã được phát triển hoàn tất. 
Các mức kiểm thử phần mềm thông thường là [6] : 
- Unit Test – Kiểm thử mức đơn vị 
- Integration Test – Kiểm thử tích hợp 
- System Test - Kiểm thử mức hệ thống 
- Acceptance Test - Kiểm thử chấp nhận sản phẩm 
- Regression Test - Kiểm thử hồi quy 
3.1.2. Kiểm thử đơn vị (unit test): 
Một Unit là một thành phần phần mềm nhỏ nhất mà ta có thể kiểm thử được. Theo 
định nghĩa này, các hàm (Function), thủ tục (Procedure), lớp (Class), hoặc cá