Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 12 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
12
Dung lượng
188,02 KB
Nội dung
ĐẠI HỌC QUỐC GIA HÀ NỘI TRƢỜNG ĐẠI HỌC CÔNG NGHỆ VŨ THỊ ĐÀO KỸ THUẬT SINH TEST CASE TỰ ĐỘNG TỪ YÊU CẦU PHẦN MỀM LUẬN VĂN THẠC SĨ Hà Nội - 2008 ĐẠI HỌC QUỐC GIA HÀ NỘI TRƢỜNG ĐẠI HỌC CÔNG NGHỆ VŨ THỊ ĐÀO KỸ THUẬT SINH TEST CASE TỰ ĐỘNG TỪ YÊU CẦU 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ố: LUẬN VĂN THẠC SĨ NGƢỜI HƢỚNG DẪN KHOA HỌC TS.TRƢƠNG ANH HOÀNG : Hà Nội - 2008 LỜI CẢM ƠN Luận văn thành trình học tập nghiên cứu giúp đỡ, khuyến khích quý thầy sau năm theo học Chƣơng trình đào tạo Thạc sỹ, chuyên ngành Công nghệ phần mềm Khoa Công nghệ, Trƣờng Đại học Công nghệ Hà Nội Tôi xin đặc biệt cảm ơn Thầy giáo hƣớng dẫn TS Trƣơng Anh Hoàng Thầy nhiệt tình hƣớng dẫn tôi, giúp đỡ động viên nhiều, cho có hội đƣợc tiếp xúc với tài liệu tham khảo quý giá trình nghiên cứu để hoàn thành đề tài Xin trân trọng cảm ơn Thầy giáo Khoa Công Nghệ Viện Công nghệ thông tin dạy dỗ hai năm học, cảm ơn cán công tác Phòng Sau Đại học-Đại Học Công nghệ Hà Nội giúp đỡ nhiều trình học tập công tác bảo vệ luận văn MỘT LẦN NỮA TÔI XIN CHÂN THÀNH CẢM ƠN!! MỤC LỤC CHƢƠNG ĐẶT VẤN ĐỀ 1.1 Tầm quan trọng yêu cầu phần mềm 1.2 Khái niệm Test case 1.3 Vấn đề sinh Test case từ yêu cầu phần mềm 10 CHƢƠNG TỔNG QUAN VỀ QUÁ TRÌNH Error! Bookmark not defined SINH TEST CASE TỰ ĐỘNG Error! Bookmark not defined 2.1 Giới thiệu Error! Bookmark not defined 2.2 Tổng quan phƣơng pháp sinh Test caseError! Bookmark not defined 2.2.1 Sinh Test case dựa đặc tả Error! Bookmark not defined 2.2.2 Sinh Test case dựa mô hình Error! Bookmark not defined 2.2.3 Sinh Test case hƣớng đƣờng dẫn Error! Bookmark not defined 2.3 Kiểm thử phần mềm UML Error! Bookmark not defined CHƢƠNG CÁC KỸ THUẬT VÀ PHƢƠNG PHÁP SINH Error! Bookmark not defined TEST CASE TỰ ĐỘNG Error! Bookmark not defined 3.1 Giới thiệu Error! Bookmark not defined 3.2 Kỹ thuật sinh Test case dựa đặc tả Error! Bookmark not defined 3.2.1 Các phƣơng thức đặc tả trạng thái SCR Error! Bookmark not defined 3.2.2 Kỹ thuật sinh Test case dựa theo đặc tả SCR Error! Bookmark not defined 3.2.3 Kỹ thuật tạo Test case cho đặc tả UML Error! Bookmark not defined 3.2.4 Các thuận toán sinh Test case dựa đặc tả.Error! Bookmark not defined 3.3 Kỹ thuật sinh Test case dựa mô hình Error! Bookmark not defined 3.3.1 Tạo Test case việc sử dụng biểu đồ cộng tác UMLError! Bookmark not defined 3.3.2 Tạo Test case dựa Use case cải tiến Error! Bookmark not defined CHƢƠNG PHÁT TRIỂN CHƢƠNG TRÌNH ỨNG DỤNGError! Bookmark not defined QUÁ TRÌNH SINH TEST CASE TỰ ĐỘNG Error! Bookmark not defined 4.1 Mục tiêu Error! Bookmark not defined 4.2 Tóm tắt trình sinh Test case tự động Error! Bookmark not defined 4.2.1 Ví dụ Error! Bookmark not defined 4.2.2 Các Test case ví dụ Error! Bookmark not defined 4.2.3 Tính ứng dụng, ƣu điểm nhƣợc điểmError! Bookmark not defined 4.2.4 Kết luận Error! Bookmark not defined 4.3 Cài đặt Error! Bookmark not defined DANH MỤC CÁC KÝ HIỆU THUẬT NGỮ VIẾT TẮT Từ cụm từ viết tắt UML OCD SCR Test Tester Viết đầy đủ Unified Modeling Language Object Collaboration Diagram Software Cost Reducation Sự kiểm thử Kiểm thử viên DANH MỤC CÁC HÌNH VẼ Stt 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 Tên hình vẽ Một quy trình kiểm tra Kiểm thử dựa đặc tả Kiểm thử dựa chƣơng trình Xây dựng yêu cầu Test case từ biểu thức cú pháp Qúa trình chung việc tạo Test case từ đặc tả SCR Sự kiện gọi (call events) Sự kiện báo hiệu (signal events) Sự kiện thời gian (time Events) Sự kiện thay đổi (Change Events) Qúa trình chung cho việc tạo Test case từ đặc tả UML Cấu trúc file MDL cho biểu đồ lớp biểu đồ chuyển trạng thái Biểu đồ lớp mô hình thiết kề OCD cho việc sinh Test case chỉnh sửa đầy đủ thuộc tính OCD cho việc sinh Test case chỉnh sửa chuyển tiếp OCD cho việc sinh Test case chỉnh sửa cặp chuyển tiếp Thuật toán phân tích đặc tả SCR Thuật toán phân tách đặc tả UML Biểu đồ cộng tác mức độ đặc tả Biểu đồ cộng tác cho thao tác Các cặp cộng tác Một đƣờng chuỗi thông điệp Thuật toán instrumentation Mô hình hóa vùng thiết kế phần mềm Các hoạt động cách tiếp cận đƣợc đề xuất bên trình phát triển phần mềm Biểu đồ trạng thái mức độ cao cho ví dụ use case bảng Cải tiến biểu đồ trạng thái cho ví dụ use case bảng Mô hình cách sử dụng cho ví dụ thƣ viện bảng Mô hình hành vi Các lƣợc đồ test giá trị test Test case cho kịch DANH MỤC CÁC BẢNG BIỂU Stt Tên bảng biểu Phân biệt biểu đồ UML mức độ test Mẫu cải tiến use case Một ví dụ mẫu chi tiết use case MỞ ĐẦU Mặc dù việc nghiên cứu phƣơng pháp kỹ thuật sinh Test case tự động từ yêu cầu ngƣời dùng đƣợc quan tâm nhiều giới, nhƣng Việt Nam nghiên cứu ứng dụng bƣớc đầu Thực vậy, công việc sinh Test case tự động từ yêu cầu ngƣời dùng cách có hiệu trình kiểm thử vấn đề cần thiết xúc công ty sản xuất phần mềm nhƣ tổ chức thực phát triển dự án phần mềm Trong trình phát triển dự án phần mềm, thƣờng công việc tạo Test case từ yêu cầu ngƣời dùng Tester phụ trách Nhƣng Tester viết tài liệu Test case nhƣ Vì công ty phần mềm nhƣ tổ chức thực phát triển dự án phần mềm phát sinh vấn đề là: Tester viết tài liệu Test case tốt, có hiệu chất lƣợng phần mềm tốt dự án có Test case tồi Vậy không đồng hóa công việc viết Test case phƣơng pháp kỹ thuật 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 Có hƣớng tiếp cận khác việc sinh Test case tự động: thứ sinh Test case tự động dựa đặc tả từ file input đƣợc định sẵn; thứ hai sinh Test case tự động dựa code, chƣơng trình có sẵn; thứ ba sinh Test case tự động dựa mô hình UML Trong ba hƣớng tiếp cận chọn hƣớng tiếp cận thứ ba nghiên cứu phƣơng pháp theo hƣớng tiếp cận Trong đề tài luận văn nghiên cứu vấn đề tạo Test case tự động từ yêu cầu ngƣời dùng Sau đó, xem xét phƣơng pháp kỹ thuật có việc tạo Test case tự động để từ đƣa cải tiến bổ sung phát triển Cuối xây dựng công cụ sinh Test case tự động áp dụng thực tế Bố cục luận văn gồm phần mở đầu, phần kết luận chƣơng nội dung nhƣ sau: Chƣơng 1: Đặt vấn đề, đƣa vấn đề cần thiết cấp bách việc nghiên cứu xây dựng kỹ thuật sinh Test case hiệu từ yêu cầu ngƣời dùng Chƣơng 2: Giới thiệu tổng quan sinh Test case tự động Trên sở chọn hƣớng tiếp cận sâu vào nghiên cứu Chƣơng Chƣơng 3: Trình bày phƣơng pháp kỹ thuật sinh Test case tự động có Từ đề xuất kỹ thuật sinh Test case tự động phân tích ƣu điểm so với kỹ thuật trƣớc Chƣơng 4: Trình bày trình sinh Test case hiệu dựa kỹ thuật đƣợc đề xuất Đồng thời xây dựng chƣơng trình demo trình sinh Test case tự động 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 việc sinh Test case tự động, đồng thời đề hƣớng nghiên cứu CHƢƠNG ĐẶT VẤN ĐỀ 1.1 Tầm quan trọng yêu cầu phần mềm Các yêu cầu phần mềm quan trọng với dự án phần mềm Các dự án thành công thất bại có nguyên nhân chất lƣợng yêu cầu Các yêu cầu cấu thành phạm vi tất công việc sau cho nhóm phát triển dự án Không có yêu cầu tốt, dự án thất bại, bị chậm trễ, tốn kém, làm hệ thống không đƣợc sử dụng Các vấn đề yêu cầu nên đƣợc cố định sớm, trƣớc vào giai đoạn thiết kế, vấn đề yêu cầu có khuynh hƣớng gắn chặt vào thiết kế khó việc sửa chữa sau Những ngƣời phát triển ngƣời dùng có cách nhìn khác từ yêu cầu ngƣời phát triển xem xét yêu cầu từ quan điểm làm để thực ngƣời dùng cảm nhận vấn đề sử dụng nhƣ Cách an toàn để bảo đảm nhu cầu ngƣời dùng đƣợc đáp ứng đƣợc đƣa ra, ta nên làm hai tài liệu song song, ngƣời dùng cần, hệ thống phải làm để đáp ứng nhu cầu Đây yêu cầu ngƣời dùng đặc tả hệ thống theo thứ tự định sẵn Vậy cần có yêu cầu phần mềm tốt? Bất kỳ lỗi đƣợc phát giai đoạn đầu trình phát triển dự án phần mềm kết quan trọng Nếu giai đoạn sau lỗi đƣợc phát chi phí cho việc sửa chữa hệ thống phần mềm tốn nhiều Nếu ngƣời thiết kế hệ thống hƣớng tới mục tiêu không đúng, việc thực thi hệ thống chệch với mong muốn ban đầu Một yêu cầu sai tạo hàng loạt lỗi thiết kế Vì để sản phẩm phần mềm tốt điều quan trọng phải có yêu cầu tốt 1.2 Khái niệm Test case Trong trình phát triển dự án phầm mềm, thông thƣờng quy trình kiểm thử có bƣớc nhƣ sau: lập kế hoạch, thiết kế Test, phát triển test script, thực test đánh giá (xem Hình 1) Trong Test case đƣợc viết bƣớc thiết kế test Mục đích thiết kế test viết định Test case bƣớc kiểm tra chi tiết cho phiên phần mềm Giai đoạn thiết kế test quan trọng, bảo đảm tất tình kiểm tra "quét" hết tất yêu cầu cần kiểm tra Vì công việc tạo Test case hiệu đặc biệt quan trọng để đảm bảo chất lƣợng phần mềm Để làm đƣợc việc đó, trƣớc hết phải hiểu Test case gì? Một Test case coi tình kiểm thử, đƣợc thiết kế để kiểm thử đối tƣợng có thỏa mãn yêu cầu đặt hay không Một Test case thƣờng bao gồm phần bản: • Mô tả: đặc tả điều kiện cần có để tiến hành kiểm thử • Đầu vào: đặc tả đối tƣợng hay liệu cần thiết, đƣợc sử dụng làm đầu vào để thực việc kiểm thử • Kết mong muốn: kết trả từ đối tƣợng kiểm thử, chứng tỏ đối tƣợng thỏa mãn yêu cầu Test case có ý nghĩa vô quan trọng, mục đích đƣa trƣờng hợp test nhằm phát lỗi nhiều có thể, dự án phát triển phần mềm có chất lƣợng tốt 1.3 Vấn đề sinh Test case từ yêu cầu phần mềm Trong trình phát triển dự án phần mềm, thƣờng công việc tạo Test case từ yêu cầu ngƣời dùng Tester phụ trách Nhƣng Tester viết tài liệu Test case nhƣ nhau.Vì công ty phần mềm nhƣ tổ chức thực dự án phần mềm phát sinh vấn đề là: Tester viết tài liệu Test case tốt, có hiệu chất lƣợng phần mềm tốt dự án có Test case tồi (có nhiều trƣờng hợp test trùng lặp thiếu trƣờng hợp test) Vậy phải chuẩn hóa đồng hóa để tạo Test case cách hiệu có chuẩn chất lƣợng Để làm điều này, phải nghiên cứu phƣơng pháp kỹ thuật để tự động tạo Test case Việc tạo Test case cách tự động làm giảm bớt công sức thời gian tester, giúp giảm bớt chi phí phát triển phần mềm Qúa trình tạo Test case giúp tester phát vấn đề mâu thuẫn chƣa rõ ràng yêu cầu phần mềm Nếu bƣớc đƣợc làm sớm, vấn đề đƣợc loại bỏ sớm, tiết kiệm thời gian nguồn lực phát triển dự án phần mềm Vậy việc nghiên cứu phƣơng pháp công cụ sinh Test case cách tự động từ yêu cầu ngƣời dùng hữu ích cần thiết trình phát triển dự án phần mềm Quá trình nhằm mục đích tạo Test case cách có hiệu quả, có chất lƣợng TÀI LIỆU THAM KHẢO [1] Andras Toth, Daniel Varro, Andras Pataricca, 2003, Model Level Automatic Test Generation for UML State-Charts, Sixth IEEE workshop on Design and Diagnostics of Electronic Circuits and System, (DDECS 2003) [2] Clay E Williams, November 1999, Software testing and the UML, International Symposium on Software Reliability Engineering (ISSRE’99), Boca, Raton [3] Jeff Offutt, Aynur Abdurazik, October 1999, Generating Tests from UML specifications, Second International Conference on the Unified Modeling Language (UML99) [4] Jeff Offutt, Aynur Abdurazik, October 2000, Using UML Collaboration diagrams for static checking and test generation, Third International Conference on UML, York, UK [5] Jeff Offutt, Shaoying Liu, Aynur Abdurazik, Paul Ammann, March 2003, Generating Test data from State based Specifications, The Journal of Software Testing, Verification and Reliability [6] Matthias Riebish, Ilka Philippow, Marco Gotze, UML Based Statistical Test Case Generation" [...]... thỏa mãn yêu cầu Test case có một ý nghĩa vô cùng quan trọng, mục đích đƣa ra các trƣờng hợp test nhằm phát hiện ra các lỗi nhiều nhất có thể, để cho các dự án phát triển phần mềm có chất lƣợng tốt hơn 1.3 Vấn đề sinh Test case từ các yêu cầu phần mềm Trong quá trình phát triển dự án phần mềm, thƣờng công việc tạo ra các Test case từ yêu cầu ngƣời dùng do các Tester phụ trách Nhƣng không phải Tester... điều này, chúng ta phải nghiên cứu các phƣơng pháp và kỹ thuật để tự động tạo ra các Test case Việc tạo ra Test case một cách tự động cũng làm giảm bớt công sức và thời gian của các tester, giúp giảm bớt chi phí phát triển phần mềm Qúa trình tạo ra các Test case sẽ giúp các tester phát hiện ra các vấn đề mâu thuẫn hoặc chƣa rõ ràng của các yêu cầu phần mềm Nếu bƣớc này đƣợc làm sớm, các vấn đề có thể đƣợc... liệu Test case này cũng nhƣ nhau.Vì vậy trong các công ty phần mềm cũng nhƣ các tổ chức thực hiện dự án phần mềm sẽ phát sinh một vấn đề là: Tester nào viết tài liệu Test case tốt, có hiệu quả thì chất lƣợng phần mềm sẽ tốt hơn những dự án có các Test case tồi (có nhiều trƣờng hợp test trùng lặp nhau hoặc thiếu các trƣờng hợp test) Vậy chúng ta phải chuẩn hóa và đồng bộ hóa để làm sao tạo ra Test case. ..Trong đó Test case đƣợc viết trong bƣớc thiết kế test Mục đích của thiết kế test là viết và chỉ định các Test case trong các bƣớc kiểm tra chi tiết cho mỗi phiên bản phần mềm Giai đoạn thiết kế test là hết sức quan trọng, nó bảo đảm tất cả các tình huống kiểm tra "quét" hết tất cả yêu cầu cần kiểm tra Vì vậy công việc tạo ra các Test case hiệu quả là đặc biệt quan trọng để đảm bảo chất lƣợng phần mềm Để... phát triển các dự án phần mềm Vậy việc nghiên cứu các phƣơng pháp và công cụ sinh Test case một cách tự động từ yêu cầu ngƣời dùng rất hữu ích và cần thiết trong quá trình phát triển các dự án phần mềm Quá trình này nhằm mục đích tạo ra Test case một cách có hiệu quả, có chất lƣợng TÀI LIỆU THAM KHẢO [1] Andras Toth, Daniel Varro, Andras Pataricca, 2003, Model Level Automatic Test Generation for UML... phải hiểu Test case là gì? Một Test case có thể coi là một tình huống kiểm thử, đƣợc thiết kế để kiểm thử một đối tƣợng có thỏa mãn yêu cầu đặt ra hay không Một Test case thƣờng bao gồm 3 phần cơ bản: • Mô tả: đặc tả các điều kiện cần có để tiến hành kiểm thử • Đầu vào: đặc tả đối tƣợng hay dữ liệu cần thiết, đƣợc sử dụng làm đầu vào để thực hiện việc kiểm thử • Kết quả mong muốn: kết quả trả về từ đối... Conference on UML, York, UK [5] Jeff Offutt, Shaoying Liu, Aynur Abdurazik, Paul Ammann, March 2003, Generating Test data from State based Specifications, The Journal of Software Testing, Verification and Reliability [6] Matthias Riebish, Ilka Philippow, Marco Gotze, UML Based Statistical Test Case Generation" ... 1999, Software testing and the UML, International Symposium on Software Reliability Engineering (ISSRE’99), Boca, Raton [3] Jeff Offutt, Aynur Abdurazik, October 1999, Generating Tests from UML specifications, Second International Conference on the Unified Modeling Language (UML99) [4] Jeff Offutt, Aynur Abdurazik, October 2000, Using UML Collaboration diagrams for static checking and test generation,