Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 26 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
26
Dung lượng
481,51 KB
Nội dung
BỘ GIÁO DỤC VÀ ĐÀO TẠO ĐẠI HỌC ĐÀ NẴNG HUỲNH NGỌC KHOA NGHIÊNCỨUKIỂMTHỬHỆTHỐNGHƯỚNGĐỐITƯỢNGDỰATRÊNBIỂUĐỒLỚP Chuyên ngành : Khoa học máy tính Mã số : 60.48.01 TÓM TẮT LUẬN VĂN THẠC SĨ KỸ THUẬT Đà Nẵng - Năm 2012 Công trình được hoàn thành tại ĐẠI HỌC ĐÀ NẴNG Người hướng dẫn khoa học: TS. NGUYỄN THANH BÌNH Phản biện 1 : TS. HUỲNH CÔNG PHÁP Phản biện 2 : TS. TRẦN THIÊN THÀNH Luận văn được bảo vệ tại Hội đồng chấm Luận văn tốt nghiệp thạc sĩ kỹ thuật họp tại Đại học Đà Nẵng vào ngày 19 tháng 01 năm 2013 Có thể tìm hiểu luận văn tại: - Trung tâm Thông tin - Học liệu, Đại học Đà Nẵng; - Trung tâm Học liệu, Đại học Đà Nẵng; -1- MỞ ĐẦU 1. Tính cấp thiết của đề tài Cùng với sự phát triển vượt bậc của Công nghệ thông tin, đặc biệt trong lĩnh vực Công nghệ phần mềm, hoạt động kiểmthử đã được đặc biệt chú trọng, thu hút sự tập trung nghiêncứu của các nhà khoa học, các học giả trên toàn thế giới. Song, bên cạnh những thành tựu khoa học, hoạt động kiểmthử vẫn chưa thể khẳng định được rằng một sản phẩm phần mềm ra đời có chắc chắn đảm bảo tính đúng đắn, có lỗi hay không. Ngày nay, với sự phổ dụng và tính ưu việt của kỹ thuật lập trình hướngđối tượng, sản phẩm phần mềm đã có những bước đột phá về chất lượng. Tuy nhiên, vấn đề kiểm soát lỗi và hoàn thiện sản phẩm vẫn gặp rất nhiều khó khăn. Một trong những nguyên nhân dẫn đến tình trạng trên là do chúng ta chưa nhận thức đầy đủ ý nghĩa của hoạt động kiểmthử khi thực hiện các giai đoạn trong tiến trình phát triển phần mềm; các phương pháp kiểmthử truyền thống vẫn được sử dụng phổ biến. Hơn nữa, độ phức tạp của phần mềm ngày càng cao; sự linh hoạt, mềm dẻo và những đặc điểm đa dạng của kỹ thuật lập trình hướngđối tượng, nếu người phát triển phần mềm không cẩn thận, đôi khi sẽ trở nên nhập nhằng, dễ phát sinh lỗi. Với thực trạng và yêu cầu trên, việc kiểmthử các hệthốnghướngđốitượng cần phải được nghiêncứu kỹ, có chiều sâu; trong đókiểmthửhệthốnghướngđốitượngdựatrên các mô hình hợp nhất là một trong những phương pháp có thể tiếp cận nghiên cứu. Mô hình hợp nhất có tính ưu việt về mặt mô hình hóa một cách trực quan. Ngày nay, ngôn ngữ mô hình hóa hợp nhất (UML) đã trở thành công cụ quen thuộc trong tiến trình phát triển hệthốnghướngđốitượng (HTHĐT). Một trong những dạng biểuđồ thường -2- dùng để thực hiện việc mô hình hóa là biểuđồ lớp. Biểuđồlớp không những cho ta cách nhìn tổng quan về cấu trúc mà còn thể hiện hành vi của hệ thống. Một cách chủ quan rằng, hoạt động kiểmthửdựatrênbiểuđồlớp sẽ tối ưu và mang lại hiệu quả cao cho nguồn tài nguyên cần chi phí trong hoạt động này. Bởi vậy, chúng tôi tiến hành nghiêncứu về vấn đề kiểmthử HTHĐT trênbiểuđồ lớp. 2. Mục đích nghiêncứu Đề tài có tên “Nghiên cứukiểmthửhệthống hƣớng đối tƣợng dựatrênbiểuđồ lớp” được thực hiện với mục đích đưa ra giải pháp và quy trình kiểmthử HTHĐT dựatrênbiểuđồ lớp. Mục tiêu của đề tài là trình bày một cách tổng quan về kiểmthử HTHĐT dựatrênlớp và đưa ra quy trình áp dụng thực tế. Để đạt được mục tiêu, đề tài cần thực hiện các nhiệm vụ sau: - Tìm hiểu HTHĐT; UML và biểuđồlớp (Class Diagram). - Nghiêncứu về kiểmthửhướngđốitượng (OOT). - Xây dựng quy trình kiểmthử HTHĐT dựatrênbiểuđồ lớp. - Ứng dụng quy trình vào HTHĐT cụ thể, từ đóđưa ra đánh giá tính hiệu quả của quy trình đề xuất. 3. Đối tƣợng và phạm vi nghiêncứu 3.1. Đốitượngnghiêncứu - Lý thuyết về HTHĐT, UML và biểuđồ lớp. - Kiểmthửhướngđốitượng (OOT), kiểmthử lớp. - Một số kỹ thuật kiểmthửhướngđốitượng (OOT). 3.2. Phạm vi nghiêncứu - Đặc trưng, tính chất của HTHĐT. - Kiểmthử HTHĐT: cơ sở lý thuyết, các kỹ thuật kiểm thử. - Kiểmthử HTHĐT mức lớp (Class Testing). 4. Phƣơng pháp nghiêncứu 4.1. Phương pháp nghiêncứu lý thuyết -3- - Tìm hiểu các nội dung liên quan đến các đốitượng cần nghiên cứu, có tổ chức đánh giá. - Tổng hợp, xây dựng cơ sở lý luận và đề xuất giải pháp đáp ứng mục đích đề tài. 4.2. Phương pháp nghiêncứu thực nghiệm - Tìm hiểu, thu thập dữ liệu và đặc tả HTHĐT. - Xây dựng các điều kiện đầu vào/ra (input/output), tiến hành áp dụng kết quả nghiêncứu lý thuyết; Nhận xét, đánh giá kết quả. 5. Ý nghĩa khoa học và thực tiễn của đề tài 5.1. Ý nghĩa khoa học - Lý thuyết tổng quan về HTHĐT. - Nghiêncứu về UML và biểuđồ lớp. - Nghiêncứu về kiểmthử HTHĐT dựatrênbiểuđồ lớp. 5.2. Ý nghĩa thực tiễn - Ứng dụng quy trình và các kỹ thuật kiểmthử đã được nghiên cứu, đề xuất cho HTHĐT cụ thể. - Làm cơ sở lý thuyết tham khảo để xây dựng quy trình kiểmthửtrên các dạng biểuđồ khác. 6. Cấu trúc của luận văn Toàn bộ luận văn gồm ba chương được tóm tắt như sau: Chương 1 - Hệthống HĐT và KTPM: Trình bày về HTHĐT và UML, đặc biệt là biểuđồlớp (Class Diagram) và kỹ thuật KTPM. Chương 2 - Kiểmthử HTHĐT dựatrênbiểuđồ lớp: Trình bày một cách tổng quan về kiểmthửhướngđốitượng (OOT). Từ đó, phân tích và hệthống hóa việc kiểmthửlớp (Class Testing). Chương 3 - Ứng dụng kiểmthửdựatrênbiểuđồ lớp: Xây dựng quy trình kiểmthử HTHĐT dựatrênbiểuđồ lớp; đồng thời áp dụng quy trình cho HTHĐT cụ thể: Moved_Balls. -4- CHƢƠNG 1 HỆTHỐNG HƢỚNG ĐỐI TƢỢNG VÀ KIỂMTHỬ PHẦN MỀM 1.1. HỆTHỐNG HƢỚNG ĐỐI TƢỢNG 1.1.1. Một số khái niệm 1.1.1.1. Đốitượng (Object) 1.1.1.2. Lớp (Class) 1.1.1.3. Lớp con (SubClass) 1.1.1.4. Lớp trừu tượng (Abstract Class) 1.1.2. Các tính chất cơ bản 1.1.2.1. Tính trừu tượng (Abstraction) 1.1.2.2. Tính thừa kế (Inheritance) 1.1.2.3. Tính đa hình (Polymorphism) 1.1.2.4. Tính đóng gói (Encapsulation) 1.1.3. Ngôn ngữ mô hình hóa hợp nhất (UML) 1.1.3.1. Định nghĩa 1.1.3.2. Ý nghĩa của UML UML là ngôn ngữ dùng để trực quan hóa UML là ngôn ngữ đặc tả UML là ngôn ngữ dùng để xây dựng UML là ngôn ngữ dùng để lập tài liệu 1.1.3.3. Các thành phần của UML Các phần tử Các quan hệ Các biểuđồ -5- Lập kế hoạch Thiết kế Test case Phát triển Test script Thực hiện kiểmthử Đánh giá Hình 1.15. Qui trình kiểmthử phần mềm 1.1.4. Biểuđồlớp (Class Diagram) 1.1.4.1. Khái niệm 1.1.4.2. Các thành phần của biểuđồlớp Lớp (Class): Thuộc tính (attribute), Phương thức (method) Mối quan hệ giữa các lớp 1.1.4.3. Cách xây dựng biểuđồlớp 1.2. TỔNG QUAN VỀ KIỂMTHỬ PHẦN MỀM 1.2.1. Khái niệm 1.2.2. Quy trình kiểmthử phần mềm 1.2.2.1. Lập kế hoạch kiểmthử 1.2.2.2. Thiết kế ca kiểmthử (Test case) 1.2.2.3. Phát triển Test Script 1.2.2.4. Thực thi kiểmthử 1.2.2.5. Đánh giá quá trình kiểmthử 1.2.3. Các kỹ thuật kiểmthử phần mềm 1.2.3.1. Kiểmthử chức năng (Functional Testing) Kiểmthử chức năng là phương pháp kiểmthử chủ yếu dựa vào đặc tả chức năng của hệ thống. Các ca kiểmthử hay dữ liệu kiểmthử được dẫn xuất từ đặc tả. Bởi vậy, kiểmthử chức năng còn được gọi là kiểmthửdựatrên đặc tả hay kỹ thuật kiểmthử hộp đen (Black-Box Testing). Kiểmthử chức năng là giải pháp tốt nhất để -6- tìm ra lỗi thiết kế. Hoạt động kiểmthử được áp dụng cho các mức độkiểm thử: Kiểmthử đơn vị, kiểmthử tích hợp, kiểmthửhệ thống, kiểmthử hồi quy và kiểmthử chấp nhận. 1.2.3.2. Kiểmthử cấu trúc (Structural Testing) Kiểmthử cấu trúc còn gọi là kiểmthử hộp trắ ng (White-Box Testing) chủ yếu dựa vào mã nguồn và cấu trúc chương trình. Kiểmthử cấu trúc cho phép chúng ta kiểmthử cấu trúc bên trong của phần mềm, với mục đích kiểm tra tất cả các câu lệnh và điều kiện tồn tại trong phần mềm đó. Kiểmthử cấu trúc thường phát hiện lỗi lập trình. Tuy nhiên, đây là phương pháp kiểmthử khó thực hiện, chi phí cao. 1.3. TỔNG KẾT CHƢƠNG Chương này trình bày tổng quan về HTHĐT. Bên cạnh đó, chúng tôi cũng tìm hiểu một cách chi tiết về UML và biểuđồ lớp. Nhiều khái niệm về kiểmthử cũng được đề cập, đặc biệt QTKT và các kỹ thuật kiểmthử (kiểm thử chức năng và kiểmthử cấu trúc). CHƢƠNG 2 KIỂMTHỬHỆTHỐNG HƢỚNG ĐỐI TƢỢNG DỰATRÊNBIỂUĐỒLỚP 2.1. KIỂMTHỬHỆTHỐNG HƢỚNG ĐỐI TƢỢNG 2.1.1. Tổng quan về kiểmthử HTHĐT 2.1.2. Các chiến lƣợc kiểmthử HTHĐT 2.1.2.1. Kiểmthử đơn vị (Unit Testing) 2.1.2.2. Kiểmthử tích hợp (Integration Testing) 2.1.2.3. Kiểmthửhệthống (System Testing) 2.2. KIỂMTHỬ HTHĐT DỰATRÊNBIỂUĐỒLỚP 2.2.1. Ý nghĩa của biểuđồlớp trong hoạt động kiểmthử 2.2.1.1. Xây dựng tập các lớp -7- Xác định lớp Đặc tả lớp 2.2.1.2. Xác định mối quan hệ của lớp 2.2.1.3. Tính chất của lớp 2.2.1.4. Tập liên quan với lớp 2.2.2. KiểmthửLớp (Class Testing) 2.2.2.1. Kiểmthử phương thức (Method Testing) Trong hệthốnghướngđối tượng, phương thức được xem là đơn vị nhỏ nhất nên kiểmthử phương thức (method testing) có thể được xem là kiểmthử đơn vị (Unit Testing) [4], [5]. Kiểmthử phương thức tập trung vào từng chi tiết bên trong của mỗi phương thức. Do vậy, những kỹ thuật kiểmthử đơn vị truyền thống hoàn toàn phù hợp cho kiểmthử phương thức trong HTHĐT như kỹ thuật kiểmthửdựa vào đồ thị luồng dữ liệu (DFG), kiểmthửdựa vào đồ thị luồng điều khiển (CFG), kiểmthử giá trị biên (BVT), . 2.2.2.2. Kiểmthửlớp đơn (Intra-Class Testing) Kiểmthửdựa vào phân tích hợp nhất Kỹ thuật được xây dựng gồm ba bước chính [15]: - Phân tích luồng dữ liệu (Data flow analysis) - Thực thi thành phần tiêu biểu (Symbolic Execution) - Tinh giảm tự động (Automated deduction) Kiểmthửlớptương đương (Equivalence Classes Testing) Việc đầu tiên của kỹ thuật kiểmthử này là phân hoạch không gian trạng thái, từ đó xác định tập ca kiểmthử [4], [5]. Định nghĩa 1: Một phân hoạch của không gian trạng thái S của một lớp là tập hợp các trạng thái trừu tượng S 1 , S 2 , …, S n trong không gian trạng thái S. Trong đó: - S 1 , S 2 , …, S n là tập hợp con khác rỗng của trạng thái S -8- - S 1 S 2 … S n = S - S i S j ≠ , i, j [1, n] và i ≠ j. Theo kỹ thuật phân hoạch của kiểmthử truyền thống thì: Nếu việc phân hoạch không gian trạng thái dựa vào đặc tả của lớp thì cần kiểmthử những giá trị đặc biệt của mỗi thuộc tính trong lớpđó bằng cách phân hoạch miền thuộc tính theo những giá trị tiêu biểu, những giá trị được sử dụng trong đặc tả nhằm kiểm tra những sự kiện xảy ra theo điều kiện nào đó, những giá trị biên. Nếu việc phân hoạch không gian trạng thái dựa vào việc thực thi của lớp thì phải phân hoạch miền của mỗi thuộc tính theo cấu trúc của mỗi phương thức tồn tại trong lớp đó. Việc phân hoạch các miền thuộc tính có thể dựa vào tiêu chuẩn bao phủ: bao phủ câu lệnh, bao phủ nhánh và bao phủ đường đi. Kiểmthửlớp đơn dựatrên máy trạng thái hữu hạn * Máy trạng thái lớp (Class State Machine -CSM) Định nghĩa 2: Máy trạng thái của một lớp C là một bộ M = (V, F, S, T). Trong đó [9], [14]: V: tập hữu hạn các thuộc tính của lớp C, F: tập hữu hạn các phương thức của lớp C, S: tập hữu hạn các trạng thái, trong đó S được định nghĩa như sau: S = {s| s = (pred)}, pred là tính chất của thuộc tính trong V. T: là sự chuyển tiếp, T = {t| t = (s, r, fn, g, a)} ; trong đó: s, r S: là trạng thái nguồn (trạng thái trước) và trạng thái đích (trạng thái sau) của chuyển tiếp ; s 0 : là trạng thái đầu, s f : là trạng thái cuối; fn F: là một phương thức gây ra sự chuyển tiếp t, nếu điều kiện được xác nhận là đúng ; g: biểu thức điều kiện tương ứng giữa thuộc tính trong V và tham số của phương thức fn F; a: là một tập các hành động tương ứng giữa các thuộc tính với những tham biến của phương thức fn.