Tóm tắt - Kiểm thử phần mềm là hoạt động nhằm đảm bảo chất
lượng phần mềm. Tuy nhiên, đối với những phần mềm lớn và
phức tạp, các hoạt động kiểm thử đòi hỏi nhiều thời gian và công
sức. Vì vậy, việc sớm có thông tin về chương trình rất cần thiết
cho quá trình kiểm thử nhằm nâng cao chất lượng sản phẩm
phần mềm. Việc phân tích khả năng kiểm thử (PTKNKT) phần
mềm giúp đánh giá sớm chi phí kiểm thử, nghĩa là thông tin phần
mềm dễ dàng hay khó khăn khi kiểm thử. Khi phương pháp phát
triển hướng đối tượng ra đời thì các phương pháp phân tích
truyền thống không còn phù hợp do những đặc thù riêng của
phương pháp này. Trong bài báo này, chúng tôi tập trung nghiên
cứu và phân tích các độ đo KNKT hướng đối tượng. Từ đó,
chúng tôi đề xuất việc áp dụng các độ đo PTKNKT chương trình
hướng đối tượng Java. Các độ đo được tích hợp vào công cụ
Eclipse, được tính một cách tự động, thử nghiệm cho một số
chương trình thực tế và mang lại thông tin hữu ích.
5 trang |
Chia sẻ: thanhle95 | Lượt xem: 624 | Lượt tải: 1
Bạn đang xem nội dung tài liệu Phân tích khả năng kiểm thử chương trình hướng đối tượng Java, để tải tài liệu về máy bạn click vào nút DOWNLOAD ở trên
ISSN 1859-1531 - TẠP CHÍ KHOA HỌC VÀ CÔNG NGHỆ ĐẠI HỌC ĐÀ NẴNG, SỐ 12(97).2015, QUYỂN 2 25
PHÂN TÍCH KHẢ NĂNG KIỂM THỬ CHƯƠNG TRÌNH
HƯỚNG ĐỐI TƯỢNG JAVA
TESTABILITY ANALYSIS OF JAVA OBJECT - ORIENTED PROGRAMS
Nguyễn Thị Thúy Hoài1, Nguyễn Thanh Bình2
1Trường Cao đẳng Công nghệ, Đại học Đà Nẵng; thuy.hoai@yahoo.com
2Trường Đại học Bách khoa, Đại học Đà Nẵng; ntbinh@dut.udn.vn
Tóm tắt - Kiểm thử phần mềm là hoạt động nhằm đảm bảo chất
lượng phần mềm. Tuy nhiên, đối với những phần mềm lớn và
phức tạp, các hoạt động kiểm thử đòi hỏi nhiều thời gian và công
sức. Vì vậy, việc sớm có thông tin về chương trình rất cần thiết
cho quá trình kiểm thử nhằm nâng cao chất lượng sản phẩm
phần mềm. Việc phân tích khả năng kiểm thử (PTKNKT) phần
mềm giúp đánh giá sớm chi phí kiểm thử, nghĩa là thông tin phần
mềm dễ dàng hay khó khăn khi kiểm thử. Khi phương pháp phát
triển hướng đối tượng ra đời thì các phương pháp phân tích
truyền thống không còn phù hợp do những đặc thù riêng của
phương pháp này. Trong bài báo này, chúng tôi tập trung nghiên
cứu và phân tích các độ đo KNKT hướng đối tượng. Từ đó,
chúng tôi đề xuất việc áp dụng các độ đo PTKNKT chương trình
hướng đối tượng Java. Các độ đo được tích hợp vào công cụ
Eclipse, được tính một cách tự động, thử nghiệm cho một số
chương trình thực tế và mang lại thông tin hữu ích.
Abstract - Testing software is one of the activities which plays an
important role in the process of software development and is used
to measure the quality of software. However, with large and
complex software, testing requires a lot of time and effort.
Therefore, getting information from early software testing is
necessary to improve the quality of software. Testability analysis
can help the programmers measure the cost of testing earlier and
getting more testing information whether it will be easy or
complex when testing. Currently, after the method of object-
oriented programming was introduced, the old ones are no longer
appropriate due to their own characteristics of. In this article, we
focus on studying the testability analysis that is based on metrics
and we propose the application of the metrics into analyzing
testability of Java object-oriented programs. The measures are
integrated into Eclipse tool and automatically calculated. These
metrics are applied to some Java applications and the results
may help designers get useful information.
Từ khóa - chất lượng phần mềm; phân tích khả năng kiểm thử;
độ đo; phần mềm hướng đối tượng; chương trình hướng đối
tượng Java.
Key words - quality of software; testability; metrics; object-
oriented software, Java object-oriented programs.
1. Đặt vấn đề
Kiểm thử phần mềm là một hoạt động rất quan
trọng trong tiến trình phát triển phần mềm nhằm mục
đích giải đáp thắc mắc liệu chương trình có lỗi hay
không?
Với những phần mềm lớn và phức tạp thì việc thực
hiện các thủ tục kiểm thử đòi hỏi nhiều thời gian và công
sức. Việc sớm có thông tin về hệ thống chương trình,
nghĩa là thông tin phần mềm dễ dàng hay phức tạp khi
kiểm thử, là công việc đặt lên hàng đầu nhằm giảm những
rủi ro và đánh giá sớm chi phí khi thực hiện kiểm thử.
Những thông tin này có được nhờ hoạt động PTKNKT
phần mềm. PTKNKT phần mềm là hoạt động đánh giá
những khó khăn khi thực hiện kiểm thử, tập trung tìm xác
suất phát hiện lỗi trong chương trình.
Trước đây, nhiều độ đo như McCabe, Halstead [2]
đã được sử dụng để đánh giá độ phức tạp và khả năng
kiểm thử (KNKT) đối với các hàm hoặc thủ tục theo
phương pháp phát triển hướng chức năng. Tuy nhiên, khi
phương pháp phát triển hướng đối tượng (HĐT) ra đời thì
các phép đo đó không còn phù hợp do tính đặc thù riêng
của phương pháp này. Vì vậy, thực tiễn đòi hỏi phải có
phép đo mới phù hợp hơn để có thể đánh giá khả năng
kiểm thử phần mềm phát triển HĐT một cách chính xác
hơn. Việc ra đời của các độ đo sử dụng cho các chương
trình phát triển HĐT dựa vào mã nguồn, số lượng các lớp,
các phương thức, các lớp con và mối quan hệ giữa các lớp
giúp công việc đánh giá KNKT phần mềm hướng đối
tượng chính xác và hiệu quả hơn.
2. Phân tích KNKT phần mềm
2.1. Khái niệm
PTKNKT phần mềm là hoạt động đánh giá những khó
khăn khi thực hiện kiểm thử, tập trung tìm xác suất phát
hiện lỗi trong chương trình. KNKT phần mềm là khả năng
phần mềm có thể dễ dàng hay phức tạp khi thực hiện
kiểm thử không. Hoạt động này nhằm đánh giá chất lượng
bên trong của phần mềm và giúp người thiết kế cải tiến
chất lượng mã nguồn hay kiểm thử viên lập kế hoạch và
phân bố nguồn tài nguyên kiểm thử một cách hợp lý. Kết
quả của hoạt động PTKNKT cho biết phần mềm có dễ
dàng hay phức tạp khi kiểm thử.
2.2. Các phương pháp PTKNKT phần mềm
Để giảm bớt thời gian và chi phí cho giai đoạn kiểm
thử, công việc PTKNKT được thực hiện nhằm trả lời
câu hỏi kiểm thử viên có nên thực hiện kiểm thử phần
mềm hay yêu cầu cải tiến chất lượng phần mềm. Do
đó, hoạt động này cần phải có phương pháp đánh giá
phần mềm chính xác và hiệu quả. Trong phần này,
chúng tôi trình bày một số phương pháp đánh giá
KNKT phần mềm.
2.2.1. Phương pháp PTKNKT miền
Chương trình có KNKT theo miền [3] sẽ không tồn tại
tính không nhất quán đầu vào-ra, hay nói cách khác là có
khả năng kiểm thử dễ dàng. KNKT miền liên quan đến
khả năng quan sát và khả năng điều khiển. Một thủ tục có
KNKT miền nếu nó có khả năng quan sát và khả năng
điều khiển. Các chương trình không có KNKT sẽ gây khó
26 Nguyễn Thị Thúy Hoài, Nguyễn Thanh Bình
khăn cho quá trình kiểm thử. KNKT miền được định
nghĩa là khả năng dễ dàng chỉnh sửa chương trình để nó
tăng khả năng quan sát và điều khiển.
2.2.2. Phương pháp PTKNKT dựa trên độ nhạy
Để đo KNKT, một khái niệm mới là độ nhạy được định
nghĩa [4]: độ nhạy tại một vị trí S là dự đoán xác suất lỗi tại
vị trí S sẽ gây ra sự cố cho phần mềm với miền đầu vào chỉ
định. Phương pháp phân tích độ nhạy hay còn gọi là phương
pháp phân tích PIE gồm phân tích sự thực thi, phân tích các
ảnh hưởng và phân tích sự lan truyền. PIE có tính chất động
do nó yêu cầu sự thực thi của mã nguồn. Các dữ liệu đầu vào
được lựa chọn ngẫu nhiên từ miền dữ liệu vào. Trạng thái
tính toán của mã nguồn đối với các dữ liệu vào này được so
sánh ngược với trạng thái của mã nguồn tương tự.
3. Phân tích KNKT phần mềm HĐT
Có rất nhiều phương pháp PTKNKT phần mềm phát
triển theo phương pháp HĐT. Mỗi phương pháp đều có
ưu và nhược điểm riêng. Mục này trình bày tổng quan về
các phương pháp phân tích KNKT phần mềm HĐT.
3.1. Các phương pháp PTKNKT sử dụng độ đo và mã nguồn
Tính thừa kế và che dấu dữ liệu là hai đặc điểm chính
đem đến cơ chế thiết kế mạnh mẽ cho phương pháp phát
triển phần mềm HĐT. Vì vậy, phương pháp PTKNKT sử
dụng độ đo và mã nguồn ra đời dựa trên các đặc điểm của
phương pháp phát triển phần mềm HĐT.
3.1.1. Phương pháp sử dụng độ đo dựa trên các đặc tính
phần mềm HĐT
Kết quả mỗi độ đo có thể đánh giá KNKT cũng như
dễ dàng nhận ra những lỗi còn tồn tại trong giai đoạn thiết
kế và lập trình trước đó. Từ các đặc thù riêng của phương
pháp phát triển phần mềm HĐT, sáu độ đo được đề xuất
để đánh giá KNKT của phần mềm HĐT [8]:
+ Độ đo 1: tính độ rộng của các phương thức trong lớp;
+ Độ đo 2: tính độ sâu của cây thừa kế;
+ Độ đo 3: tính số lớp con;
+ Độ đo 4: tính số lượng liên kết giữa các lớp đối tượng;
+ Độ đo 5: tính số lần phản hồi của lớp;
+ Độ đo 6: tính sự liên kết yếu giữa các phương thức.
3.1.2. Phương pháp down- calling
Down-calling [6] là kỹ thuật dùng để đảm bảo tính
nhất quán giữa các lớp. Hầu hết các ngôn ngữ lập trình
chỉ quan tâm đến cú pháp của phương thức, không quan
tâm đến ngữ nghĩa và không cung cấp phương pháp đánh
giá chúng một cách thống nhất. Down-calling cũng là cơ
chế dùng để bảo đảm mặt cú pháp và ngữ nghĩa đều nhất
quán giữa các phương thức không đa hình và phương thức
đa hình trong tất cả các lớp dẫn xuất và được dùng khi các
thể hiện của lớp dẫn xuất thay thế cho thể hiện của lớp cơ
sở. Do đó, các dẫn xuất của lớp đó sẽ thừa kế các phương
thức không đa hình và các thực thi.
4. Các độ đo sử dụng phân tích KNKT chương trình
HĐT Java
Ngôn ngữ lập trình Java đã nhanh chóng trở thành một
ngôn ngữ lập trình của các lập trình viên chuyên nghiệp.
Java được xây dựng dựa trên nền tảng của C và C++ và là
ngôn ngữ vừa biên dịch vừa thông dịch. Mục tiêu của các
nhà thiết kế Java là cho phép người lập trình viết chương
trình một lần nhưng có thể chạy trên các nền phần cứng
khác nhau. Ngôn ngữ Java có 3 đặc điểm quan trọng là
tính đóng gói, tính thừa kế và tính đa hình.
Từ các phương pháp PTKNKT phần mềm HĐT và các
đặc điểm của ngôn ngữ Java, chúng tôi đề xuất áp dụng
một số độ đo PTKNKT phần mềm phát triển theo phương
pháp HĐT Java trong Bảng 1 [7] [8].
Bảng 1. Các độ đo sử dụng đánh giá KNKT phần mềm HĐT
Metric Độ đo
Coupling Factor (CF) Độ đo sự phụ thuộc
Lack of Cohension of Methods Độ đo sự gắn kết yếu của các phương thức
Cyclomatic Complexity Độ phức tạp vòng
Attribute Hiding Factor (AHF) Độ đo thuộc tính ẩn
Method Hiding Factor (MHF) Độ đo phương thức ẩn
Depth of Inheritance Tree (DIT) Độ sâu của cây thừa kế
Number of Children (NOC) Số lượng lớp con
Weighted Methods Per Class
(WMC)
Độ phức tạp của các
phương thức trong các lớp
Method Inheritance Factor (MIF) Độ đo phương thức thừa kế
Attribute Inheritance Factor (AIF) Độ đo thuộc tính thừa kế
Nested Block Depth (NBT) Độ đo tính độ sâu các khối mã nguồn lồng nhau
Number of Classes Số lượng lớp con
Lines of Code Số dòng lệnh
4.1. Độ đo khả năng liên kết yếu các phương thức
Độ đo LCOM được tính bằng cách đếm số cặp phương
thức cùng gọi đến các biến thành phần giống nhau trong
lớp trừ đi số cặp phương thức không gọi đến một biến
thành phần nào giống với các phương thức còn lại.
4.2. Các độ đo liên quan đến tính đóng gói
4.2.1. Độ đo khả năng che dấu thuộc tính
Công thức như sau:
1
1
TC
i h i
TC
i d i
A C
AHF
A C
Trong đó:
TC tổng các lớp; d i v i h iA C A C A C các thuộc tính được định
nghĩa trong iC ;
v iA C các thuộc tính thấy được trong lớp iC ;
h iA C các thuộc tính ẩn trong lớp iC ;
4.2.2. Độ đo khả năng che dấu phương thức
Công thức như sau:
1
1
TC
i h i
TC
i d i
M C
MHF
M C
Trong đó:
TC tổng các lớp; d i v i h iM C M C M C các phương thức được
ISSN 1859-1531 - TẠP CHÍ KHOA HỌC VÀ CÔNG NGHỆ ĐẠI HỌC ĐÀ NẴNG, SỐ 12(97).2015, QUYỂN 2 27
định nghĩa trong iC ;
v iM C các phương thức thấy được trong lớp iC ; h iM C các phương thức ẩn trong lớp iC .
4.3. Các độ đo liên quan đến tính thừa kế
4.3.1. Độ sâu của cây thừa kế
Công thức như sau:
DIT c Ancestors c
Trong đó, Ancestors c là tập các lớp mà lớp c được
thừa kế trực tiếp hoặc gián tiếp.
4.3.2. Số lượng các lớp con
Công thức như sau:
NOC c Children c
Trong đó, Children c là tập các lớp được thừa kế
trực tiếp từ lớp c.
4.3.3. Độ đo khả năng thừa kế thuộc tính (AIF)
Công thức như sau:
1
1
TC
i i i
TC
i a i
A C
AIF
A C
Trong đó:
TC tổng các lớp; a i d i i iA C A C A C các thuộc tính thấy được
trong iC ;
d i n i o iA C A C A C các thuộc tính trong iC ; n iA C các thuộc tính mới trong lớp iC ; o iA C các thuộc tính overriding trong lớp iC ; i iA C các thuộc tính được thừa kế trong lớp iC .
4.3.4. Độ đo khả năng thừa kế phương thức (MIF)
Công thức như sau:
1
1
TC
i i i
TC
i a i
M C
MIF
M C
Trong đó:
TC tổng các lớp; a i d i i iM C M C M C các phương thức trong
iC ;
d i n i o iM C M C M C các phương thức mới
trong iC ;
n iM C các phương thức mới trong lớp iC ; o iM C các phương thức overiding trong lớp iC ; i iM C các phương thức được thừa kế trong lớp iC .
4.4. Công thức tính độ phức tạp các phương thức trong lớp
Công thức như sau:
Imm M cWMC c VG m
Trong đó:
Im cM là số lượng các phương thức được thực thi
trong lớp c.
VG m được tính bằng độ đo phức tạp vòng cho mỗi
phương thức m. Công thức của độ đo độ phức tạp vòng:
M E N P với M là kết quả độ đo McCabe, E là số
các cạnh trong đồ thị của chương trình, N là số các nút
của đồ thị và P là số các đường được kết nối. Ngoài ra,
McCabe có thể tính bằng công thức 1M D với D là
các nút quyết định trong đồ thị.
Bảng 2. Số liệu so sánh giữa McCabe và độ phức tạp mã nguồn
Độ phức tạp
McCabe
Độ phức tạp của mã nguồn
1-10 Chương trình đơn giản, không chứa nhiều rủi ro
11-20 Chương trình phức tạp hơn, tính rủi ro trung bình
21-50 Chương trình phức tạp, tính rủi ro cao
>50 Không có khả năng kiểm thử, tính rủi ro rất cao
4.5. Độ đo tính sự phụ thuộc giữa các đối tượng
1 1
2
1
_ ,
2
TC TC
i j i j
TC
i i
is client C C
COF
TC TC DC C
Trong đó:
TC tổng các lớp;
2TC TC số cặp phụ thuộc lớn nhất trong hệ
thống của lớp T và C;
12 TCi iDC C số cặp phụ thuộc lớn nhất do thừa kế.
_ ,i jis client C C
Bảng 3. Ý nghĩa của các độ đo
Độ đo Ý nghĩa
Độ đo sự phụ thuộc Giá trị càng lớn, độ phức tạp cànglớn và rất khó bảo trì phần mềm
Độ đo sự liên kết yếu của
các phương thức
Sự gắn kết thấp sẽ làm tăng độ
phức tạp
Độ phức tạp vòng Giá trị càng nhỏ thì phần mềmcàng ít rủi hơn
Độ đo thuộc tính ẩn Giá trị này thể hiện tính đóng góicho thuộc tính hợp lý chưa?
Độ đo phương thức ẩn Giá trị này thể hiện tính đóng góicho phương thức hợp lý chưa?
Độ sâu của cây thừa kế Lớp càng nằm ở sâu trong cây thừakế thì càng tăng độ phức tạp
Số lượng lớp con Giá trị càng lớn sẽ càng tăng khảnăng thừa kế
Độ phức tạp của cácphương
thức trong các lớp
Giá trị càng lớn sẽ càng giảm khả
năng thừa kế
Độ đo phương thức thừa
kế
Giá trị này thể hiện tính thừa kế
cho phương thức hợp lý chưa?
Độ đo thuộc tính thừa kế Giá trị này thể hiện tính thừa kếcho thuộc tính hợp lý chưa?
Độ đo tính độ sâu các
khối mã nguồn lồng nhau
Giá trị càng lớn sẽ rất khó để đọc
hiểu mã nguồn
1: nếu và chỉ nếu tồn tại mối
quan hệ giữa lớp khách với lớp
chủ và lớp khách phải khác với
lớp chủ.
0: trong trường hợp còn lại.
28 Nguyễn Thị Thúy Hoài, Nguyễn Thanh Bình
Bảng 4. So sánh giá trị độ đo với độ phức tạp phần mềm
Độ đo Giá trị độ đo
Độ phức
tạp
Độ đo sự phụ thuộc giữa các đối tượng Tăng Tăng
Độ đo sự liên kết yếu của các phương thức Giảm Tăng
Độ sâu của cây thừa kế Tăng Tăng
Độ phức tạp vòng Tăng Tăng
Bảng 5. So sánh giá trị độ đo với KNKT phần mềm
Độ đo Giá trị độ đo KNKT
Độ đo sự phụ thuộc giữa các đối tượng Tăng Giảm
Độ đo sự gắn kết yếu của các phương thức Tăng Giảm
Số lượng lớp con Tăng Giảm
Độ phức tạp của các phương thức trong các lớp Tăng Giảm
Độ đo khả năng thừa kế của phương thức Tăng Tăng
Độ đo khả năng thừa kế của thuộc tính Tăng Tăng
5. Ứng dụng PTKNKT các phần mềm HĐT Java với
công cụ tính độ đo
Để có thể tính các độ đo như đã trình bày ở Mục 4,
chúng tôi đề xuất sử dụng phần mềm Metrics. Phần mềm
này đã được tích hợp các độ đo để PTKNKT và nó sẽ là
công cụ hữu ích cho các kiểm thử viên khi đánh giá
KNKT các phần mềm phát triển theo phương pháp HĐT.
5.1. Quy trình sử dụng độ đo
Trong quy trình phát triển phần mềm, các độ đo được
sử dụng ở giai đoạn sau khi viết code và trước khi thực
hiện kiểm thử. Kết quả của các độ đo sẽ là cơ sở giúp
người lập trình đưa ra những đánh giá KNKT về phần
mềm cũng như cải thiện những phần mềm chưa đạt yêu
cầu. Việc sử dụng các độ đo để đánh giá KNKT phần
mềm được thực hiện ba bước:
Bước 1: Thực hiện tính toán các độ đo và ghi lại kết quả
đo. Dựa vào kết quả đo để thực hiện các lớp chưa đạt yêu cầu.
Bước 2: Những lớp chưa đạt yêu cầu được thay đổi
trước khi tính toán lại các độ đo.
Bước 3: So sánh độ đo trước và sau khi thực hiện công
việc cải thiện phần mềm để đánh giá tổng quan về KNKT
phần mềm.
5.2. Quy trình tích hợp phần mềm Metrics vào công cụ
Eclipse
Eclipse là môi trường phát triển tích hợp cho Java, được
phát triển ban đầu bởi Java. Kiểm thử viên có thể tích hợp
phần mềm Metrics vào công cụ soạn thảo Eclipse để tính
kết quả các độ đo mã nguồn. Kết quả các độ đo giúp người
kiểm thử đánh giá KNKT phần mềm cao hay thấp.
5.3. Thử nghiệm
Trong phần này, chúng tôi chọn mã nguồn JDK
1.7.0_80 là mã nguồn chuẩn của Java để thực hiện tính
các độ đo thông qua phần mềm Metrics. Kết quả các độ
đo được tính từ mã nguồn JDK (Bảng 6) sẽ là giá trị
mong đợi (giá trị độ đo chuẩn) để đánh giá KNKT cho
các thử nghiệm: chương trình giao dịch ngân hàng ATM
và phần mềm bán hàng điện tử. Đây là những phần mềm
phức tạp, các giao dịch tương tác giữa người dùng và ứng
dụng đòi hỏi độ chính xác cao.
Bảng 6. Kết quả mong đợi của các độ đo khi sử dụng
phần mềm Metrics
Độ đo Kết quả
Độ đo sự liên kết yếu của các phương thức 0,409
Độ phức tạp vòng 2,422
Độ sâu của cây thừa kế 2,786
Độ phức tạp của các phương thức trong các lớp 17,214
Độ đo tính độ sâu các khối mã nguồn lồng nhau 1,467
Độ đo tính các tham số của phương thức 1,322
5.3.1. Thử nghiệm 1: chương trình giao dịch ngân hàng ATM
Chương trình Giao dịch ngân hàng ATM có các tác vụ
đăng ký khách hàng, đăng ký tài khoản, đăng nhập tài
khoản, rút tiền, gửi tiền, chuyển tiền, xem thông tin tài
khoản, xem thông tin giao dịch. Chương trình này gồm 3
lớp với 532 dòng lệnh. Sau khi sử dụng phần mềm
Metrics, chúng tôi có được kết quả trong Bảng 7.
Bảng 7. Kết quả các độ đo của chương trình máy ATM
Độ đo Kết quả
Độ đo sự liên kết yếu của các phương thức 0,602
Độ phức tạp vòng 2,543
Độ sâu của cây thừa kế 1
Độ phức tạp của các phương thức trong các lớp 117
Độ đo tính độ sâu các khối mã nguồn lồng nhau 1,957
Độ đo tính các tham số của phương thức 0,804
Hầu hết các kết quả của các độ đo được tính toán bằng
phần mềm tính độ đo đều nằm trong vùng cho phép. Tuy
nhiên, riêng kết quả độ đo độ phức tạp của các phương thức
trong các lớp quá cao (dựa vào kết quả của các độ đo ở Bảng
7). Chúng tôi đánh giá phần mềm ATM cần cải thiện lại mã
nguồn trước khi thực hiện giai đoạn kiểm thử tiếp theo.
5.3.2. Thử nghiệm 2: phần mềm bán hàng thiết bị điện tử
Chương trình bán hàng các thiết bị điện tử gồm giao diện
giới thiệu các sản phẩm, đặt hàng, tính tiền các đơn đặt hàng.
Chương trình này gồm 8 lớp với tổng cộng 587 dòng lệnh.
Bảng 8. Kết quả các độ đo phần mềm bán hàng các thiết bị điện tử
Độ đo Kết quả
Độ đo sự liên kết yếu của các phương thức 0,404
Độ phức tạp vòng 1,478
Độ sâu của cây thừa kế 3,111
Độ phức tạp của các phương thức trong các lớp 11
Độ đo tính độ sâu các khối mã nguồn lồng nhau 1,343
Độ đo tính các tham số của phương thức 0,761
Dựa vào Bảng 8, đối với phần mềm này, chỉ có kết
quả độ đo của độ sâu cây thừa kế có giá trị cao hơn phần
mềm chuẩn. Các kết quả của tất cả các độ đo còn lại đều
được chấp nhận (nghĩa là nhỏ hơn độ đo chuẩn). Chúng
tôi đánh giá phần mềm này có độ phức tạp thấp và khả
năng kiểm thử cao. Tuy nhiên, phần mềm này cần phải
cải tiến mã nguồn ở cây thừa kế.
6. Kết luận
Bài báo đã trình bày về hoạt động PTKNKT và một số
phương pháp PTKNKT như phương pháp phân tích mật
ISSN 1859-1531 - TẠP CHÍ KHOA HỌC VÀ CÔNG NGHỆ ĐẠI HỌC ĐÀ NẴNG, SỐ 12(97).2015, QUYỂN 2 29
độ động, phương pháp sử dụng các câu xác nhận, phương
pháp chọn dữ liệu đảm bảo tính nhất quán. Những thông
tin có được từ hoạt động PTKNKT phần mềm thực sự rất
cần thiết cho hoạt động kiểm thử tiếp theo. Từ các đặc
điểm của phương pháp phát triển HĐT (cụ thể là ngôn
ngữ lập trình Java), nhóm tác giả đề xuất ứng dụng các độ
đo để PTKNKT sớm trong giai đoạn thiết kế. Độ đo
KNKT có thể giúp cho người kiểm t