Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 55 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
55
Dung lượng
1,97 MB
Nội dung
ĐẠI HỌC QUỐC GIA HÀ NỘI TRƯỜNG ĐẠI HỌC CÔNG NGHỆ ==========oOo========== TRỊNH THỊ MINH HIỂN XÂY DỰNG CÁC CA KIỂM THỬ TỰ ĐỘNG TỪ GIAO DIỆN PHẦN MỀM LUẬN VĂN THẠC SĨ HÀ NỘI - 2011 ĐẠI HỌC QUỐC GIA HÀ NỘI TRƯỜNG ĐẠI HỌC CÔNG NGHỆ ==========oOo========== TRỊNH THỊ MINH HIỂN XÂY DỰNG CÁC CA KIỂM THỬ TỰ ĐỘNG TỪ GIAO DIỆN PHẦN MỀM Ngành: Công nghệ thông tin Chuyên ngành: Công nghệ phần mềm Mã số: 60 48 10 LUẬN VĂN THẠC SĨ NGƯỜI HƯỚNG DẪN KHOA HỌC: TS TRƯƠNG NINH THUẬN HÀ NỘI - 2011 MỤC LỤC LỜI CAM ĐOAN MỤC LỤC DANH MỤC CÁC KÝ HIỆU THUẬT NGỮ VIẾT TẮT DANH MỤC CÁC HÌNH VẼ DANH MỤC CÁC BẢNG Mở đầu Chương Tổng quan kiểm thử kiểm thử tự động 1.1 Kiểm thử phần mềm 1.1.1 Khái niệm kiểm thử phần mềm 1.1.2 Mục tiêu kiểm thử 1.1.3 Luồng thông tin kiểm thử 1.2 Kiểm thử tự động 1.2.1 Khái niệm kiểm thử tự động 1.2.2 Lợi ích hạn chế kiểm thử tự động 1.2.3 Phân loại công cụ kiểm thử tự động Chương Phương pháp sinh ca kiểm thử tự động 2.1 Phương pháp sinh Test Case tự động dựa đặc tả 2.2.1 Phương pháp sinh Test Case dựa đặc tả SCR 2.2.2 Phương pháp sinh Test Case dựa đặc tả UML 12 2.2 Phương pháp sinh Test Case tự động dựa Mơ hình 16 2.2.1 Phương pháp sinh Test Case dựa biểu đồ cộng tác UML 16 2.2.2 Phương pháp sinh Test Case tự động dựa lược đồ Use case 20 Chương 29 Phương pháp sinh Test Case tự động từ giao diện 29 3.1 Tổ hợp kiểm thử 29 3.1.1 Tham số mức 29 3.1.2 Tổ hợp tham số 30 3.1.3 Qui trình thiết kế tổ hợp kiểm thử 31 3.2 Áp dụng phương pháp sinh Test Case từ giao diện với ví dụ cụ thể 32 3.2.1 Kiểm thử form Login 32 3.2.2 Kiểm thử form Lương Cơ Bản 33 Chương 35 Công cụ hỗ trợ 35 4.1 Thiết kế chức 35 4.1.1 Thiết kế tổng quan 35 4.1.2 Biểu đồ Use case 36 4.1.3 Biểu đồ hoạt động 36 4.1.4 Biểu đồ lớp 37 4.2 Cài đặt 39 4.2.1 Nhập tham số 39 4.2.2 Nhập kết 40 4.2.3 Nhập điều kiện 41 4.3.4 Sinh Test Case 42 4.3 Ưu, nhược điểm công cụ 45 Kết luận 46 TÀI LIỆU THAM KHẢO 47 DANH MỤC CÁC KÝ HIỆU THUẬT NGỮ VIẾT TẮT # Thuật ngữ Test Case Tester Test Ý nghĩa Ca kiểm thử Kiểm thử viên Kiểm thử DANH MỤC CÁC HÌNH VẼ Hình 1.1 Luồng thơng tin kiểm thử Hình 2.1 Quy trình chung việc tạo Test Case từ đặc tả SCR 11 Hình 2.2 Sự kiện gọi (call events)1 13 Hình 2.3 Sự kiện tín hiệu (signal events)1 13 Hình 2.4 Sự kiện thời gian (time Events) 14 Hình 2.5 Sự kiện thay đổi (Change Events) 14 Hình 2.6 Quy trình tạo Test Case từ đặc tả UML 15 Hình 2.7 Biểu đồ use-case mơ tả u cầu hệ thống đăng kí khóa học trường đại học 21 Hình 2.9 Tài liệu mơ tả qui trình đăng kí môn học luồng kiện use case 23 Hình 2.10 Tài liệu mơ tả qui trình đăng kí mơn học luồng luân phiên use case 23 Hình 3.1 Quy trình thiết kết tổ hợp kiểm thử 31 Hình 4.1 Biểu đồ Use case 36 Hình 4.2 Biểu đồ hoạt động 37 Hình 4.3 Biểu đồ lớp 38 DANH MỤC CÁC BẢNG Bảng 1.1 Các bước sử dụng công cụ để tiến hành kiểm thư tự động………………… Bảng 2.1 Những kịch xảy cho biểu đồ biểu diễn tại………………… 24 Bảng 2.2 Những kịch sử dụng sở để tạo Test Case…… 24 Bảng 2.3 Ma trận kịch phần cho Use Case “Đăng kí mơn học”………… 25 Bảng 2.4 Ma trận Test Case cho Use Case “Đăng kí mơn học”…………………… 26 Bảng 2.5 Ma trận Test Case với giá trị liệu……………………………………… 27 Mở đầu Trong năm gần với phát triển phần cứng máy tính, phần mềm có nhiều bước tiến quan trọng Sản xuất phát triển phần mềm trở thành ngành công nghiệp thực Cũng ngành công nghiệp khác, quy mô chức phần mềm sản xuất ngày phức tạp yêu cầu quản lý chất lượng phần mềm ngày quan tâm Do đó, kiểm thử phần mềm phải thực thường xuyên suốt vòng đời phát triển phần mềm để đảm bảo chất lượng Như biết, giao diện người dùng đồ họa (Graphical User Interface GUI) cách phổ biến để người sử dụng tương tác với hệ thống phần mềm Khi kết thúc giai đoạn kiểm thử hệ thống, tester tiếp tục kiểm thử phần mềm với chức bổ sung cung cấp giao diện đồ hoạ GUI làm cho việc kiểm thử hệ thống khó khăn nguyên nhân: chất kiện điều khiển GUI, kiện không mong muốn, miền liệu đầu vào/đầu vơ hạn mà lập trình viên khơng lường trước khơng thể kiểm thử tất luồng kiện Thông qua GUI, tester thực kiểm thử hộp đen để tìm lỗi phần mềm Một lý quan trọng kiểm thử phần mềm thiết kế tạo Test Case có hiệu Chi phí kiểm thử phần mềm thường chiếm tới 40% tổng nỗ lực dành cho dự án phát triển phần mềm Vì thế, giảm chi phí cho việc tạo Test Case (thời gian, công sức) vấn đề quan tâm kiểm thử phần mềm Tự động hố việc tạo Test Case khơng giúp giảm chi phí việc tạo Test Case mà cịn giúp đồng hố chất lượng Test Case Để đồng hóa cơng việc viết Test Case phương pháp tự động nhằm giảm bớt công sức thời gian tester, làm cho chất lượng Test Case tốt hơn, nghiên cứu phương pháp sinh Test Case từ giao diện, từ phát triển công cụ sinh Test Case từ giao diện để hỗ trợ tester việc tạo Test Case để kiểm thử phần mềm Luận văn trình bày theo bốn chương với nội dung sau: Chương 1: Tổng quan kiểm thử kiểm thử tự động Trình bày tổng quan kiểm thử, kiểm thử tự động Chương 2: Phương pháp sinh Test Case tự động Trình bày khái niệm Test Case Phương pháp sinh Test Case tự động hay Chương 3: Phương pháp sinh Test Case từ giao diện Trình bày phương pháp sinh Test Case từ giao diện áp dụng phương pháp sinh Test Case từ giao diện với ví dụ cụ thể Chương 4: Công cụ hỗ trợ Xây dựng công cụ sinh Test Case tự động phương pháp sinh Test Case từ giao diện Sau nghiên cứu thử nghiệm, phần Kết luận có nêu số tổng kết nhận xét công cụ sinh Test Case tự động, đồng thời đề hướng nghiên cứu Chương Tổng quan kiểm thử kiểm thử tự động 1.1 Kiểm thử phần mềm 1.1.1 Khái niệm kiểm thử phần mềm Kiểm thử phần mềm hoạt động khảo sát thực tiễn sản phẩm hay dịch vụ phần mềm môi trường chúng dự định triển khai nhằm cung cấp cho người có lợi ích liên quan thông tin chất lượng sản phẩm hay dịch vụ phần mềm Mục đích kiểm thử phần mềm tìm lỗi hay khiếm khuyết phần mềm nhằm đảm bảo hiệu hoạt động tối ưu phần mềm nhiều ngành khác Theo Glen Myers: Kiểm thử phần mềm trình vận hành chương trình để tìm lỗi [12] Vấn đề đặt là: Cần vận hành để hiệu suất tìm lỗi cao chi phí (cơng sức, thời gian) 1.1.2 Mục tiêu kiểm thử Các nguyên tắc xem mục tiêu kiểm thử là: Kiểm thử trình thực thi chương trình với mục đích tìm lỗi Một trường hợp kiểm thử tốt trường hợp kiểm thử mà có khả cao việc tìm thấy lỗi chưa phát Một kiểm thử thành công kiểm thử mà phát lỗi chưa phát 1.1.3 Luồng thông tin kiểm thử Luồng thông tin cho kiểm thử biểu diễn mơ hình hình 1.1 Hai kiểu đầu vào truyền cho trình kiểm thử: Cấu hình phần mềm: gồm đặc tả yêu cầu, đặc tả thiết kế, mã nguồn Cấu hình kiểm thử: gồm có kế hoạch kiểm thử, thủ tục, trường hợp kiểm thử, công cụ kiểm thử 34 - Các nút: Nhập, Sửa, Xố, Thốt Ta có bảng mơ tả sau: TT Tham số Mã lương Giá trị - Hợp lệ KD01 - Không hợp lệ -1,#, Chức vụ Giám đốc nhân sự, trưởng phòng kinh doanh, trưởng phòng kế hoạch, Quản đốc xưởng, để trống Chức danh Tổng giám đốc, giám đốc, trưởng phịng, phó phịng, nhân viên, để trống Lương Dữ liệu nhập hợp lệ PC chức vụ Dữ liệu nhập hợp lệ Nút Nhập Ví dụ Khơng hợp lệ Khơng hợp lệ Sửa Xố Thốt Theo phương pháp sinh Test Case đề cập phần trên, số tham số = 6; số giá trị nhận = 21 số Test Case mà tester cần viết cho form LuongCoBan là: 216 Test Case 35 Chương Công cụ hỗ trợ Trong công ty phát triển phần mềm hầu hết công việc kiểm thử kiểm thử viên thực thủ công tay Một cơng việc quan trọng q trình kiểm thử việc tạo Test Case Để giải vấn đề ta xây dựng công cụ sinh Test Case từ phương pháp sinh Test Case từ giao diện giới thiệu chương 4.1 Thiết kế chức 4.1.1 Thiết kế tổng quan Công cụ sinh Test Case tự động, mơ hình hố tham số đầu vào miền giá trị có tham số (hay lớp tương đương), kết mong đợi biễu diễn kết Boolean, điều kiện xem biểu thức logic cách sử dụng tham số định nghĩa trước miền giá trị liên kết chúng với kết mong đợi Ngoài ra, điều kiện Null điều kiện cho phép xác định kết hợp không mong muốn để giảm số lượng kết kiểm thử Tập Test Case sinh lưu lại ứng dụng MS Excel, XML Dựa mô hình kiểm thử, cơng cụ thực cơng việc vất vả thay cho tester Công cụ tạo tất kết hợp có tham số miền giá trị Sau sinh Test Case, công cụ áp dụng qui định mơ hình liên kết kết mong đợi với kết hợp để loại bỏ kết hợp khơng mong muốn Để sinh Test Case, trước hết, kiểm thử viên cần thực thiện thao tác Nhập tham số xuất hình kiểm thử Sau nhập tham số, ứng với tham số, dựa theo đặc tả phần mềm mà kiểm thử viên nhập miền giá trị cho tham số Để mô tả Test Case cần có kết mong đợi Kết thấy đặc tả phần mềm Ngồi ra, tester cần nhập thêm điều kiện, để dựa vào điều kiện loại bỏ Test Case dư thừa 36 4.1.2 Biểu đồ Use case Nhập tham số Nhập điều kiện Nhập kết Tester Nhập giá trị Sinh Test Case Hình 4.1 Biểu đồ Use case - - Thao tác Nhập tham số: Tester thực nhập tham số có giao diện mà tester thực viết Test Case Thao tác nhập giá trị: Sau nhập xong tham số, tester nhập giá trị mà tham số nhận (để viết phần này, yêu cầu tester đọc kĩ đặc tả phần mềm) Thao tác Nhập kết quả: Những phản hồi phần mềm Thao tác Sinh Test Case: sau nhập thực thao tác trên, công cụ tự động sinh Test Case cho phép export file Excel, XML, SQL 4.1.3 Biểu đồ hoạt động Hình 4.2 mơ tả hoạt động cơng cụ q trình sinh Test Case 37 Hình 4.2 Biểu đồ hoạt động 4.1.4 Biểu đồ lớp 38 Hình 4.3 Biểu đồ lớp Mục đích cụ thể lớp (Class) sau: – Class ThamSo: Cho biết thông tin tham số gồm có: - Tên tham số - Các giá trị tham số (Ở lưu IDictionary có lợi điểm tìm kiếm) - Các giá trị sample tham số (Lưu IDictionary) 2- Class KetQua: Cho biết thông tin kết quả, gồm có: - Tên kết - Mơ tả chi tiết kết - Kiểu kết 3- Class DieuKienDon: Cho biết thông tin điều kiện đơn Trong điều kiện chương trình có nhiều điều kiện đơn, gồm có thuộc tính: - Đối số điều kiện đơn - Toán tử kết hợp đối số (kiểu enum) – Class DieuKien: Cho biết thông tin điều kiện, gồm có thuộc tính: - Tên điều kiện - Cơng thức điều kiện 39 - Tên kết chọn để thị kết điều kiện - biến bool cho biết có chọn điều kiện hay khơng – Class Test Case: Cho biết thơng tin Test Case gồm có: - Mã Test Case - Tên Tham số - Tên Kết Ngồi ra, chúng tơi dùng Class tồn cục GlobalVar: lưu biến toàn cục sử dụng cho toàn chương trình, gồm có: - IDictionary tham số: lưu tồn tham số chương trình - IDictionary kết quả: lưu toàn kết chương trình - IDictionary cơng thức: Lưu tồn điều kiện chuong trình - Datatable Test Case: Lưu thơng tin kết sau phát sinh Test Case - Đường dẫn file save: cho biết đường dẫn file save chương trình 4.2 Cài đặt Cơng cụ hỗ trợ lập trình: Visual studio 2010 Dotnet bar Giao diện công cụ sau: 4.2.1 Nhập tham số Form cho phép nhập tất tham số xuất GUI Người dùng nhập tên tham số, sau click thêm: Kiểm tra Dictionary tham số tồn tham số có tên chưa: - Nếu có báo tồn tham số - Nếu khơng thêm tham số vào Dictionary tham số hiển thị DataGridView bên Khi người dùng nhập giá trị cho tham số: - Người dùng phải chọn tham số để nhập - Nhập giá trị, kiểm tra tham số có giá trị chưa, có thơng báo tồn giá trị rồi, khơng thêm giá trị cho tham số Cập nhật tên tham số: - Kiểm tra tên tham số vừa cập nhật tồn chưa, chưa cho cập nhật vào Dictionary tham số 40 Cập nhật giá trị - Kiểm tra giá trị tồn chưa, chưa cho cập nhật vào Dictionary tham số Xóa tham số: - Kiểm tra tham số tồn remove tham số khỏi Dictionary tham số Xóa giá trị - Kiểm tra giá trị tồn remove giá trị khỏi Dictionary tham số 4.2.2 Nhập kết Cho phép nhập kết trả tham số nhận giá trị mô tả theo đặc tả hệ thống Khi nhập kết quả: Kiểm tra kết có tồn IDictionary kết chưa: - Nếu có thơng báo kết tồn - Nếu chưa thêm kết vào Dictionary kết 41 Cập nhật thông tin kết Kiểm tra kết vừa cập nhật tồn Dictionary kết chưa: - Nếu có thơng báo kết tồn - Nếu chưa cập nhật kết vào Dictionary kết Xóa kết Kiểm tra kết muốn xóa tồn Dictionary kết chưa: - Nếu có remove kết khỏi dictionary kết - Nếu chưa thơng báo kết khơng tồn 4.2.3 Nhập điều kiện Cho phép nhập điều kiện để làm giảm số lượng Test Case sinh Khi người dùng thêm điều kiện: - Kiểm tra điều kiện có cú pháp hay khơng - Kiểm tra tên điều kiện tồn hay chưa - Kiểm tra tạo kết chưa Nếu tất thỏa thêm điều kiện vào Dictionary cơng thức 42 Khi xóa cơng thức: - Kiểm tra điều kiện tồn hay chưa - Nếu có remove khỏi dictionary cơng thức - Nếu khơng báo cơng thức khơng tồn 4.3.4 Sinh Test Case Sau nhập Tham số, Kết trả về, Điều kiện thực hiện, công cụ giúp Tester tự động sinh Test Case thông qua form Sinh Test Case Khi nhấn vào phát sinh: - Kiểm tra chiều sâu phát sinh có vượt số giá trị tham số hay khơng Nếu có báo lỗi - Tổ hợp giá trị tham số theo chiều sâu phát sinh nhập - Kiểm tra dòng liệu với điều kiện nhập 43 Xuất tập Test Case dạng: - Export file Excel - Export liệu datagridview file excel - Export file XML - Export liệu datagridview file XML Lưu Test Case Lưu tất biến toàn cục file xml theo dịnh dạng: 44 … 45 4.3 Ưu, nhược điểm công cụ Ưu điểm - Do trình sinh Test Case tự động mà rút ngắn thời làm phần mềm, chất lượng phần mềm tốt - Quá trình sinh Test Case thực cách tự động nên sinh nhiều ca kiểm thử phát nhiều lỗi - Tester không bị nhàm chán phải thực lặp lại nhiều lần cơng việc, điều làm cho tester khơng nhàm chán với cơng việc - Sớm phát lỗi không rõ ràng đặc điểm kỹ thuật thiết kế tăng thời gian giải vấn đề kiểm thử - Tự động tạo kiểm tra chánh ca kiểm thử trùng không hữu hiệu Nhược điểm - Tester phải yêu cầu người có khả phân tích thiết kế hệ thống - Tester phải đầu tư đáng kể thời gian, trí tuệ cho việc nghiên cứu tài liệu đặc tả hệ thống 46 Kết luận Thơng qua việc tìm hiểu lý thuyết kiểm thử, kiểm thử tự động, phương pháp sinh Test Case tự động áp dụng lý thuyết vào việc xây dựng công cụ sinh Test Case tự động Luận văn đạt kết sau: Trước hết, tìm hiểu trình bày lại cách nhìn tổng quan kiểm thử, vai trị lợi ích kiểm thử tự động phân loại công cụ kiểm thử tự động Bên cạnh đó, chúng tơi nghiên cứu phương pháp sinh Test Case tự động phổ biến nay, từ xây dựng lên phương pháp sinh Test Case tự động từ giao diện Vận dụng phương pháp sinh Test Case tự động từ giao diện, xây dựng thành công công cụ sinh Test Case tự động Thông qua việc thực luận văn này, nhận thấy rằng, kiểm thử tự động cho phép giảm chi phí (thời gian, cơng sức) q trình kiểm thử, bên cạnh đó, kiểm thử tự động cịn làm tăng độ xác, độ bao phủ kiểm thử Không thế, kiểm thử tự động cịn làm việc mà người khó làm (Ví dụ: việc cố gắng hoàn thành thực tế ca kiểm thử hệ thống với 200 người dùng trực tuyến (online) khơng thực thực kiểm thử tay Nhưng 200 người dùng giả lập cơng cụ kiểm thử tự động) Trong tương lai, luận văn có hướng nghiên cứu sau: Hiện công cụ dừng lại mức hỗ trợ sinh Test Case mà chưa tự động nhận diện tham số xuất hình giao diện phần mềm Chúng tơi nghiên cứu để hệ thống tự nhận diện tham số có giao diện mà tester khơng cần nhập tay để đem lại hiệu cách cao 47 TÀI LIỆU THAM KHẢO Tiếng Việt Nguyễn Văn Vỵ , Nguyễn Việt Hà (2000), Giáo trình kỹ nghệ phần mềm, NXB Giáo dục Vũ Thị Đào (2008), Kỹ thuật sinh Test Case tự động từ yêu cầu phần mềm, Luận văn Thạc sĩ, Trường Đại học Công nghệ, Đại học Quốc gia Hà Nội Tiếng Anh Aditya P Mathur (2007), Foundations of Software Testing: Fundamental Algorithms and Techniques, Pearson Education India Aynur Abdurazik and Jeff Offutt (2000), Using UML colloboration diagrams for Static Checking and Test Generation, USA Brian Marick (2009), When Should a Test Be Automated, StickyMinds.com Retrieved 2009-08-20 Douglas Hoffman (1999), Test Automation Architectures: Planning for Test Automation, Software Quality Methods, LLC Elfriede Dustin (1999), Automated Software Testing, Addison Wesley, 1999, ISBN 0-20143-287-0 Elfriede Dustin (2003), Effective Software Testing: 50 specific ways to improve your testing, Pearson Education, Inc Elfriede Dustin, Implementing Automated Software Testing, Addison Wesley, ISBN 978-0321580511 10 Jeff Offutt (2003), Generating test data from state-based specifications, John Wiley & Sons 11 Jeff Offutt (2003), Generating test from UML Specifications, George Mason University 12 Glenford J Myers (2004), The Art of Software Testing, John Wiley and Sons, Inc 13 Jerry Zeyu Gao, H.-S Jacob Tsao and Ye Wu (2003), Testing And Quality Assurance for Component-Based Software, Artech House 14 Kanglin Li, Menqui Wu (2004), Effective Software Test Automation: Developing an Automated Software Testing Tool, Sybex 48 15 Kolawa, Adam, Huizinga and Dorota (2007), Automated Defect Prevention: Best Practices in Software Management, Wiley-IEEE Computer Society Press p 74 ISBN 0470042125 16 Mark Fewster and Dorothy Graham (1999), Software Test Automation: Effective use of test execution tools, ACM Press Books 17 Ron Patton (2005), Software Testing, Sams Publishing 18 Roman Savenkov (2008), How to Become a Software Tester, Roman Savenkov Consulting, ISBN 978-0-615-23372-7 19 Roger S Pressman (2005), Software Engineering: A Practitioner’s Approach, New York 20 William E Perry (2006), Effective methods for Software Testing, Wiley Publishing, Indian ... sinh Kiểm thử tự động giải vấn đề Kiểm thử tự động phần mềm tiến trình thực cách tự động số bước ca kiểm thử, cách sử dụng công cụ nhằm rút ngắn thời gian công sức kiểm thử [1] Công cụ kiểm thử tự. .. 3 Chương Tổng quan kiểm thử kiểm thử tự động 1.1 Kiểm thử phần mềm 1.1.1 Khái niệm kiểm thử phần mềm Kiểm thử phần mềm hoạt động khảo sát thực tiễn sản phẩm hay dịch vụ phần mềm môi trường chúng... thời điểm ghi lại kết kiểm thử Tăng độ bao phủ kiểm thử Kiểm thử tự động tăng phạm vi kiểm thử từ cải thiện chất lượng phần mềm Kiểm thử tự động thực công việc mà kiểm thử thủ cơng khơng làm