TOM TAT Luan vẫn này lập Irung nghiên cứu phương pháp sinh bô kiểm thứ từ biểu để tuân tự UML 2.0 dựa trên lý thuyết kiểm thử mô hình nhằm tự động hóa quá trình.. Kết quả thực nghiệm c
Trang 1
ĐẠI HỌC QUỐC GIA HA NOT 'TRƯỜNG ĐẠI HỌC CÔNG NGHỆ
TRAN THI MUI
PHUONG PHAP SINH BQ KIEM THU TU BIEU DO TUAN
TU UML 2.0 VA UNG DUNG CIIO KIEM TI PITAN MEM
LUAN VAN THAC SI Ngành: IIệ thống thông tin
HA NOI- 2015
Trang 2
ĐẠI HỌC QUỐC GIA HA NOT 'TRƯỜNG ĐẠI HỌC CÔNG NGHỆ
TRAN THI MUI
PHUONG PHAP SINH BO KTEM THU TU BIEU DO TUAN TU
UML 2.0 VA UNG DUNG CHO KIEM THU PHAN MEM
Ngành: Hệ thông thông tin Chuyên ngành: Hệ thông thông tin
Mã số: 60 48 01 04
LUẬN VĂN THẠC SĨ Ngành: Hệ thẳng thông tin
NGƯỜI HƯỚNG DẪN KHOA HỌC: TS Phạm Ngục Hùng
HÀ NỘI —2015
Trang 3
VIETNAM SATIONAL UNIVERSITY, LANOL UNIVERSITY OF ENGINEERING AND TECHNOLOGY
TRAN THI MUI
A METHOD AND TOOL SUPPORTING FOR AUTOMATED
TESTING OF UML 2.0 SEQUENCE DIAGRAMS
THE MS THESIS
Major: Tnfarmation Systems
Supervisor: Dr Pham Ngoc Hung
HANOI - 2015
Trang 4Cuối cùng, tôi xin gũi lời biết ơn sâu sắc tới gia đình vì đã luôn ở bên cạnh tôi,
mang lai cho tôi nguồn động viên tỉnh than to lớn và tạo mọi điều kiện thuận lợi cho
tôi trong quá trinh học lận và hoàn thành luận văn này
Mặc đủ đã rất cá gắng nhưng luận văn sẽ không tránh khỏi những thiếu sót Rat mong nhận được ý kiến đóng góp quý báu của Thấy, Cô giáo và các bạn đề luận văn được hoàn thiện hơn
Xin tran trọng cắm gn!
TIA Néi, ngày 22 tháng 11 năm 2015
Học viên:
Trần Thị Mùi
Trang 5TOM TAT
Luan vẫn này lập Irung nghiên cứu phương pháp sinh bô kiểm thứ từ biểu để tuân tự UML 2.0 dựa trên lý thuyết kiểm thử mô hình nhằm tự động hóa quá trình kiêm thử, nâng cao liệu quả, tiết kiệm cli phí và thời gian Phương pháp nảy dược thực hiện thông qua các bước chỉnh sau Đầu tiên, để co dược mô hình làm dâu vào
khiển bằng cách tiến hành bóc, tách từng khối (fragment) trong bid
Một công cụ hỗ trợ phương pháp mày đã được cải đặt và thử nghiệm với một
số vi dụ dơn giản nhằm minh chứng cho tình dùng dẫn và hiệu quả của phương pháp trên Kết quả thực nghiệm cho thay tiểm năng ứng dụng của công cu nay trong việc kiểm thử tự động ở các công ty,
Từ khỏa: Kiểm thử dựa trên mô hình, kiêm thử tự động, biếu đỒ tuân tự, đồ thị dòng điều khiển, ca kiếm thủ, độ bao phú.
Trang 6ABSTRACT
This Uhesis rescarches a method Lo generate a scl of test cases [rom the TMT
2.0 sequence diagrams based on model-based Lesting in order 1o automate the testing
process, ineresse elfecliveness, reduce cost and time of testing The method follows
the foHowing sleps Al firsL, in order to have the input model for testing, iL analyves
and divides the input diagram into fragments These fragments can be sequential or nested based on their relationship Afler thal, it builds the corresponding graph for cach of the fragments and merges them together in order to generate the corresponding control Mow graph for the input sequence diagram The [ual control flow graph is analyzed to generate a set of testing paths Symbolic Hxecution (SH)
technique is used to create restrictions associated with that sct of testing paths Finally, the method uses SMI solver to solve the set of restrictions to find sclution
and then to generate a set of test cases
A tool is also implemented and tested with some simple examples in order to
show the correciness and clfectivencss of the method The experimental resulls give
us the potential application of the lool in automation testing im comparties
Keywords: Model base testing, automated testing, sequence diagram, control flow testing, fest case
in
Trang 7TÔI CAM ĐOÁAN
Tôi xin cam đoan rằng những nghiên cứu về sinh tu déng bộ kiểm thử từ biếu
đồ tuần tự được trình bày trong luận văn này dưới sự hướng dẫn của TS Phạm Ngọc Hùng là của tôi Những gì tôi viết ra không sao chép từ các tài liêu, không sử dựng các kết quả của người khác rà không trích dẫn cụ thể
Téi xin cam đoan công cụ kiểm thử tự động tôi trình bày trong luận văn là đo tôi tự phát triển, không sao chép mã nguồn của người khác Nếu sai tôi hoản toárt chịu trách nhiệm theo quy định của Trường Dại học Công Nghệ - Dại học Quốc Gia
Tả Nội
1à nội, ngày 22 tháng 11 năm 2015
Học viên:
Trần Thị Mũi
Trang 8243 Phuong pháp đặc tà mô hình bằng máy trạng thái UMI 2 3.4 Thuan loi vả khỏ khăn của kiểm thử tự động dựa trên mô hình 7
Chương 3 PHƯƠNG PHÁP SINH DO THI DONG DIEU KHIEN TU BIEU DO
3.6.2 Thuật toán chuyển cảu trúc đữ liệu biểu đồ tuân tự sang đường kiểm tÌn 25
3.6.3, Thuật toán xác định đường kiểm thử cho khối alt 25 3.6.4 Thuật Ioắn xác định dường kiểm thử cho khỏi opt và broak 26
3.6.5 Thuật toán xác định đường kiểm thử cho khối loop 227
v
Trang 93.6.6 Thuật toán xác định đường kiểm thử cho khối par va seq 29
3.6.7.Thuật toán xác định dường kiểm thử cho khôi wcak .30
3.6.8 'Phuật toán xác địh đường kiểm thử cho khối strict - 31 3.6.9 Thuật Ioán xác định dường kiểm thử cho khối ignore - 31
Chương 4 PHƯƠNG PHÁP SINH BỘ KIỀM THỬ TỪ ĐỘ THỊ DÔNG DIÊU
41 — Xây đụng hệ rảng buộc Keeaeoeoecoo 3
42 Tim nghiệm thỏarmmãn hệ ràng buộe 235
4.2.2 Giải hệ sử dụng SMT-Solver coi 23S
4.2.3 Nhận xét ưu điểm, nhược điểm của hai hướng sinh ca kiểm thử 43
Trang 10DANH SACH BANG BIEU
Bang 4.1, D8 un tién các toán tử
Bảng 5.1 Môi trường thử nghiệm công cụ sinh ea kiểm thử lừ thiết kế
39 4ã
Trang 11DANH SÁCH HÌNH VE
Hình 2.1, Quy trình của kiểu thứ dựa trên mô hình | L1]
11ình 3.1 Toản tử tương tac alt,
Hinh 3.2, Toản tử tương tác GỤP or
Hình 3.3 Toán tử tương tác loợp vô hạn
Hình 3.4 Toán lử tương Lac loop với cận trên = cận đưới = 10
[fin 3.5 Toán tử tương táo loop với cận trên = 5, cân đưới = 10
Hình 3.6, Toán toàn tử tương táo Dredk
[inh 3.7 Toản tir tong tac par
Hinh 3.8 Một số thứ tự thực hiện của toán tử tương tác par
Hình 3.9 Toán tử tương tác seq
Hình 3.10 Toán tử lương (ắo striGl sec
Hình 3.11 Toán tử tương tác ignore
Hình 3.12 Toám tử lương lắc consider
Linh 3.13 Toán tử tương tác nep
Hình 3.14 Toán tử tương tác asseFrf c
l1ình 3.15 Toán tử tương tác critieal
Hình 3.16 Đỗ thị dòng diều khiển tương ứng với biểu dỗ tuân tự
Hình 3.17 Chuyển biển đề tuần tự thành đường kiểm thứ
Hình 4.1 Ví dụ một hệ răng buộc
Hình 4.2, Quá trình rút gọn câu lệnh
Hình 4.3 Mô ta dau van, diu ra SMT-Solver
[inh 4.4 Vi du hệ rằng buộc trần theo chuẩn SMT-Lih,
Hình 4.5 Qua tinh chuyển một biểu thúc trung tô vẻ chuẩn 8MT-Lib -
Hình 5.1 Kiễn trúc công eụ
Hình 5.2 Hình vẽ biểu dỗ tuân tự lương ứng với ví dụ 1
vill
Trang 12Iình S.3 Kết quả đầu ra công cụ của vỉ đự Ï
Hình 5.4 Hình vẽ biếu đỗ tuân tự tương ứng với ví đụ 2
Hình 5.5 Kết quả đầu ra công cụ của vỉ đự 2
Trang 134 T-Solver Theory-specific Solvers _| Ly thuyét gidi quyét dav biét
5 Si Symbolic Execution Kỹ thuật thực thi tượng trung
Trang 14
Chươngl GIỚI THIỆU
Kiểm thử là giải đoạn quan trong và không thể thiểu trong quá trình phát triển phan mềm Quả trình kiểm thử trái qua hai giai doạn: sinh ca kiểm thử và thực thí
ca kiểm thử Trong quá trình kiểm thứ, việc sinh cáo ca kiểm thử đóng vai trỏ quyết định đến chất Tượng kiếm thử Tuy nhiên, đây là bước khó khăn và thách thức nhất, đặc biệt đối với các hệ thông lớn không những phức tạp để kiểm thứ má côn đôi hỏi
znột số lượng lén các ca kiểm thử được tạo ra Quá trình nay tồn thời gian, công sức
và chị phí có thể chiếm 409 — 60% tổng chỉ phí trơng toàn bộ quá trình phát triển phần mềm [9] Vi vậy, quá trình sinh các ca kiểm thử tự động trở nên thực sự cân thiết, nhất là đổi với những phẩn mềm lớn vả phức tạp Kiếm thử tự động đang, được xem là giải pháp chính nhằm đâm bão chất lượng xnà vẫn giảm chỉ phí và thời gian trong quả trình phát triển các sản pham phản mềm
Trong đó, kiếm thi dua trên mô hình là một trong những kỹ thuật kiếm thử
mô hình là một vẫn để mở và chưa có lời giải thỏa đáng
Hiện nay, có nhiều hướng nghiên cứu liên quan đến việc sinh mô hình cho phần mềm đã được để xuất bởi nhiều tác giả Một hướng là tập trung vảo nghiên
cứu các phương pháp sinh mô hình cho phan mém Với cách tiếp cận này, ta có thể
để có thể xây đựng được một lập các chuỗi lành động của phân mềm Sau đó, lập
1
Trang 15các chuối hành động của phần rểm thu được có thể được coi là một biểu thức chỉnh quy đáo tá hành vị của phần mễm, các tác giá sau đó đã sử dụng thuật toán Thompson đề sinh mê hình cho phần mềm được cho bởi biểu thức chính quy đó Phương pháp nay bị giới hạn bởi độ dài tôi da của chuỗi các hành động có thể thử nghiệm trên phần mềm Nghiên cửu trong [20] trình bày một thuật toán gọi là GK- tai mã tự động sinh mô hình cho phần mềm đưới dạng các BESM (Extended Finite State Machine) từ các chuối tương tác của nó EESM mö hình hóa sự tương tác giữa
cáo giá trị đữ liệu và nhân mềm bằng cách ghi chú lên các cạnh cửa ôtêmát hữu han
đó với các điều kiện trên các giá trị đữ liệu Trong nghiên cứu này, các lác giả đã để cập một khia cạnh rất quan trọng của phần mềm ID là mồ hình hóa các lời gọi hàm
trong quan hệ với các tham số của nó Phương pháp này dựa vào một phần mềm gọi
la phan mém giám sát để có thể sinh ra được các chuối tương tác mà được dùng nhự
là đầu vào của nó Nghiên cứu [21] giới thiệu một tập tích hợp các chương trình
phân tích, chuyến đếi thành phản gọi là Bandera rnà tự động trích xuất mô hình cho chương trình phân mềm dựa trên mã nguồn Trong nghiên cứu nay, Bandera Ty mii nguồn Java như là đầu vảo đẻ sinh mồ hinh dưới dạng đầu vào chợ một số công cụ khác Ngoài ra, Bandera cũng tham chiếu trở lại mã nguồn ban đầu với mô hình đã
được sinh ra, Phương pháp nảy rõ ràng là phụ thuộc vào mã nguồn của phin mém
cần phần tích I2o đỏ, đối với các phần mềm hưởng thánh phần không có mã nguồn của một số thành phần nua từ bên phát triển thứ ba thì phương pháp này rất khó
khả thi Nghiên cửu [22] giới thiệu một công cụ goi la Bandera Environment Generator (BEG) Công cụ này tự động hóa việc sinh mỗ hình môi trường đẻ cung
cập một dang hạn chế của việc kiểm chứng mô hình các mô đun của chương trình Java, Công cụ này simh mỏ hình cho đơn vị chương, trình Java dựa trên một số giả
định về môi trường được cung cấp bởi người đừng Mô hình đã được sinh ra có thể được dùng trong việc phân Lích ảnh hưởng của môi trường lên đơn vị trong phương
pháp kiểm chứng mô hình Dây là một vấn đề rất thách thức trong thực tế phát triển
'phần mềm vì hệ thống phân mắm luôn phải chạy trên một sự kết hợp của rất nhiều
hệ thống khác như hệ điều hảnh, cáo hệ thống khác,vv Người dùng, thậm chí cả
Ww
Trang 16người thiết kế phân mềm cũng khó có thể nhận biết được những théng tin day đủ về môi trường trong thời gian làm thiết kế hệ thông
Một hướng tiếp cận khác là sinh mô hình trong khi thực hiện kiếm chứng mô hình hay trong khi thực hiện kiểm thử dựa trên mô hình [23], [24], va [25] Trong 122], các tác giả đã sử dựng thuật toán học L* để học đặc tả của một thành phân
phần mềm thông qua một biểu thức chính quy dé sinh: ra mô hình cho thành phần
đó Hiểu thức chính quy đỏ là kết quả của khâu thiết kế, có thể được sinh ra từ từ
tiểu để tuần tự theo phương pháp được đề cập trong [23] Tuy phương pháp này
sinh được mô hình cho phân mềm, nhưng sử đụng nhiền thời gián và bộ nhớ Đặc biệt là phương pháp này bị giới hạn bởi độ dải tối đa của một chuỗi hành vị cúa
phần mềm Do đó, phương pháp này rất khó áp dụng được trong thục tế Nghiên
cứu |24| đặt vẫn để cho việc kiểm thữ hộp đen Trưng nghiên cứu này, nhiều chiến lược được trinh bảy đề kiếm chúng phần mềm từ khi chúng ta chua có mô hình Mô hình được sinh ra trong các lần lặp kiếm chứng phân mềm Nghiên cứu [25] trình
bay dt phương pháp sinh mô hình thành phần phản mềm trong quá trình thành phân đỏ tiến hóa Những mô hình này được sinh ra sử dụng các mô hình chưa đúng, hiện có đựa vào các kỹ thuật kiếm thữ hộp đen và học máy Tuy nhiên, phương
pháp này sinh mô hình cho toàn bộ phần mêm Với những phần mềm lớn thi
phương pháp nảy có thể dẫn đến sự bùng nổ trạng thái của mô hình Với cách tiếp cận nảy, những mô hình được sinh ra như là một phần cửa quá trình khác như kiểm: thử hộp den, kiểm chững mô hình Luận vẫn này tập trung vao việc chỉ sinh mô thành cho thành phân phần mềm Bằng cách này, chúng ta tập trung vào việc có được
mô hình bằng một cách thực tế hơn như từ biếu đổ tuân tự [23] Khững mô hình này sau đó cỏ thể được đảng như là đầu vào cho các phương pháp khác như kiểm chứng,
xnô hình, kiểm thứ đựa trên mồ hình
Trang 17Phương pháp nghiên cứu gồm hai quá trình chính là chuyển dỏi biểu đồ tuân
tự về đề thị đóng điều khiển và từ đồ thị dòng điều khiển sinh bộ kiểm thử Biểu đỗ tuần tự được cung cấp dưới đựng tếp xmi sẽ được phân tích để cho ra mội đường kiểm thứ tương ứng đặc ta hoat dong Day chỉnh là giả trị đầu vào Qua qua trinh phân tích, đữ liệu từ tệp xmi được chuyển đổi thành câu trúc đữ liệu biểu đề tuần tự tương ứng Ứng với mỗi khối trong biểu đỗ tuần tự, tiến hành bóc, tách từng khối và dựa vào quan hệ giữa các khối để lồng các khối nhằm sinh ra đồ thị dòng điều
khiến Kế tiếp, một đường kiếm thủ tương ứng được trà về đặc tả chính xác hoạt
động cia dé thi dong điều khiển Kỹ thuật được sử đụng để xây dựng hệ ràng buộc tương ứng cho tập đường kiểm thứ ở đây là thực thí tượng trung (symbolic
execution - SE) Cuối cũng, bằng cách kết hp kỹ thuật sinh ngẫu nhiên và tận dung
thể mạnh các công cụ giải các hệ rằng buộc (SMT-Solver), hệ
êm thử nảy sẽ được sử dụng để kiểm tra xem việc lập
Phân còn lại của luận vấn dược cấu trúc như sau: Chương 2 trình bay co sé ly thuyết của kiểm thử mô hình, bao gồm các khải niệm cơ bản, quy trình thực hiện,
phương pláp đặc lã mô hình bằng máy trạng thái ƯML, thuận lợi và khó khẩu của
kiểm thử dứa trên mô hình và áp dụng cho kiếm thir phan mém Phuong pháp sinh
đề thị đóng điều khiến từ biểu để tuần tự bao gồm tổng quan về đỗ thị dòng điều khiển, cách đặc tả biểu đổ tuần tự, phương pháp smh đỗ thị động điều khiển dược trình bảy trong, chương 3 Chương 4 trinh bảy về phương pháp sinh ca kiếm thử từ để thị déng điều khiển bao gồm bước xảy đựng hệ ràng buộc và bước tìm nghiệm thôa mãn hệ ràng buộc dựa trên SMT - Selver Chương 5 trinh bày kết quả
đã đạt được Cuối củng, chương 6 tỏm tắt lại nội dung nghiên cửu, đưa ra những,
hạn chế và hướng nghiên cứu phát triển trang tương lai.
Trang 18Chueng2 = TONG QUAN KIEM THU DUA TREN MO HINA
Khi chay m6t duc an phần mềm, yêu cầu từ phía khách hàng là yếu tổ để hình thành và phát triển đự án 'Thực tế, các yêu cầu nảy thường không dn định má sẽ thay đối tủy theo như cầu của khách hang Moi khi có sự thay đối xây ra, thường sẽ kéo theo những thứ khác ảnh hưởng, Vì thể, hoạt động kiểm thử phải thực hiên dé đảm bảo chất lượng của sắn phẩm Có những trường hợp, một sự thay đổi nhỏ cũng
có thể gây ảnh hưởng lớn, kéo theo việc kiểm thử viên có thể không đáp ứng được tiên dộ của dự án đễ ra
Như vậy, việc phát triển một phương pháp kiểm thử để hạn chế tác động của
sự thay đối, đẳng thời tiết kiệm được chỉ phí về thời gian và tiền bạc lả thuc sự cần thiết, Phương pháp kiểm thứ dựa trên mô hình nhằm kiểm wa tinh ding din của lập trình so với thiết kế, là giải pháp giúp giải quyết được vẫn đề trên Trong chương xảy, tôi sẽ trình bày lý thuyết về phương pháp kiêm thử dựa trên mnô hình và img dụng cho kiểm thứ phản mềm
2.1 Khải niệm kiểm thứ dựa trên mô hình
Trong quá trình kiếm thử tự động phân mềm, kiểm thử viên trước tiền sẽ tạo ra
các kích bản kiểm thử băng cách ghi lại lính năng của phần mềm đó Sau đó, kiểm thử viên tiễn hanh kiểm thử theo kịch bán dã dược tạo ra với những tham số khác hau Quá trình kiểm thử được chạy tự động Tuy nhiên, việc tạo kịch bản kiểm thử lại được tiến hành thủ công Hầu hết các công cụ kiểm thử ngày nay đều kiểm thử
tự động dựa trên các kịch bán có sẵn, do đó việc tạo kịch bán tốn nhiều công sức của kiểm thử viên và mất rất nhiều thời gian Dễ tránh việc sai sót trang quá trình
kiểm thủ, việc tạo kích bản phải được xây dựng chu dảo Thêm vào đó, môi khi yêu câu hừ phía người dùng thay đổi thì kịch bán cững phải thay đổi theo Vì vậy, việc
tao tu dang các kịch bản kiểm thử là thật sự cần thiết Hướng tiếp cận ở đây là kiếm
thử dựa trên mô hình nhằm khắc phục được các vẫn để về chỉ phí, thời gian Kiểm
thử đựa trên mô hình là một phương pháp kiểm thử nơi mà các ca kiểm thử được sinh ra từ mô hình đặc tả hành vi của hệ thống đang được kiểm thử Mô hình này
Trang 19được biểu diễn bằng máy hữu hạn trang thái, ðtômat, đặc tả dại số, biểu dễ trạng thái bằng UML, v.v, [1]
2.2 Quy trình chung của kiểm thử dựa trêu mô hình
Quá trình kiếm thử tự động đựa trên mô hình được bắt đầu bằng việc xác định yêu cầu của hệ thống từ đỏ xây dựng mô hình dựa vảo các yêu cầu và chức năng, của hệ thống Việc xây đựng mô hình côn phải dựa trên các yếu tổ đữ liệu đầu vào
và đầu ra Mô hình này được sử dựng để sinh đầu vào cho các ca kiếm thử Tiếp đến, chủng ta sẽ sinh giả trị đầu ra mong muốn ứng với mỗi bộ đầu vào Khi kết
thúc bước nay, chúng ta đã có cáo ca kiểm thủ [1] Các ca kiếm thử đó được tiền
tiành chạy và kết quả thú được sẽ được số sánh với kết quả nưng đợi Từ đỏ quyết định hành động tiếp theo như sửa dải mỗ hình hoặc dừng kiểm thử, v.v
Hình 2.1 Quy trình của kiểm thử dựa trên mê hình [11]
Hình 2.1 mỏ tả vẻ quy trình chưng của kiểm thử tự động dựa trên mô hinh Kiém thử tự động dựa trên mô hình gôm các giai đoạn sau:
Trang 20- Sinh mô hình dựa trên các yêu cầu và chức năng của hệ thông
-_ Sinh các ca kiểm thứ (bộ đầu vào và giá trị đầu ra mong đợi cho mỗi ca kiểm thử)
-_ Chạy các kịch bản kiểm thử dễ phát hiện các lỗi/;khiểm khuyết của sản phẩm
- 8o sánh kết quả đầu ra thực tế với kết quả đầu ra đự kiến
-_ Quyết định hành động tiếp theo (sửa đổi mỏ hình, tạo thêm ca kiểm thử, đừng kiểm thử, đảnh giá chất lượng của phần mềm) [1]
2.3 Phương pháp dặc tả mõ hình bằng máy trang thai UML
Theo [1], phương pháp đặc tả mô hình bằng máy trạng thái thường được áp
dụng trong công nghiệp Nỏ có thể được sử dụng để đặc tả hành vì động (chuyển trạng thái) của các lớp đối tượng, các ca sử dụng (usc cascs), các hệ thống con và thậm chí là toàn bệ hệ thống Tuy nhiên, máy trạng thái LML thường được sử đựng, cho các lớp đổi tượng Theo |10{, biểu đổ công tác đặc tả bằng UMI, là một mô hình quan trọng trong việc kiểm thứ hệ thông bởi mỏ hình nảy đặc tả chính xác hành vi (tương tác giữa các đổi tượng) của hệ thẳng cân kiểm thử Trong UML, một trạng thái ứng với một điều kiện quan (rang của một đổi lượng, Trạng thái này được quyết định bởi các giả trị hiện thời của đối tượng, cáo mỗi quan hệ với các đối tượng kháo và các hành động (phương thức) mả đồi tượng này thực hiện Một phép chuyển trạng thái là mỗi quan hệ giởa hai trạng thái Một phép chuyển trạng thải trong UML bao gém một sự kiện được kích hoạt, điểu kiện và hành động tương,
từng Các sự kiện được kích hoạt của các phép chuyển trạng thai có thể là một trong
cac sự kiện sau:
- Một lời gọi ứng với một phương thức
- Một1ín hiệu nhận được từ các trang thải khác trong máy trạng thải
-_ Một sự thay đối giá trị của một thuộc tỉnh nào đó của một dối tượng
- Tlét thai gian (timeout)
2.4 Thuận lợi và khó khăn của kiểm thứ tự động dựa trên mô bình
Trong quá trình phát triển phản mềm, các kiém thử viên thường thực hiện
công việc của mình bằng các phương pháp truyén tháng (thủ công) nên thời gian và
Trang 21chi phí đành cho các hoạt dông này thường rất cao Kiểm thử dựa trên mô hình hủa
"hẹn sẽ là một giải pháp hiệu quả nhằm góp phần giải quyết vẫn đề này [1]
Cu thé, kiém thé dựa trên mô hình có các ưu điểm gau:
- _ Giảm chỉ phí và thời gian: Do quá trình kiểm thir hau hết được thực hiện tự động nên tính hiệu quả của phương pháp này rất cao trong khi thời gian được giảm xôi cách tối thiểu
- Độ bao phủ tốt hon: Nếu mỏ hình của hệ thông được xây dựng tốt thì quả trình
kiếm thử dựa trên mô hình sinh ra nhiêu ca kiểm thủ và phát hiện nhiều lỗi Kiểm
thử mỏ hình cũng cho phép giảm các lỗi chủ quan do người kiểm thô sinh ra trong quả trình kiểm thứ sản phẩm
-_ Đây đủ tải liệu: Mô bình bệ thẳng, các đường đi, các ca kiếm thử là các tải liệu quan trọng trong quá trình phát triển phần miễn nói chứng và quả trình kiểm thử phan mềm nói riêng Các tài liệu này cũng giúp cho các kiêm thử viên hiểu hơn về các ca kiếm th và các kịch bản kiếm thứ
- — Khả năng sử đụng lại cao: Mỗi khi phần mềm bị tiên hóa, ching ta dé dang sinh thêm các ca kiểm thứ và kiểm thứ lại một cach nhanh chóng vá hiệu quả
-_ Hiểu hơn về hệ thông: Kiểm thử dựa trên mô hình giúp người phải triển hiểu
hơn vẻ hệ thống cần kiểm thứ thông quan việc xây dụng và phân tích mỏ hình hệ
- Kiểm thứ dựa trên mô hình có khá năng đảnh giá chất lượng phân mềm
Tuy nhiên, kiểm thử dua trên mô hình không dễ được áp dụng trong thục tế vì
mot s6 khé khan sau
- Kho xy dung mô hình chính xác: Kiểm thử dựa trên mô hình cần có mô hình
đặc tả chính xác hành vi của hệ thắng Trong thực tế, việc xây đựng mô hình là rất khỏ, ton kém và bem ấn nhiều lỗi
Trang 22-_ Yêu cầu cao về kiểm thử viên: Do phải xây dựng mô hình của hê thông vi vay người kiểm thứ phần mềm phải yêu cầu là những người có khả năng phân tích và
- Khỏ khăn trọng việc sử dụng các ca kiểm thứ được tạo ra từ mô hình: Lập
trình viên tiến hành cải đặt hệ thông một cách độc lập nên khi đã cài đặpxong,
thường khó thực thì các cá kiểm thử được tạo ra tù mô bình vi rainhiéu by do khác nhau Thông thường, họ phải tiên hành nghiên cứu mô hình và đặc tả lại các ca
kiếm thử mới sử đựng được chúng Hơn nữa, mö hình hệ thông thường trim trong
và tổng quất hơn cải đặt của nó Vấn để này là một trong những lý do chính của
hạn chế này.
Trang 23Chương3 — PHƯƠNG PHÁP SINH ĐỎ THỊ DÒNG ĐIÊU KHIỂN TỪ
BIẾU ĐÔ TUẦN TỰ Chương này đẻ xuất phương pháp kiểm thử tính dúng dẫn thiết kế cho các
phần mềm dựa rên mô hình Để có được mô hình lùn đầu vào cho phương pháp kiểm thử, phương phápchuyển đổi biểu đồ tuân Lự về đồ thị dòng điều khiển, đồ thị
đồng điều khiển được simh ra trở thánh đầu vào để sinh ca kiểm thử Nếu bản thiết kế
là đứng đắn phương pháp đưa ra một mô hình giả định đặc lá môi trường của hệ thông Ngược lại, phương pháp trả về một phãn ví đụ chứng mình thiết kế không, tha mãn thuộc tỉnh của hệ thông Điều đó giúp quá trình kiếm thử đơn giản và tiết kiệm chỉ phí hơn
3.1 Biểu đỗ tuần tự
Biểu dé tuân tự là biểu dé thể hiện các trình tự sự kiên dẫn đến các kết qua Trong muốn Biểu đỗ it quan tâm vào các thông điệp, mục đích chính là trình tự các thông điệp xây ra, biểu đồ luận tự sẽ truyền đạt nội đụng những thông điệp được gửi
đổi tượng trong một hệ thống cũng như thự xảy ra Thành phần chính của
mm tự gồm: Đối lượng, thông điệp và phân đoạn
Trang 24đoạn con (gọi là các tắn hạng tương tác —interaction operands) Tương ứng với câu
trúc diễu khiển trong các ngơn ngữ lập trình như lắp, rẽ nhánh, song song, chúng ta
sĩ các phân doan khác nhau với các nhân tương (ng là loop, aÏt, par, v.v
“Tốn tử tương tác lựa chon day di (Alternative) chi ra rang phân đoạn kết hợp
(Combined Fragment) biểu điển một sự lựa chọn hành vi Tốn hạng trong phân
đoạn cĩ biểu thức gác (guard expression), riếu biểu thức gác đúng thì tốn hang
được thực thi Nên tốn hạng khơng cĩ biểu thức gác thì biển thức được ngằm hiểu
là true Nếu biểu thức gác là else, tốn hạng sẽ được thực thi khi các điểu kiện gác của cáo tốn hạng khác sai 11ình 3.1 là ví đụ minh họa nêu số dư (baÌance) trong tải khoản lớn hơn 0 thì cho phép rút tiên (acceptQ), nêu khơng thị từ chối (reject))
[balance >0] accept
Hình 3.1 Tốn bi tương tac alt
“Tốn tử tương tác lựa chọn khơng đây đủ (Opdion) chứ ra rắng phân đoạm kết
hợp biểu diễn một sự lựa chọn hành vị Trong phân đuạn chỉ cĩ mội tốn hạng, tốn hang này cĩ thể được thực thì hoặc khơng được thực thi từy vào điều kiện gáo Tốn
th opt gin giống với tốn tử alt, chỉ cĩ điểu trong opt chỉ cĩ mội tốn hạng duy nhất 1Tình 3.2 là vi dụ minh hoa thực hiện đăng bình luận (post comments()) néu khâng cĩ lỗi (no errors)
'Tốn tử tương tác lặp (Loop) chí ra rằng phân đoạn kết hợp biểu điển một vịng, lặp Tốn hạng lắp sé được lặp đi lặp lại một số lân Điều kiện g:
6 thé zor mal cân đưới (minint3, một cận trên (main) và một biểu thức Boolcan Sau minint lan lặp, biểu thúc được kiểm tra, chung náo biểu thức cịn đứng và số lần lặp cịn nhỏ
hon hoặc băng maxint thì vịng lặp vẫn tiếp tục
ll
Trang 26Hình 3.3 miêu tả toàn tử loop với vòng lặp vô hạn Hình 3.4 miễu tả toán tử loop với vòng lặp với cận trên bằng cận dưới và bằng 10, không có điều kiện cần kiểm tra Hinh 3.5 miéu td sau khi lập hết 5 lần, nêu điều kiện size < 0 dung thị dừng lặp, việc kiêm tra này cỏn thực hiện chủng nảo số lần Ap cén <= 10
“Toán tử tương tic break chi ra ring khi điều kiện gác đúng thì toán hạng trong phân đoạn kết hợp break sẽ duoc thuc thi thay cho phan còn lại của phân đoạn tuong tac (Interaction Fragment) bao gói bên ngoài Hình 3.6 là ví dụ minh họa:
Tếu y > 0 thi thục hiện save() rồi thoát luôn khỏi vòng lặp
Hinh 3.6 Toan toán tử tương tac break
Toán tử tương tác song song (Parallel) chỉ ra rằng các toán hạng trong phân đoạn
két hop có thế được thực thi song song với nhau Các sự kiện trong các toán hạng
khác nhan có thé dan xen vào nhau theo bal cử cách nào, 1niển là thứ lự của cá
sự kiện trong mỗi toán hạng được bảo toàn Hình 3.7 và 3.8 là ví du mình họa thứ tự thực biện các toán tử
“Toán tử tương (ác tưần tự yếu (weak sequencing) chỉ ra rằng phân đoạn kết hợp tiểu điển một trình tự yếu giữa các hành vị của các loàn hạng, Trình tu yên được
định nghĩa bởi tập các vết với các đặc tính:
- Thứ tự của các sự kiện (EventOccurances) trong mdi một toán hạng được duy tri
- Cáo sự kiện trên các lifeline khác nhau ở các toán hạng khác nhau được có thể xảy
7a theo thử tự bắt kỳ
- Các sự kiện trên cùng lifeline ở các toán hạng khác nhau được sắp thứ tự sao cho xnột sự kiện của toán hạng thử nhất xảy ra trước sự kiện của toán hạng thứ hai
13
Trang 27Hình 3.9 là vi dụ mình họa: Tìm kiếm bằng Google song song với Bing va Yahoo, tuy nhiên phải tìm bằng Bing trước khi tìm bằng Yahoo
Trang 28
Hình 3.9 Toản tử tương tac seq
“Toán tử tương tác tuần tự ngặt (Striet sequencing) chỉ ra rắng phân đoạn kết hợp
Điêu điễu xiệt trinh tự ngất giữa cáo Hành ví cũ các toàn hạng, Tĩnh 4/10 1ã vi dụ
minh hoa: Tim bằng Google, rồi đến tim bằng Bing, sau d6 1a Yahoo
Hinh 3.10 Toản tử tương tac strict
Toan tử tương tác từ chối (ignore) chỉ ra rằng cỏ một sỏ kiểu thông điệp không, được hiển thị trong phân đoạn kết hợp nảy Các kiểu thông điệp này có thể bị coi là
15
Trang 29vô nghĩa và bị mặc nhiền bỏ qua Hình 3.11 là vỉ dụ mình họa: Bỏ qua thông điệp
get() va set() néu co
khác lả bị bỏ qua Ví dụ minh họa trong hình 3.12: Lưu ý đến add() vả remove(), bỏ
qua các thông điệp khác
Hình 3.12 Toán tử tương tác consiđer
Toán tử tương tác phủ định (Negative) chỉ ra rằng phân đoạn kết hợp biểu điện
các vết (traces) được định nghĩa là không hợp lệ Phân đoạn neg được sử dụng trong
ví dụ trên để xác định rằng không được phép mở cửa của lỏ vi sóng trong khi đang nấu được minh họa trong hình 3.13
Trang 30
Hình 3.13 Toán tử tương tac neg
“Toán tử tương tác quyết định (Assertion) chi ra rang phan doan ket hop bieu dién
các vét hợp lệ Toản tử assert thường được sử dụng củng với ignore hoặc consider
Hình 3.14 minh họa: Khối assert chỉ chấp nhân thông điệp q là hợp lê, do đó nếu
thông điệp w xây ra thay cho q thì w không hợp lê
Trang 31“Toán tứ tương tác vũng then chét (Critical region) chi ra rang phân đoạn kết hợp biểu điễn một ving then chết Một vùng then chết nghĩa là các vết trong ving nay không thể bị đan xen bởi các sự kiện (IiventOccurenos) khác (trên các lifeline bị
phủ hởi vừng này) Hình 3.15 minh họa: Cáo cuộc gọi cho 911 phải nỗi
ép, không,
được chẳng lấn nhan Điều hành viên (opcrator) phải chuyển tiếp cuộc gợi cho số
911 trước khi làm bắt cứ thứ gì khác Các cuộc gọi thường thí dan xen nhau thoải
và cáo cạnh là các đóng diều khiến giữa các câu lệnh/nhỏm câu lệnh Đính dầu tiên cta CFG là trạng thái đầu tiên của hàm, đỉnh cuối cùng của CHG là trạng thái kết
Trang 32thúc của hàm Đỉnh ¿ nổi đến đỉnh / thì câu lệnh tương ứng đỉnh có thể dược thục thi sau khi thực biện câu lệnh tương ủng ở đính i
Các thành phần cơ bản của đồ thị đông điều khiển gồm đỉnh xuất phát, đình xứ
li, đình quyết dịnh, dinh kết nói và đính kết thúc [4]
- Dinh xudt phat: là điềm bắt đầu của đơn vị chương trình
- Điểm nối: ứng với các câu lệnh ngay sau các lệnh rẽ nhánh
- Diễm kết thúc: ứng với điểm kết thúc của đơn vị chương trình,
Đường kiểm thử là một đường, đi từ đỉnh đâu tiên đến đính cuỗi củng của đề
thi dong điều khiển (CFG) duge biển điễn đười mội tập các đỉnh từ đính v; đến đỉnh
Trang 33vụ, trong đó hai đỉnh liên kẻ cỏ cạnh nói với nhau Nếu cạnh (v, „v,) (##/) là nhánh
false, câu lệnh lưu ở đỉnh v,được viết phủ định Tập đường đi độc lập gồm & đường
di PATH,, PATH,, P.ATH, thỏa mãn: giữa mọi cặp đường đi độc lập P.4TH, và
PATH, (#j) không chung it nhất một cạnh trở lên
Tìm kiểm tập đường kiểm thử lả bước trung gian trong quá trình sinh tập ca
kiểm thử Hai vẫn đề liên quan đền tập đường kiểm thử rất quan trọng gồm:
x Van dé thee thi được hay không thực thi được Một đường kiêm thử gọi là
thực thi được nếu tìm kiểm được một ca kiểm thử sao cho khi thực thi trong môi
trường thật thì đường kiểm thử nêu trên được đi qua Ngược lại, đường kiểm thử gọi
là không thực thi được
- Tinh phite tap thiét ké Mot bieu d6 tuan tr goi la phite tap néu chia nhieu
vỏng lặp như nhiều vòng lặp lỏng nhau hoặc nhiều vong lặp nói tiếp nhau, kích
thước lớn hoặc thuật toán phức tạp Biểu đồ tuần tự cảng phức tạp cảng khiến quá
trình tìm kiểm đường kiểm thử trở nên khó khăn hơn và mắt thời gian hơn
3.4 Chuyển đổi biểu đồ tuần tự sang đường kiểm thử
Việc biển đổi biểu đổ tuần tự sang đường kiểm thử là một công việc quan
trọng Đây là quá trình chuyên đôi thiết kế sang biểu thức đặc tả các hành v¡ Đường,
kiểm thử được sinh ra sẽ làm đầu vảo sinh mô hình đặc tả hảnh vi cho thành phân
phan mẻm, phục vụ cho quá trình kiêm thử tính đúng đắn của thiết kẻ
Biểu đô tuần tự Đồ thị dòng điều khiển(CCFG)
(đặc tả bởi têp xmi) (hiển thị đưới đạng đường kiểm thử)
Hình 3.17 Chuyển biểu đồ tuần tự thành đường kiểm thử
Phương pháp đề xuất yêu câu thiết kế được biểu diễn bởi biểu đồ tuân tự của
các thành phân dưới dạng xmi Một công cụ đã đượctôi xây dựng để phân tích file
xmi và sinh ra đỏ thị dòng điều khiển hiển thị dưới dạng đường kiểm thử Tôi sẽ
cung cấp tập các quy tắc (định dạng) đề xây dựng file xmi từ biểu đỏ tuần tự tương
20
Trang 34tứng Từ đó việc doc và xử ly file xmi chuyén sang đường kiểm thử biêu điển hoạt động cho thành phân thiết kế sẽ thuận lợi hơn vì file xmi đã được quy chuẩn
3.5 Định dạng chuẩu khí viết tệp xmi từ biểu đỗ tuần tự
Trên thực tê, quá trình lưu biêu đổ tuân tự sẽ sinh ra tệp xmi, tuy nhiên tếp xmi này
có ID dài, khó nhớ nên để cho quá trình nghiên cửu, tác giá dịnh nghĩa lại tệp xmi chuẩn theo các quy tắc như sau:
- Cấp thể bao ngoài củng lả <sequence’> va </sequence>
- Lifelime bao gdm id vả trường type = “Lifeline”
- Tiếp theo là Event hoac fragment
1 Event: Gd tudmg id, Iype—°evenl', coverd, trong đó coverd là ¡d của lifeline
xà cvcnt bao phủ (điểm dầu vả diễm cuối cia message)
| fragment: Gém trường i4, type = ‘combined frament’, operator (operator có các gid tri Hall, loop, par )
- Operand: Bất buộc phải nằm trong fragment va ngay sau khai bao<fragment
“, operatar=" “°> gồm iđ, type=“operator” (nêu là fragment consider
Tioặc ignore lìd operand nằm ngay sau khai bảo <constraint value © “>
- — Constramt: Gồm trường value, trường nảy chứa tên cdc message cach nhau bởi dâu cach, vi du: <constraint value=“get set”*> Thẻ này đặt giữa 2 thẻ fragment
va operand, duge ding dé khai bao cdc message bi loai bé trong fragment ignore
“hoặc cdc message can giữ lại trong fragment consider
- Event nim trong sequence hodc trang operand, không nằm trực tiếp trong
fragment
- Message: Chi nim trong sequence, khéng nim trong operand hode fragment, gém trudng id, type=“message”, name="tén message” sendEivent va la id ctia event
đầu, receiveBvenl là id của event cuối
- _ Thẻ guard gdm trường value = “điều kiện”
-— Thế option gồm trường value — “True” hoặc “False”
Dưới đây là một ví đụ mình họa tệp xami tương ứng với khối consider
2L
Trang 35
<sequence>
<hifeline id="001" type="T ifeline"*>
<lifeline id "002" type "Lifeline"/>
< fragment id="003" tipe="CombinedFragment" operator="cansider">
<constraint value “add remove"!
operand id="015" lype="Operand">
<event id— "004" type—"event" covered "001 "/>
event id="005" type="event" cavered="002'"/>
<event id "0U6" type “event” covered "OI
<event id="007" type="event" covered="002"/>
3.6 Thuật toán sinh tự động các đường kiểm thứ
Dưới đây là chín thuật toán sinh tự động các đường kiếm thử do tác giả tr để xuất
Trang 363.6.1 Thuật Luân phân tích biểu đã tuần tự
“Thuật toán 1: Thuật toán phân tích biểu đỗ tuần Lự
Đầu vào: Biểu đồ tuân tự biểu điển bằng file xmi
D&u ra: Danh sách các phân đoạn và mỗi quan hệ giữa chứng
1: ereate sfack with an operand on top
creale arvay lifelinel.ist ard array messagel.ist
ho
for all efement in xmi file do
if meet open tag then switch element
case Lifeline, create new lifeline and add to lifelineL.isr, 8: break;