Mở đầu Ở chương này trình bày tổng quan về đề tài như : lý do chọn đề tài, mục tiêu, nội dung của đề tài và công cụ cũng như môi trường để ứng dụng đề tài. Tổng quan về kiểm thử Chương này trình bày khái niệm cơ bản về kiểm thử, các kỹ thuật kiểm thử và công đoạn kiểm thử trong vòng đời phát triển của phần mềm Chƣơng 2. Tổng quan về công nghệ Dịch vụ Web và kiểm thử Dịch vụ Web Chương này trình bày khái quát về công nghệ dịch vụ Web, khái niệm, thành phần, kiến trúc. Vai trò, ý nghĩa, mục đích sử dụng của Dịch vụ Web và một số tiêu chí bổ sung khi kiểm thử dịch vụ Web Chƣơng 3.
Xây dựng công cụ hỗ trợ kiểm thử Dịch vụ Web Trong chương này luận văn đưa ra bài toán kiểm thử, cách thức kiểm thử truyền thống và đề xuất xây dựng một công cụ kiểm thử dịch vụ Web tự động. Từ đó đưa ra bài toán và cách áp dụng cụ thể để đánh giá. 7 LUAN VAN CHAT LUONG download : add luanvanchat@agmail.com Kết luận và đề xuất Chương này phân tích và đánh giá việc thực hiện đề tài, những đóng góp và những hạn chế mà đề tài cần khắc phục để hoàn thiện, hướng phát triển của đề tài và các ứng dụng của đề tài trong lý thuyết cũng như trong thực tiễn 2. Mục tiêu của đề tài Mục tiêu của luận văn là tìm hiểu về kiến thức kiểm thử phần mềm, kiến thức về công nghệ dịch vụ Web và kiểm thử dịch vụ Web.
Dựa trên mô hình lý thuyết ở trên để thực hiện phân tích và xây dựng công cụ hỗ trợ kiểm thử cho một bài toán kiểm thử dịch vụ Web cụ thể. Nội dung nghiên cứu Đề tài nghiên cứu tổng quát về kiểm thử phần mềm: khái niệm, các kỹ thuật, đưa ra nghiên cứu chi tiết về kiểm thử bảo mật và hiệu năng của dịch vụ Web. Đề tài còn nghiên cứu tổng quát về dịch vụ Web: khái niệm, công nghệ. Từ những cơ sở lý thuyết trên thì đề tài tiến hành đề xuất cài đặt công cụ hỗ trợ kiểm thử cho dịch vụ Web.
Nêu một số khái niệm tổng quan về kiểm thử và dịch vụ Web 2. Xây dựng công cụ hỗ trợ kiểm thử - Đề xuất bài toán - Phân tích và xây dựng thuật toán - Cài đặt minh họa - Đánh giá kết quả 3. Kết luận những nội dung đã đạt được và hướng phát triển, các ứng dụng của đề tài. Học viên thực hiện Trần Thị Thúy Nhung 8 LUAN VAN CHAT LUONG download : add luanvanchat@agmail.com Chƣơng 1.
TỔNG QUAN VỀ KIỂM THỬ PHẦN MỀM 1. Kiểm thử phần mềm Kiểm thử phần mềm là quá trình phân tích phần mềm để phát hiện sự khác biệt giữa kết quả của chương trình với đầu ra mong muốn để đánh giá các chức năng của phần mềm. Kiểm thử phần mềm cần được thực hiện trong toàn bộ quá trình phát triển của phần mềm. Kiểm thử phần mềm là rất quan trọng, là một phần bắt buộc của phần mềm.
Nó là một kỹ thuật để đánh giá chất lượng của phần mềm và cải thiện nó bằng cách xác định các lỗi và các vấn đề [1]. Phân loại kiểm thử Ta phân loại kiểm thử dựa vào các yếu tố: Chiến lược kiểm thử, phương pháp kiểm thử và kỹ thuật kiểm thử. Dựa vào chiến lược kiểm thử ta có thể phân chia kiểm thử thành hai loại: kiểm thử thủ công và kiểm thử tự động. Theo phương pháp tiến hành kiểm thử ta chia kiểm thử làm hai loại: kiểm thử tĩnh và kiểm thử động.
Dựa vào kỹ thuật kiểm thử ta có thể phân chia kiểm thử thành hai loại: kiểm thử hộp đen, kiểm thử hộp trắng [1]. Các phƣơng pháp kiểm thử 1. Kiểm thử tĩnh Là phương pháp kiểm thử phần mềm thông qua việc sử dụng giấy, bút trên bàn để kiểm tra logic, kiểm tra từng chi tiết ngay sau khi lập trình xong, chủ yếu kiểm tra mã và xem xét các tài liệu đặc tả. Phân tích tĩnh có thể xem xét tất cả các kết quả có thể phát sinh trong quá trình chạy chương trình.
Tiêu chuẩn của kiểm thử tĩnh là tối ưu hóa trình biên dịch. Kiểm thử động Là phương pháp thử phần mềm thông qua việc dùng máy chạy chương trình để điều tra trạng thái từng động tác của chương trình. Đó là kiểm thử dựa trên các ca kiểm thử xác định bằng sự thực hiện của đối tượng kiểm thử hay chạy các chương trình. Kiểm thử động kiểm tra cách thức hoạt động động của mã lệnh, tức là kiểm tra sự phản ứng vật lý từ hệ thống tới các biến luôn thay đổi theo thời gian.
Trong kiểm thử động, phần mềm phải thực sự được biên dịch và chạy. Kiểm thử động gồm các công việc, nhập giá trị đầu vào và kiểm tra xem đầu ra có đúng kết quả mong muốn không. 9 LUAN VAN CHAT LUONG download : add luanvanchat@agmail.com Các phương pháp kiểm thử động gồm có kiểm thử đơn vị – Unit Test, Kiểm thử tích hợp – Intergration Test, Kiểm thử hệ thống – System Test, và Kiểm thử chấp nhận sản phẩm – Acceptance Test. Bằng cách thực hiện kiểm thử tĩnh và kiểm thử động thì việc phát hiện lỗi sớm sẽ hạn chế lỗi trong quá trình phát triển phần mềm.
Trong thực tế thì việc kiểm thử tĩnh và kiểm thử động được thực hiện liên tục và xen kẽ, Những người kiểm thử và các nhà nghiên cứu cần loại bỏ ranh giới giữa tĩnh và động mà nên tạo ra một kiểm thử hỗn hợp để có thể kết hợp thế mạnh của cả hai phương pháp tiếp cận. Các kỹ thuật kiểm thử Quá trình thiết kế trường hợp thử là quá trình xây dựng các phương pháp kiểm thử có thể phát hiện lổi, sai sót khiếm khuyết của phần mềm để xây dựng một phần mềm đạt tiêu chuẩn. Thiết kê các trường hợp kiểm thử có vai trò: - Tạo ra các trường hợp kiểm thử tốt nhất có khả năng phát hiện ra lỗi, sai sót của phần mềm một cách nhiều nhất. - Tạo ra các trường hợp kiểm thử có chi phí rẻ nhất đồng thời tốn ít thời gian và công sức nhất.[2] Ba trong số những chiến lược kiểm thử thông dụng nhất bao gồm: Kiểm thử hộp đen, Kiểm thử hộp trắng, và Kiểm thử hộp xám.
Ở đây ta tìm hiểu kỹ thuật kiểm thử hộp trắng và kỹ thuật kiểm thử hộp đen. Kiểm thử hộp trắng – White box testing Kiểm thử hộp trắng hay còn gọi là kiểm thử hướng logic, cho phép kiểm tra cấu trúc bên trong của phần mềm với mục đích đảm bảo rằng tất cả các câu lệnh và điều kiện sẽ được thực hiện ít nhất một lần. Hộp trắng đúng nghĩa phải gọi là hộp trong suốt. Chính vì vậy, kỹ thuật này còn có một số tên khác là kiểm thử hộp thủy tinh (Glass-Box Testing) hay kiểm thử hộp trong suốt (Clear-Box Testing).
Người kiểm thử truy nhập vào mã nguồn chương trình để kiểm tra và đây là cơ sở để hỗ trợ việc kiểm thử. Nguyên tắc của kỹ thuật kiểm thử hộp trắng là: - Thực hiện mọi đường dẫn độc lập ít nhất một lần. - Thực hiện mọi điều kiện logic (if-then-else) trên các giá trị true và false của chúng. 10 LUAN VAN CHAT LUONG download : add luanvanchat@agmail.com - Thực hiện mọi vòng lặp (các vòng lặp for, while-do) tại các biên và trong phạm vi hoạt động của chúng.
- Thực hiện mọi cấu trúc dữ liệu bên trong để đảm bảo tính hợp lệ của chúng Hình 1. Ví dụ chu trình điều khiển Trong phương pháp kiểm thử hộp trắng, ta đi vào tìm hiểu các kỹ thuật kiểm thử hộp trắng đó là: - Kiểm thử bao phủ chu trình cơ sở - Kiểm thử cấu trúc điều khiển 1. Kiểm thử đường dẫn cơ sở (Basic Path Testing) Kiểm thử đường dẫn cơ sở là một kỹ thuật kiểm thử hộp trắng do Tom McCabe đề xuất, là việc thiết kế các trường hợp kiểm thử trên từng câu lệnh trong chương trình được sẽ được thực hiện ít nhất một lần không quan tâm đến ảnh hưởng lên các đường quyết định. Phương pháp đường dẫn cơ sở cho phép người thiết kế trường hợp kiểm thử thực hiện phép đo độ phức tạp logic của thiết kế thủ tục và sử dụng phép đo này như một chỉ dẫn cho việc thiết kế một tập cơ sở các đường dẫn thực hiện.
Những trường hợp kiểm thử được suy diễn để thực hiện tập cơ sở. Các trường hợp kiểm thử đó được đảm bảo để thực hiện mỗi lệnh trong chương trình ít nhất một lần trong quá trình kiểm thử. Các bước tiến hành xây dựng một tập hợp kiểm thử như sau: - Dùng tài liệu thiết kế hay mã nguồn để vẽ thuật toán của chương trình hay hàm - Xác định đồ thị V(G) - Từ đồ thị xác định tập đường độc lập tuyến tính lẫn nhau - Xây dựng trường hợp kiểm thử dựa trên tập đường xác định ở trên 11 LUAN VAN CHAT LUONG download : add luanvanchat@agmail. Kiểm thử cấu trúc điều khiển Phương pháp kiểm thử đường dẫn cơ sở là phương pháp đơn giản và hiệu quả, nhưng nó vẫn chưa đủ.
Chúng ta sẽ xem xét các biến thể trên kiểm thử cấu trúc điều khiển mà phủ kiểm thử mở rộng và hoàn thiện chất lượng của kỹ thuật kiểm thử hộp trắng. Kiểm thử điều kiện Kiểm thử điều kiện là phương pháp thiết kế trường hợp kiểm thử dựa trên các điều kiện logic của hàm hay module chương trình [1]. Các lỗi phát hiện được: - Lỗi do giá trị của biến - Lỗi do dấu ngoặc - Lỗi do phép toán quan hệ - Lỗi trong biểu thức toán học Một số định nghĩa: - Điều kiện đơn: là một biến logic hoặc một biểu thức quan hệ, có thể có toán tử NOT (!) đứng trước, ví dụ, NOT (a>b) - Biểu thức quan hệ: là một biểu thức có dạng E1 <op> E2, trong đó E1, E2 là các biểu thức số học và <op> là toán tử quan hệ có thể là một trong các dạng sau: <, <=, >, >=, = =, !=, ví dụ, a > b+1. - Điều kiện phức: gồm hai hay nhiều điều kiện đơn, toán tử logic AND (&&) hoặc OR (||) hoặc NOT (!) và các dấu ngoặc đơn „(„ và „)‟, ví dụ, (a > b + 1) AND (a <= max).
Vì vậy, các thành phần trong một điều kiện có thể gồm phép toán logic, biến logic, cặp dấu ngoặc logic (bao một điều kiện đơn hoặc phức), phép toán quan hệ, hoặc biểu thức toán học. Mục đích của kiểm thử điều kiện là để xác định không chỉ các lỗi điều kiện mà cả các lỗi khác trong chương trình.