Kỷ yếu Hội nghị Quốc gia lần thứ VIII Nghiên cứu ứng dụng Công Nghệ thông tin (FAIR);Hà Nội, ngày 9-10/7/2015 DOI: 10.15625/vap.2015.000198 PHƯƠNG PHÁP SINH TỰ ĐỘNG CA KIỂM THỬ TỪ MÔ HÌNH CA SỬ DỤNG Chu Thị Minh Huệ1, 2, Đặng Đức Hạnh2, Nguyễn Ngọc Bình3 Khoa Công nghệ Thông tin, Trường Đại học Sư phạm Kỹ thuật Hưng Yên Khoa Công nghệ Thông tin, Trường Đại học Công nghệ - Đại học Quốc gia Hà Nội Viện Quốc tế Pháp ngữ - Đại học Quốc gia Hà Nội Huectm@gmail.com, hanhdd@vnu.edu.vn, nnbinh@vnu.edu.vn TÓM TẮT— Mô hình ca sử dụng (Use Case) nắm bắt chức mà hệ thống phần mềm đáp ứng Hiện nay, mô hình ca sử dụng thông thường biểu diễn biểu đồ biểu đồ Use Case UML tài liệu hóa đặc tả ca sử dụng (Use Case Specification) dạng văn Đặc tả ca sử dụng xây dựng pha đặc tả yêu cầu phần mềm sử dụng cho việc tạo ca kiểm thử (Test Case) mức kiểm thử hệ thống (System Testing) Sử dụng mô hình ca sử dụng để thiết kế kiểm thử (Test Design) giai đoạn sớm vòng đời phát triển phần mềm làm giảm chi phí cho phát triển hệ thống Đặc tả ca sử dụng thường tài liệu hóa ngôn ngữ tự nhiên Vì việc sinh tự động ca kiểm thử từ kịch ca sử dụng khoảng cách lớn Trong báo này, đề xuất phương pháp cho đặc tả ca sử dụng mô hình hướng dẫn sinh tự động ca kiểm thử tự động từ mô hình Trong đề xuất ngôn ngữ mô hình để mô hình hóa đặc tả ca sử dụng USL (Use Case Specification Language) sinh tự động ca kiểm thử Ngôn ngữ USL mở rộng từ biểu đồ hoạt động UML thêm vào khái niệm cam kết (Contract) cho phép đặc tả chi tiết hành động điều kiện gác luồng chuyển Với cách tiếp cận này, xây dựng MetaModel mô tả cú pháp trừu tượng ngôn ngữ USL Từ đem lại khả chuyển trực tiếp từ mô hình đặc tả ca sử dụng sang ca kiểm thử Từ khóa — Sinh ca kiểm thử tự động, đặc tả ca sử dụng, cam kết, USL, Use Case Specification, Automatic Test Generation, Contract I GIỚI THIỆU Đặc tả đặc tả ca sử dụng nắm bắt nghiệp vụ ca sử dụng, đặc tả thường mô tả ngôn ngữ tự nhiên theo định dạng chuẩn đề xuất [ ] Trong UML đặc tả ca sử dụng mô tả ngôn ngữ tự nhiên liên kết lỏng lẻo với biểu đồ ca sử dụng Sử dụng ngôn ngữ tự nhiên để mô tả cho phép chuyên gia miền người sử dụng không hiểu biết kỹ thuật dễ dàng hiểu đặc tả nghiệp vụ ca sử dụng, nhiên hạn chế ngôn ngữ tự nhiên khó tự động hóa Trong phát triển phần mềm đặc tả ca sử dụng sử dụng để xác định kịch kiểm thử ca kiểm thử cho kiểm thử mức hệ thống, thường kiểm thử viên tiến hành đọc đặc tả xác định ca kiểm thử thủ công Một giải pháp tốt cho công nghiệp phần mềm tự động chuyển trực tiếp từ đặc tả ca sử dụng sang kịch kiểm thử ca kiểm thử Vì đặc tả ca sử dụng cần hướng tới phương pháp đặc tả hình thức để máy hiểu Trong báo đề xuất ngôn ngữ mô hình hóa USL cho đặc tả ca sử dụng với mục đích sinh kịch kiểm thử ca kiểm thử từ mô hình Trong [ ], chuỗi hành động đặc tả ca sử dụng chuỗi hành động tương tác tác nhân (Actor) hệ thống (system) để thực ca sử dụng Chuỗi hành động tương tác gồm có chuỗi tương tác đắn (Basic Flow) chuỗi tương tác rẽ nhánh ngoại lệ (Alternate Flows) Rất nhiều nghiên cứu dẫn phương pháp hình thức cho đặc tả ca sử dụng với mục đích sinh tự động ca kiểm thử Một số nghiên cứu tập trung vào đặc tả chuỗi hành động tương tác [11] sử dụng ngôn ngữ hữu hạn trạng thái để đặc tả (Abstract State Machine Language - ASML), [6] sử dụng biểu đồ hoạt động để đặc tả cách sử dụng stereotypes để đặc tả riêng hành động tác nhân hành động hệ thống, [14] sử dụng biểu đồ để đặc tả, [15] sử dụng cấu trúc File XML để đặc tả, [5,7] đề xuất cấu Contract để đặc tả tiền điều kiện hậu điều kiện ca sử dụng biểu thức logic ràng buộc hành động Các nghiên cứu chủ yếu tập chung vào mô hình hóa chuỗi hành động tương tác phương pháp khác nhau, chưa đặc tả xác chi tiết cho hành động chuỗi tương tác Nên nghiên cứu có đề xuất phương pháp sinh tự đông ca kiểm thử từ mô hình dừng lại bước sinh kịch kiểm thử sinh ca kiểm thử từ kịch kiểm thử mức tổng quát, chưa rõ tập liệu đầu vào, đầu mong đợi miền giá trị cụ thể cho ca kiểm thử Chúng đề xuất lý thuyết cho ngôn ngữ mô hình hóa USL cho phép đặc tả ca sử dụng mô hình Ngôn ngữ cho phép đặc tả xác chuỗi hành động tương tác ngữ nghĩa đầy đủ cho hành động, điều kiện gác luồng chuyển Điều cho phép hướng dẫn sinh kịch kiểm thử, ca kiểm thử cách đầy đủ từ mô hình Các khái niệm ngôn ngữ USL mở rộng từ biểu đồ hoạt động UML thêm vào Contract cho phép đặc tả chi tiết hành động, từ cho phép hướng dẫn sinh ca kiểm thử đầy đủ Như hành động cung cấp liệu đầu vào gì? Điều kiện để hành động xảy ra? Đầu mong đợi hành động gì? Các ràng buộc biểu diễn biểu thức Logic xây dựng ngôn ngữ ràng buộc đối tượng OCL Các mối quan hệ ca sử dụng biểu diễn.Với hướng tiếp cận xây dựng MetaModel cho ngôn ngữ đặc tả ca sử dụng Chu Thị Minh Huệ, Đặng Đức Hạnh, Nguyễn Ngọc Bình 591 II VÍ DỤ MINH HỌA Phần này, qua ví dụ minh họa trình bày khái niệm mô hình ca sử dụng kỹ thuật sử dụng để tạo cách thủ công ca kiểm thử từ mô hình ca sử dụng, thách thức đặt cho việc tự động hóa hoạt động A Biểu diễn ca sử dụng Trong [1] định nghĩa ca sử dụng trường hợp sử dụng hệ thống phần mềm cung cấp cho tác nhân bên hệ thống thực Ca sử dụng mô tả hành vi hệ thống điều kiện khác nhau, đáp ứng yêu cầu tác nhân, tác nhân người, hệ thống bên thiết bị Các ca sử dụng hệ thống thông thường biểu diễn dạng đồ họa ví dụ minh họa hình mô tả chi tiết cho ca sử dụng dạng văn ví dụ minh họa bảng Hình ví dụ biểu đồ ca sử dụng, tác nhân Sinh viên gồm có hai ca sử dụng "Đăng ký khóa học" ca sử dụng "Đăng nhập", hai ca sử dụng có mối quan hệ với Tác nhân Sinh viên Hình Ví dụ biểu đồ ca sử dụng UML Trong bảng đặc tả ca sử dụng “Đăng nhập” Trong Pre-Condition tiền điều kiện, điều kiện cần đảm bảo trước thực ca sử dụng Pos-Condition hậu điều kiện, điều kiện đảm bảo sau thực ca sử dụng Trigger kiện kích hoạt ca sử dụng Basic Flow luồng chính, ca sử dụng thực tương ứng với trường hợp điều kiện đắn Alternate Flow luồng rẽ nhánh thực ca sử dụng, tương ứng với trường hợp rẽ nhánh ngoại lệ xảy thực ca sử dụng Một ca sử dụng gồm luồng nhiều luồng rẽ nhánh minh họa bảng Bảng Ví dụ đặc tả ca sử đăng nhập ngôn ngữ tự nhiên Pre-Condition Sinh viên truy cập vào Website trung tâm X Pos-Condition Nếu đăng nhập hệ thống thành công, hệ thống hiển thị chức cho phép sinh viên thực Website, không thành công đưa thông báo cho sinh viên biết Trigger Use Case thực Sinh viên click vào nút “Đăng nhập” Website trung tâm X Basic flow Hệ thống hiển thị giao diện đăng nhập Sinh viên nhập User Name PassWord Sinh viên Click vào Button Đăng Nhập" Hệ thống kiểm tra tính hợp lệ UserName PassWord Hệ thống kiểm tra tài khoản sinh viên có hệ thống không Hệ thống hiển thị chức mà sinh viên có quyền thực Website Alternate flow 1.1 UserName PassWord không hợp lệ Hệ thống hiển thị thông báo "UserName khoản từ đến 16 ký tự, PassWord ký tự, yêu cầu nhập lại" PHƯƠNG PHÁP SINH TỰ ĐỘNG CA KIỂM THỬ TỪ MÔ HÌNH CA SỬ DỤNG 592 Nếu tài khoản sinh viên hệ thống, số lần đăng nhập chưa 2.1 Hệ thống đếm số lần đăng nhập 2.2 Hệ thống hiển thị thông báo "Tài khoản không tồn tại, đăng nhập lại" 2.3 Hệ thống kiểm tra số lần đăng nhập nhỏ quay luồng chính, ngược lại chuyển luồng phụ 3.1 Nếu tài khoản sinh viên hệ thống số lần đăng nhập Hệ thống hiển thị thông báo: "Tài khoản không tồn tại, số lần đăng nhập tối đa 3” vô hiệu hóa chức đăng nhập kết thúc B Tạo ca kiểm thử từ đặc tả ca sử dụng Với phương pháp kiểm thử dựa đặc tả ca sử dụng [3], kiểm thử viên tiến hành đọc đặc tả ca sử dụng từ xác định thủ công ca kiểm thử theo bước sau: Xác định kịch kiểm thử: Dựa theo luồng điều khiển mô tả luồng luồng rẽ nhánh đặc tả ca sử dụng, xác định đường khác thực ca sử dụng đường kịch ca sử dụng Tương ứng với kịch ca sử dụng kịch kiểm thử Xác định ca kiểm thử: Mỗi kịch kiểm thử, kiểm thử viên xác định giá trị liệu đầu vào khác thỏa mãn liệu đầu mong đợi Các liệu đầu vào giá trị thỏa mãn khác đầu vào xác định thông qua đọc đặc tả luồng để nhận biết liệu đầu vào giá trị theo phương pháp kết hợp điều kiện phép toán quan hệ and, or Tương ứng với kịch kiểm thử, kiểm thử viên xác định nhiều ca kiểm thử thỏa mãn kịch kiểm thử Xác định giá trị cụ thể cho ca kiểm thử: thực thi kiểm thử kiểm thử viên nhập giá trị cụ thể ứng với trường hợp làm cho liệu đầu vào thỏa mãn, không thỏa mãn theo miền giá trị Bảng ví dụ kịch kiểm thử xác định từ ca sử dụng “Đăng nhập” ca sử dụng “Đăng ký khóa học” đặc tả bảng Bảng ví dụ ca kiểm thử xác định từ kịch kiểm thử bảng Trong bảng 3, từ cột đến cột liệu đầu vào ca kiểm thử, cột kết mong đợi ca kiểm thử Giá trị liệu đầu vào V giá trị đúng, I giá trị sai, N/A không cần xác định Bảng Các kịch kiểm thử ca sử dụng “Đăng nhập” Mã kịch SC1 SC2 SC3 SC4 Tên kịch Nhập UseName & Pass lần hợp lệ đăng ký khóa học thành công Luồng bắt đầu Rẽ nhánh Nhập UserName PassWord không hợp lệ Tài khoản đăng nhập hệ thống, số lần đăng nhập nhỏ Tài khoản đăng nhập hệ thống, số lần đăng nhập Basic Flow A1 Basic Flow A2 Basic Flow A3 Basic Flow Bảng Các ca kiểm thử ca sử dụng “Đăng Nhập” Test Case ID Kịch ID User Name Pass Word Số lần đăng nhập Tài khoản có hệ thống TC001 SC1 V V N/A True TC002 SC2 V I N/A N/A TC003 SC2 I V N/A N/A TC004 SC3 V V =3 Fall Kết mong đợi Hiển thị chức sinh viên thực Thông báo: " Tài khoản không hợp lệ UserName khoảng từ đến 16 ký tự, passWord ký tự, yêu cầu nhập lại" Thông báo: " Tài khoản không hợp lệ UserName khoảng từ đến 16 ký tự, passWord ký tự, yêu cầu nhập lại" Thông báo: "Tài khoản không tồn tại, đăng nhập lại" Thông báo: "Tài khoản không tồn tại, Số lần đăng nhập tối đa 3", vô hiệu hóa chức đăng nhập Chu Thị Minh Huệ, Đặng Đức Hạnh, Nguyễn Ngọc Bình 593 C Khả tự động hóa tạo ca kiểm thử Hoạt động thiết kế ca kiểm thử từ đặc tả ca sử dụng thực thủ công Khi yêu cầu phần mềm thay đổi, kiểm thử viên phải thực thiết kế lại ca kiểm thử Để giảm chi phí cho hoạt động này, giải pháp đưa cần tự động hóa thiết kế ca kiểm thử từ đặc tả ca sử dụng Nhưng với đặc tả ca sử dụng ngôn ngữ tự nhiên, việc tự động hóa gặp nhiều khó khăn kỹ thuật xử lý ngôn ngữ tự nhiên khó vấn đề ngôn ngữ tự nhiên diễn đạt nhiều cách khác Vì để tự động hóa hoạt động này, Ca sử dụng cần đặc tả ngôn ngữ hình thức để máy hiểu đặc tả tự động sinh ca kiểm thử Ngôn ngữ đặc tả hình thức cho đặc tả ca sử dụng cần biểu diễn xác đặc tả ca sử dụng , tương ứng với ca sử dụng chuỗi hành động xảy ra, hành động liệu đầu vào để ca sử dụng thực theo kịch bản, kết thúc đầu Hiện có nhiều nghiên cứu đề xuất phương pháp đặc tả ca sử dụng trình bày phần mở đầu Tuy nhiên phương pháp cho phép đặc tả chưa đầy đủ Chưa có phương pháp cho phép đặc tả ràng buộc phải thỏa mãn cho liệu đầu vào hành độn, điều kiện gác luồng, điều làm cho dẫn sinh tự động ca kiểm thử nghiên cứu chưa hoàn chỉnh Nghiên cứu đề xuất ngôn ngữ USL, ngôn ngữ có đủ khái niệm cho phép đặc tả chi tiết ca sử dụng đặc tả đầu vào cho mục đích hướng dẫn sinh tự động ca kiểm thử Chi tiết phương pháp trình bày phần III TỔNG QUAN VỀ PHƯƠNG PHÁP Để giải vấn đề đặt phần đề xuất ngôn ngữ cho phép đặc tả chi tiết ca sử dụng mô hình từ mô hình sử dụng để sinh tự động ca kiểm thử minh họa hình Hình Minh họa phương pháp đề xuất Đề xuất xây dựng FrameWork cho ngôn ngữ đặc tả ca sử dụng, frameWork cho phép nhà phát triển đặc tả ca sử dụng theo tài liệu yêu cầu đầu ca kiểm thử sinh tự động từ đặc tả Trong FrameWork gồm có hai phần Phần 1: Ngôn ngữ đặc tả mô hình cho phép nhà phát triển đặc tả ca sử dụng mô hình Mô hình đầu vào cung cấp cho chuyển mô hình với mục đích sinh ca kiểm thử tự động Ngôn ngữ đặc tả mở rộng từ biểu đồ hoạt động UML thêm vào khái niệm contract cho phép đặc tả chi tiết hành động điều kiện gác luồng Ngôn ngữ phát triển dựa kỹ thuật phát triển hướng mô hình với hướng tiếp cận mô hình hóa miền chuyên biệt (Domain Specific Modelling) Phần 2: Bộ chuyển mô hình cho phép sinh tự động ca kiểm thử từ mô hình đặc tả ca sử dụng cách áp dụng thuật toán sinh ca kiểm thử chuyển mô hình Bộ chuyển mô hình xây dựng dựa kỹ thuật chuyển mô hình (Model Transformation), mô hình chuyển sang tài liệu dựa kỹ thuật chuyển mô hình sang văn (Model to Text) Trong báo tập trung vào trình bày đề xuất ngôn ngữ đặc tả hướng dẫn sinh ca kiểm thử từ đặc tả Chi tiết trình bày phần IV BIỂU DIỄN CHÍNH XÁC ĐẶC TẢ CA SỬ DỤNG BẰNG USL Trong phần trình bày cách thức mở rộng biểu đồ hoạt động UML, đề xuất cấu trúc cho đặc tả chi tiết hành động điều kiện gác chuyển phương pháp sinh ca kiểm thử tự động từ mô hình ngôn ngữ USL mà đề xuất PHƯƠNG PHÁP SINH TỰ ĐỘNG CA KIỂM THỬ TỪ MÔ HÌNH CA SỬ DỤNG 594 A Mở rộng biểu đồ hoạt động để biểu diễn ca sử dụng Trong đặc tả ca sử dụng, chủ yếu tập chung vào đặc tả luồng thực ca sử dụng (luồng luồng thay thế) luật nghiệp vụ ràng buộc hành động chuỗi tương tác luồng Các luồng, luật sở để xác định kịch kiểm thử ca kiểm thử Để biểu diễn chuỗi tương tác sử dụng biểu đồ hoạt động UML để biểu diễn, nhiên để biểu đồ hoạt động phù hợp với mục đích đặc tả ca sử dụng, định nghĩa lại siêu khái niệm (Meta Concept) cho mục đích đặc tả Các siêu khái niệm xác định cho mục đích đặc tả ca sử dụng xác định sau: Hành động tác nhân (Actor Action) hành động đối tượng bên hệ thống thực tương tác với hệ thống bên trong, hành động tác nhân nhằm cung cấp liệu đầu vào yêu cầu hệ thống thực xử lý Hành động tác nhân biểu diễn hình chữ nhật Hành động hệ thống (System Action) hành động hệ thống nhằm xử lý yêu cầu hành động tác nhân Khi hành động hệ thống thực cung cấp liệu lấy từ hệ thống dẫn đến thay đổi trạng thái hệ thống Hành động hệ thống biểu diễn hình chữ nhật bo cung góc Nút định (Decision Node) điểm kiểm tra điều kiện tùy theo điều kiện mà luồng điều khiển thực rẽ nhánh khác Nút định biểu diễn hình chữ nhật viền đậm nét đứt Luồng (Flow) luồng dẫn chiều hành động Luồng biểu diễn đường thẳng có hướng mũi tên chiều hành động Ngoài sử dụng luồng để biểu diễn mối quan hệ ca sử dụng Luồng biểu diễn đường thẳng nét đứt có hướng mũi tên chiều quan hệ phía nhãn quan hệ gồm , , Trên luồng có điều kiện gác điều kiện cho luồng xảy ra, điều kiện đặc tả chi tiết khái niệm contract mà đề xuất phần sau Nút bắt đầu (Node Start) biểu diễn điểm bắt đầu ca sử dụng, biểu diễn hình tròn tô đen Một ca sử dụng có nút bắt đầu Nút kết thúc (Node End) biểu diễn điểm kết thúc ca sử dụng, biểu diễn hai hình tròn lồng Một ca sử dụng có nhiều nút kết thúc Để mô tả chi tiết cho hành động : hành động cung cấp liệu đầu vào nào, liệu đầu vào tác nhân cung cấp, hay hệ thống cung cấp; để hành động xảy liệu đầu vào phải thỏa mãn ràng buộc nào; sau thực hành động hệ thống có trả kết mong đợi Để mô tả khái niệm đề xuất khái niệm cam kết (Contract) cho phép đặc tả chi tiết hành động Ngoài khái niệm sử dụng để mô tả ràng buộc luồng Cấu trúc khái niệm cam kết mô tả chi tiết phần B Cấu trúc mô tả chi tiết cho hành động điều kiện gác luồng Để mô tả chi tiết cho hành động điều kiện gác luồng, đề xuất cấu trúc Contract sau: Contract InputA object: Type InputS object: Type Pre [OCL_Condition] Out Description Trong đó: : Là tên Contract Đối tượng object khai báo InputA giá đầu vào hành động tác nhân cung cấp Đối tượng object khai báo InputS giá trị đầu vào lấy từ hệ thống Biểu thức OCL_Condition khai báo Pre biểu thức Logic mô tả ràng buộc tập liệu đầu vào phải thỏa mãn để hành động xảy Biểu thức ràng buộc viết ngôn ngữ ràng buộc đối tượng OCL Chu Thị Minh Huệ, Đặng Đức Hạnh, Nguyễn Ngọc Bình 595 Mô tả Description khai báo Out mô tả kết mong đợi mà hệ thống trả thực hành động Ví dụ 1: Đặc tả chi tiết hành động “nhập UserName PassWord” tác nhân : Contract NhapUserpass InputA us, pass: String Ngữ nghĩa Contract cho biết hành động “nhập UserName PassWord” cung cấp liệu đầu vào us, pass khai báo InputA Ví dụ 2: Đặc tả chi tiết hành động kiểm tra “Hiển thị chức sinh viên thực hiện” hệ thống: Contract KTTKhoan Pre [AcountExist=true] Out “Hiển thị chức sinh viên thực hiện” Ngữ nghĩa Contract cho biết để thực Hành động “Hiển thị chức sinh viên thực hiện” điều kiện AcountExist true, đầu mong đợi hệ thống sau thực hành động là: “Hiển thị chức sinh viên thực hiện” C NGÔN NGỮ ĐẶC TẢ USL Một ngôn ngữ đồ họa phát triển cách sử dụng siêu mô hình (MetaModel) để định nghĩa cú pháp trừu tượng (Abstract Systax) ngôn ngữ Siêu mô hình mô hình ngôn ngữ mô hình hóa, bao gồm lớp nguyên thủy, quan hệ để tạo nên ngôn ngữ mô hình hóa Siêu mô hình định nghĩa cú pháp (Syntax) ngữ nghĩa (Sematic) mô hình, mô hình thể MetaModel [1] Hình framework Plugin Eclipse mà xây dựng dựa siêu mô ngôn ngữ USL đề xuất cho đặc tả ca sử dụng Hình FrameWork soạn thảo ngôn ngữ USL Các ký hiệu đồ họa (Notation) cho trình diễn cú pháp cụ thể ngôn ngữ đề xuất trình bày bảng Bảng Các ký hiệu đồ họa khái niệm ngôn ngữ USL Ký hiệu Khái niệm Bắt đầu ca sử dụng Kết thúc ca sử dụng Hành động tác nhân Hành động hệ thống PHƯƠNG PHÁP SINH TỰ ĐỘNG CA KIỂM THỬ TỪ MÔ HÌNH CA SỬ DỤNG 596 Nút định Điều kiện gác Luồng điều khiển Quan hệ Include ca sử dụng Quan hệ Extend ca sử dụng Quan hệ Use ca sử dụng Đường bao ca sử dụng Contract Contract Quan hệ hành động luồng với Contract Hình mô hình đặc tả ca sử dụng “Đăng nhập” mô hình hóa ngôn ngữ USL mà đề xuất Mô hình thể MetaModel ngôn ngữ USL hình Hình Mô hình đặc tả ca sử dụng Đăng nhập ngôn ngữ mô hình hóa USL V SINH CÁC CA KIỂM THỬ TỪ MÔ HÌNH ĐẶC TẢ CA SỬ DỤNG Để minh họa cho phương pháp sinh ca kiểm thử tự động phần sử dụng ví dụ đặc tả ca sử dụng đăng nhập hình Trong ký hiệu hành động Contract sau: Ký hiệu hành động: A1: Bắt đầu ca sử dụng, A2: Nhập User PassWord, A3: yêu cầu đăng nhập, A4: Kiểm tra tài khoản hợp lệ, A5: Kiểm tra tài khoản tồn tại, A6: Hiển thị chức sinh viên thực hiện, A7: Thông báo: Tài khoản không hợp lệ, A8: Đếm số lần đăng nhập, A9: Kiểm tra số lần đăng nhập >=3, A10: Thông báo: Tài khoản không tồn tại, A11: kết thúc ca sử dụng Chu Thị Minh Huệ, Đặng Đức Hạnh, Nguyễn Ngọc Bình 597 Ký hiệu contract: C1: StartUC, C2: NhapUsserPass, C3: DangNhap, C4: KiemTraTaiKhoan, C5: HienThiChucNang, C6: TaiKhoanKhongHopLe, C7: DemDangNhap, C8: TaiKhoanKTonTai Ca sử dụng đặc tả USL sử dụng cho mục đích sinh tự động ca kiểm thử chuyển mô hình Các bước sinh ca kiểm thử sau: Bước 1: Sinh kịch kiểm thử xác định liệu đầu vào ca kiểm thử Chúng xây dựng thuật toán cho phép duyệt đồ thị để lấy đường mô hình liệu đầu vào cung cấp từ hành động Khi ứng với đường xác định chuỗi hành động tập contract đặc tả chi tiết cho hành động điều kiện gác Mỗi đường tương ứng với kịch kiểm thử Bảng đường xác định từ mô hình đặc tả ca sử dụng “Đăng nhập” hình dựa vào thuật toán Đồng thời xác định liệu đầu vào phần khai báo InputA InputS Contract Ví dụ với Contract xác định ví dụ ContLogin, us, pw, AcountExist Bảng Các kịch xác định từ mô hình Kịch kiểm thử SC1 SC2 SC3 SC4 Chuỗi hành động thực A1, A2, A3, A4, A5, A6, A11 A1, A2, A3, A4, A7 A1, A2, A3, A4, A5, A8, A9 A1, A2, A3, A4A5, A8, A9, A10, A11 Tập Contract C1, C2, C3, C4, C5 C1, C2, C3, C6 C1, C2, C3, C4, C7 C1, C2, C3, C4, C7, C8 Bước 2: Sinh ca kiểm thử từ kịch kiêm thử cách duyệt qua tập Contract kịch để: xác định trường hợp kiểm thử khác vào biểu thức logic ràng buộc khai báo pre, trường hợp kiểm thử tương ứng với giá trị đầu vào làm cho biểu thức Logic thỏa mãn, liệu đầu vào ràng buộc tương ứng với trường hợp không cần xác định giá trị; Xác định đầu mong đợi phần khai báo Out Ví dụ với kịch kiểm thử SC2 tập Contract có Contract C6 có mệnh đề Pre Ràng buộc hai biến us ps xác đinhphép toán or, contract khác ràng buộc với đầu vào khác không cần xác định giá trị Các ca kiểm thử xác định kịch SC2 bảng 6: Bảng Các ca kiểm thử kịch SC2 ca sử dụng Đăng nhập ca kiểm thử Kịch kiểm thử User Name Pass Word Count Login Acount Exist TC2.1 SC2 us->size()size()>16) TC2.2 SC2 !(us->size()size()>16 !(us->size()8) N/A N/A TC2.3 SC2 !(us->size()size()>16) us->size()8 N/A N/A TC2.4 SC2 us->size()size()>16 us->size()8 N/A N/A !(us->size()8) N/A N/A Kết mong đợi Thông báo: " Tài khoản không hợp lệ UserName khoảng từ đến 16 ký tự, passWord ký tự, yêu cầu nhập lại" Thông báo: " Tài khoản không hợp lệ UserName khoảng từ đến 16 ký tự, passWord ký tự, yêu cầu nhập lại" Thông báo: " Tài khoản không hợp lệ UserName khoảng từ đến 16 ký tự, passWord ký tự, yêu cầu nhập lại" Thông báo: " Tài khoản không hợp lệ UserName khoảng từ đến 16 ký tự, passWord ký tự, yêu cầu nhập lại" VI CÁC NGHIÊN CỨU LIÊN QUAN Có nhiều nghiên cứu đề xuất phương pháp tiếp cận cho sinh ca kiểm thử từ đặc tả dựa mô hình đặc tả ca sử dụng tồn Như nghiên cứu [5, 6,13, 14 ,17] đề xuất phương pháp hình thức cho đặc tả ca sử dụng cho mục đích sinh test tự động Các nghiên cứu đề xuất phương pháp cho phép đặc tả chuỗi tương tác luồng điều khiển thực ca sử dụng Trong [5] Clémentine Nebut cộng đề xuất cấu trúc Contract cho đặc tả ca sử dụng mệnh đề logic ngôn ngữ ràng buộc OCL pre (tiền điều kiện), (post) hậu điều kiện contract mô tả tiền điều kiện hậu điều kiện ca sử dụng hành động ca sử dụng Nhóm tác giả dừng lại bước sinh kịch test từ contract biểu đồ UML PHƯƠNG PHÁP SINH TỰ ĐỘNG CA KIỂM THỬ TỪ MÔ HÌNH CA SỬ DỤNG 598 Trong [6] Alexander cộng đề xuất sử dụng steorio type UML để đặc tả hành động tác nhân hành động hệ thống biểu đồ hoạt động, đề xuất nhóm tác giả dừng lại bước đặc tả ca sử dụng Trong [13] Simona Vasilache đề xuất lý thuyết cho xây dựng FrameWork cho phép sinh ca kiểm thử dựa đặc tả biểu đồ biểu đồ phụ thuộc kịch Trong bước sinh kịch test từ biểu đồ tuần tự, bước thứ hai tiến hành mô hình hóa kịch biểu đồ phụ thuộc sinh ca kiểm thử từ biều đồ này, với phương pháp nhóm tả giả dừng lại đưa trường hợp Test khác chưa sinh ca kiểm thử cụ thể gồm tập liệu đầu vào đầu mong đợi Trong [14] Tho T.Quan đề xuất phương pháp đặc tả ca sử dụng cấu trúc File XML xây dựng frameWork trực quan hỗ trợ cho đặc tả ca sử dụng từ sinh kịch kiểm thử Trong [17] Tomasz Straszak cộng đề xuất phương pháp ngôn ngữ mô hình hóa TSL cho phép đặc tả kịch ca kiểm thử ngôn văn với cú pháp theo SVO-O (Subject Verb Object – indirect Object) Hướng tiếp cận cho phép sinh kịch kiểm thử việc sinh ca kiểm thử nhiều hạn chế dừng lại ca kiểm thử trừu tượng chưa xác định rõ liệu đầu vào tập giá trị đầu vào cho ca kiểm thử Các nghiên cứu chủ yếu dừng bước đề xuất giải pháp đặc tả yêu cầu ca sử dụng giải pháp khác sử dụng biểu đồ hoạt động UML, biểu đồ tuần tự, Contract, biểu đồ phụ thuộc đề xuất phương pháp sinh kịch kiểm thử Một số nghiên cứu đề xuất sinh ca kiểm thử, nhiên ca kiểm thử xác định trường hợp Test khác chưa xác định liệu đầu mong đợi cụ thể cho ca kiểm thử Giải pháp cho phép sinh kịch kiểm thử cụ thể ca kiểm thử hoàn chỉnh với tập liệu đầu vào, đầu mong đợi Ngôn ngữ đặc tả USL phát triển dựa mở rộng biểu đồ hoạt động UML bổ sung thêm khái niệm Contract, ngôn ngữ thừa kế từ biểu đồ hoạt động UML kiểm chứng tính đắn biểu đồ, khái niệm ngôn ngữ khái niệm thuộc miền đặc tả ca sử dụng phù hợp thân thiện với mục đích đặc tả VII KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN Chúng đề xuất lý thuyết cho phương pháp sinh ca kiểm thử từ đặc tả ca sử dụng với hướng tiếp cận mô hình hóa miền chuyên biệt cho đặc tả ca sử dụng Trong đưa cú pháp trừu tượng cú pháp cụ thể cho ngôn ngữ USL, cách mở rộng biểu đồ hoạt động UML thêm vào Contract cho phép đặc tả chi tiết hành động, điều kiện gác cho mục đích sinh ca kiểm thử từ mô hình Phần sinh tự động ca kiểm thử phát triển FrameWork hỗ trợ cho ngôn ngữ trình bày báo Trong báo tập chung vào trình bày thuật toán sinh kịch ca kiểm thử ca kiểm thử Xây dựng chuyển mô hình áp dụng thuật toán cho phép sinh ca kiểm thử tự động từ ngôn ngữ mà đề xuất Đồng thời tiếp tục phát triển FrameWork cho phép mô hình hóa trực quan đồ họa cho ngôn ngữ dự án EMF GMF Eclipse, xây dựng sinh kịch kiểm thử ca kiểm thử cho ngôn ngữ VIII TÀI LIỆU THAM KHẢO [1] Marco and Cabot, Jordi and Wimmer, Manuel Brambilla, Model-Driven Software Engineering in Practice.: Morgan \& Claypool Publishers, 2012 [2] Alistair Cockburn, Writing Effective Use Cases, 1st ed.: Addison-Wesley Longman Publishing Co., Inc., 2000 [3] Jim Heumann (2001) http://www.ibm.com/ [Online] HYPERLINK "http://www.ibm.com/developerworks/rational/library/content/RationalEdge/jun01/GeneratingTestCasesFromU seCasesJune01.pdf" http://www.ibm.com/developerworks/rational/library/content/RationalEdge/jun01/GeneratingTestCasesFromUs eCasesJune01.pdf [4] Francisca and Matteo, Alfredo and Pastor, Oscar Isabel and Losavio, "A Specification Pattern for Use Cases," Inf Manage., Nov 2004 [5] Clémentine Nebut and Franck Fleurey and Yves Le Traon and Jean-marc Jézéquel, "Automatic Test Generation: A Use Case Driven Approach," IEEE Transactions on Software Engineering, 2006 [6] Alexander and Six, Hans-Werner Lorenz, "Tailoring UML Activities to Use Case Modeling for Web Application Development," in IBM Corp., Toronto, Ontario, Canada, 2006 [7] Bertrand Meyer, "Applying "Design by Contract"," Computer, Oct 1992 [8] Micha and Bojarski, Jacek and Nowakowski, Wiktor and Ambroziewicz, Albert and Straszak, Tomasz mia\llek, "Complementary Use Case Scenario Representations Based on Domain Vocabularies," in Proceedings of the 10th International Conference on Model Driven Engineering Languages and Systems, 2007 Chu Thị Minh Huệ, Đặng Đức Hạnh, Nguyễn Ngọc Bình 599 [9] Jacek Bojarski, Wiktor Nowakowski, Tomasz Straszak Michal Smialek, "Scenario Construction Tool Based on Extended UML Metamodel," in Proceedings of the 8th International Conference on Model Driven Engineering Languages and Systems, 2005 [10] Frantisek and Mencl, Vladimir Plasil, "Getting 'Whole Picture' Behavior In A Use Case Model," J Integr Des Process Sci., Dec 2003 [11] Wolfgang Grieskamp and Wolfram Schulte, "Testable Use Cases in the Abstract State Machine Language," in In Proceedings of APAQS’01, Dec 10 – 11, 2001, Hong Kong, 2001 [12] Sanna Sivonen, "Domain-specific modelling language and code generator for developing repository-based Eclipse plug-ins", 2008 [13] Simona Vasilache, "De PAT: A Framework for Specification-Based Automatic Test Generation", in Proceedings of the International MultiConference of Engineers and Computer Scientists 2015 Vol I, Hong Kong, 2015 [14] Tho T.Quan, Nhuan S.Lai, Thuan D.le Vu Y.Nguyen, "A Framework for Automatic Construction of Test Scenarios from Use-cases", in Ho Chi Minh City Software Testing Conference Jan2015, HCM, 2015 [15] Dang, D.H.: Triple Graph Grammars and OCL for Validating System Behavior In Hartmut Ehrig, Reiko Heckel, G.R., Taentzer, G., eds.: Proc 4rd Int Conf Graph Transformations (ICGT’2008), Springer, Berlin, LNCS (2008) [16] Richard C Gronback, “Eclipse Modeling Project A Domain-Specific Language”, United States of America, 2009 [17] Tomasz Straszak and Michal Smialek, “Automating Acceptance Testing with tool support”, in straszak:automating, 2014 A METHOD TO GENERATE TEST CASES FORM USE CASE Chu Thi Minh Hue, Dang Duc Hanh, Nguyen Ngoc Binh ABSTRACT— Use cases have achieved wide use for capturing and structuring software requirements Nowadays, the use case model usually is presented by the use case diagrams in UML and use cases specification is documented in text format Use case specifications are created in during the analysis phase to specify software system’s requirements and can also be used for creating system level test cases Using use cases to get system tests has several benefits including test design at early stages of software development life cycle that reduces over all development cost of the system It is usually documented by natural language So there is a large gap to bridge between use case specification and concrete test cases In this paper, we propose a method to specify use case by a model and guide automatically generated test cases from this model In which, we propose a language to modeling use case specification USL for modeling the use case specification and automatic generate test cases USL are extended form the UML activity diagram and add Contract concept, which allows specify details a action and a guard condition in a flow With this approach, we develop a metamodel for presenting the abstract syntax of USL Our approach allows to transform directly from the use case specification to test case scenario, test cases