chương 1 và 2 chủ yếu được trình bày lại qua quá trình đọc và nghiên cứu tài liệu của tác giả với những kiến thức đã được nhiều nhà khoa học công bố. Trong đó phần đóng góp của tác giả là: - Hệ thống hóa lại kiến thức theo cách tiếp cận kỹ thuật hộp đen. - Từ các chiến lược kiểm định phần mềm nói chung. Tác giả áp dụng để xây dựng các giai đoạn thiết kế kiểm định phần mềm theo kỹ thuật hộp đen.
Toàn bộ nội dung chương 3 là kết quả của riêng tác giả với việc xây dựng phần mềm kiểm thử theo kỹ thuật hộp đen bằng cách thiết kế bộ testcase chấm thi học sinh giỏi Tin học Toàn quốc. LUAN VAN CHAT LUONG download : add luanvanchat@agmail.com vii CHƢƠNG 1 TỔNG QUAN KIỂM ĐỊNH PHẦN MỀM Phần đầu của chương giới thiệu sơ lược một số mô hình cơ bản theo các quy trình phát triển phần mềm. Phần tiếp theo đánh giá chất lượng phần mềm qua một số tiêu chí có sẵn. Từ đó phân tích lý do tại sao phải kiểm định phần mềm, và nhấn mạnh tầm quan trọng của kiểm định phần mềm trong quy trình phát triển của mỗi phần mềm nói riêng và nhận thức của những người làm phần mềm nói chung.
CÁC MÔ HÌNH PHÁT TRIỂN PHẦN MỀM 1. Phần mềm là gì? Phần mềm là một (bộ) chương trình được cài đặt trên máy tính nhằm thực hiện một nhiệm vụ tương đối độc lập và phục vụ cho một ứng dụng cụ thể như việc quản lí hoạt động của máy tính hoặc áp dụng máy tính trong các hoạt động kinh tế, quốc phòng, văn hóa, giáo dục,. Việc tạo ra một sản phẩm phần mềm phải trải qua nhiều giai đoạn, người ta gọi là qui trình phát triển phần mềm, bắt đầu từ khi có ý tưởng đến khi đưa ra sản phẩm phần mềm thực thi. Khối lượng công việc trong từng giai đoạn của quá trình sản xuất phần mềm cũng thay đổi theo thời gian.
Các mô hình phát triển phần mềm [5] a. Mô hình tuần tự tuyến tính Mô hình tuần tự tuyến tính còn gọi là vòng đời cổ điển hay mô hình thác nước. Kỹ nghệ hệ Hình 1. Mô hình tuần tự tuyến tính thống/ thông tin Phân Thiết Lập Kiểm Vận tích kế trình định hành LUAN VAN CHAT LUONG download : add luanvanchat@agmail.com -1- Mô hình tuần tự tuyến tính bao gồm các hoạt động: - Kỹ nghệ và mô hình hoá hệ thống thông tin: thiết lập yêu cầu cho mọi phần tử hệ thống và phân bổ một tập con các yêu cầu đó cho phần mềm.
- Phân tích yêu cầu phần mềm: tiến trình thu thập yêu cầu phần mềm như chức năng, hiệu năng, giao diện,…lập tư liệu thông qua việc thăm dò khách hàng. - Thiết kế: là một tiến trình tập trung vào bốn bước chính: cấu trúc dữ liệu, kiến trúc phần mềm, biểu diễn giao diện và chi tiết thuật toán. Tiến trình thiết kế mô tả các yêu cầu thành một biểu diễn phần mềm. - Sinh mã: Thiết kế phải được biên dịch sang ngôn ngữ máy.
- Kiểm định: Việc kiểm định được thực hiện sau khi mã hoá, tiến hành kiểm định phần mềm để xem xét các chức năng có đúng đặc tả hay không? hoặc để làm lộ ra các lỗi và đảm bảo dữ liệu vào có cung cấp đúng dữ liệu ra muốn có? - Hỗ trợ: Trong quá trình sử dụng phần mềm có thể có những thay đổi do khách quan hoặc chủ quan. Vì vậy, việc bảo trì phần mềm phải áp dụng lại các bước vòng đời nói trên. Mô hình bản mẫu Mô hình làm bản mẫu bắt đầu với việc thu thập yêu cầu. Người phát triển phần mềm xác định các mục tiêu tổng thể cho phần mềm thông qua khách hàng.
Sau đó thiết kế nhanh để đưa ra một bản mẫu với những yêu cầu cơ bản, người dùng đánh giá và bổ sung để làm mịn các yêu cầu và tiếp tục quá trình xây dựng và điều chỉnh bản mẫu để đạt được phần mềm đúng theo yêu cầu của khách hàng. Lắng nghe Xây dựng/điều khách hàng chỉnh bản mẫu Khách hàng sử dụng bản mẫu Hình 1. Mô hình làm bản mẫu LUAN VAN CHAT LUONG download : add luanvanchat@agmail. Mô hình RAD RAD là mô hình tiến trình phát triển phần mềm tăng dần nhấn mạnh vào chu kỳ phát triển cực ngắn.
Cách tiếp cận RAD bao gồm các pha sau đây: Tổ #3 Mô hình Tổ #2 hoá nghiệp vụ Mô hình Mô hình Tổ #1 hoá dữ liệu nghiệp vụ Mô hình Mô hình Mô hình xử lý hoá dữ liệu nghiệp vụ Sinh ứng Mô hình dụng Mô hình xử lý dữ liệu Kiểm định Sinh ứng và quay Mô hình dụng vòng xử lý Kiểm định Sinh ứng và quay dụng vòng Kiểm định và quay vòng Hình 1. Mô hình RAD 60 – 90 ngày - Mô hình hoá nghiệp vụ: luồng thông tin giữa các chức năng nghiệp vụ được mô hình hoá theo cách trả lời câu hỏi như: thông tin nào được sinh ra? ai sinh ra nó? Ai xử lý nó?. - Mô hình hoá dữ liệu: các thông tin được làm mịn thành tập các dữ liệu, các đặc trưng của từng sự vật được nhận diện và mối quan hệ giữa chúng được xác định. - Mô hình hoá xử lý: dữ liệu được biến đổi để đạt tới luồng thông tin cần cho việc thực hiện chức năng nghiệp vụ.
Các mô tả xử lý được tạo ra để bổ sung, sửa đổi, xoá bỏ hay tìm kiếm sự vật dữ liệu. LUAN VAN CHAT LUONG download : add luanvanchat@agmail.com -3- - Sinh ứng dụng: RAD làm việc để dùng lại các cấu phần chương trình hiện có hay tạo ra các cấu phần chương trình dùng lại được. - Kiểm định và quay vòng. Mô hình tiến trình phần mềm tiến hoá Phần mềm, giống như mọi hệ thống phức tạp khác, tiến hoá theo từng thời kỳ thời gian.
Các yêu cầu nghiệp vụ và sản phẩm thường thay đổi khi sự phát triển tiến hoá. Vì vậy, người phát triển phần mềm cần một mô hình tiến trình đã được thiết kế tường minh để phù hợp với sản phẩm tiến hoá theo thời gian. Các mô hình tiến hoá mang tính lặp. Chúng được đặc trưng theo cách thức tạo khả năng cho người phát triển phần mềm phát triển các phiên bản ngày một hoàn thiện và phù hợp với thời gian.
Mô hình tăng dần Mô hình tăng dần là tổ hợp các yếu tố của mô hình tuần tự tuyến tính và bản chất lặp của mô hình bản mẫu. Mô hình tăng dần áp dụng các trình tự tuyến tính theo kiểu so le khi thời gian lịch tiếp diễn. Mỗi trình tự tuyến tính lại tạo ra một “việc tăng” chuyển giao được của phần mềm. Kỹ nghệ hệ thống/ thông tin Phân Thiết Lập trình Kiểm định Vận hành Chuyển giao tích kế tăng 1 Tăng 2 Phân Thiết kế Lập trình Kiểm định Vận hành Chuyển giao tích tăng 2 Tăng 3 Phân Thiết kế Lập trình Kiểm định Vận hành Chuyển giao tích tăng 3 Tăng 4 Phân Thiết kế Lập trình Kiểm định Vận hành Chuyển tích giao tăng 4 Hình 1.
Mô hình tăng dần LUAN VAN CHAT LUONG download : add luanvanchat@agmail.com -4- Sử dụng mô hình tăng dần: lần tăng đầu thường là sản phẩm lõi (các yêu cầu cơ bản). Sản phẩm lõi được khách hàng dùng và đánh giá và lập bản kế hoạch cho lần tăng tiếp theo. Tiếp tục sửa đổi sản phẩm lõi dựa vào bản kế hoạch và chuyển giao các tính năng và chức năng phụ. Tiến trình được lặp lại với việc chuyển giao từng phần cho đến khi sản phẩm hoàn chỉnh được tạo ra.
Mô hình xoáy ốc Là mô hình tiến hoá cặp đôi bản chất lặp của mô hình bản mẫu với các khía cạnh hệ thống của mô hình trình tự tuyến tính. Cung cấp tiềm năng cho việc phát triển nhanh các phiên bản tăng dần của phần mềm. Trong mô hình xoáy ốc, phần mềm được phát triển thành từng chuỗi các lần đưa ra tăng dần. Mô hình xoáy ốc được chia thành sáu vùng nhiệm vụ sau đây: - Trao đổi với khách hàng.
- Lập kế hoạch. - Phân tích rủi ro. - Xây dựng và đưa ra. - Đánh giá của khách hàng.
Khi tiến trình tiến hoá bắt đầu, tổ kỹ nghệ phần mềm đi vòng xoáy ốc bắt đầu từ trung tâm. Mạch đầu tiên quanh xoáy ốc có thể làm phát sinh việc phát triển đặc tả sản phẩm. Các bước tiếp theo quanh xoáy ốc được dùng để phát triển bản mẫu và phát triển các phiên bản phức tạp dần thêm. Mỗi bước qua vùng lập kế hoạch lại làm nảy sinh việc điều chỉnh kế hoạch dự án.
Chi phí và lịch biểu được điều chỉnh dựa trên phản hồi được suy ra từ đánh giá của khách hàng. Mô hình phát triển tương tranh Mô hình tiến trình tương tranh có thể được biểu diễn như một chuỗi các hoạt động kỹ thuật chính, các nhiệm vụ và trạng thái liên kết của chúng. LUAN VAN CHAT LUONG download : add luanvanchat@agmail.com -5- Không Đã phát triển Hình 1. Một phần tử của mô Đợi thay đổi Đã xét duyệt hình tiến trình tương tranh Đã xét duyệt Vạch ranh giới Xong Mô hình tiến trình tương tranh định nghĩa ra một loạt các biến cố làm nảy sinh việc chuyển trạng thái nọ sang trạng thái kia của hoạt động kỹ nghệ phần mềm.
Chẳng hạn, trong các giai đoạn đầu của thiết kế, sự không nhất quán trong mô hình phân tích được làm lộ ra. Điều này sinh ra biến cố sửa mô hình phân tích chuyển hoạt động phân tích từ trạng thái đã làm sang trạng thái đợi thay đổi. CHẤT LƢỢNG PHẦN MỀM 1. Chất lƣợng phần mềm là gì? Chất lượng trong phần mềm máy tính hiện vẫn còn là một vấn đề còn nhiều tranh luận.
Trong một số trường hợp, nói tới chất lượng phần mềm là nói tới tính thực tiễn và tính thẩm mỹ của phần mềm. Ở đây, khái niệm này trả lời cho câu hỏi một chương trình máy tính thực thi một nhiệm vụ nào đó hiệu quả và có tính thẩm mỹ tới mức nào. Trong một ngữ cảnh khác, chất lượng phần mềm được hiểu là sự đáp ứng đến mức tối đa các yêu cầu đặt ra và không chứa lỗi. Trong cả hai trường hợp trên, có một loạt các vấn đề đặt ra cần giải quyết để đi đến một kết quả cuối cùng là phần mềm có chất lượng.
Lỗi phần mềm LUAN VAN CHAT LUONG download : add luanvanchat@agmail.com -6- Hiện nay, có rất nhiều định nghĩa khác nhau về lỗi phần mềm, nhưng tóm lại có thể phát biểu một cách tổng quát như sau: “Lỗi phần mềm là sự không khớp nhau giữa chương trình và đặc tả của nó”. Như vậy, chúng ta có thể thấy lỗi phần mềm xuất hiện dưới ba hình thức sau: - Sai: Sản phẩm được xây dựng khác với đặc tả.