CHƯƠNG 1: CƠ SỞ LÝ LUẬN VỀ HỆ THỐNG QUẢN LÝ BUG TRONG QUY TRÌNH KIỂM THỬ PHẦN MỀM 1.1 Những khái niệm cơ bản 1.1 Khái niệm chung Thông tin (Information) là các tin tức mà con người trao đổi với nhau, hay nói rộng hơn thông tin bao gồm những tri thức về các đối tượng. Hệ thống [1] (System) là tập hợp nhiều phần tử có các mối quan hệ ràng buộc lẫn nhau và cùng hoạt động hướng tới mục đích chung. Hệ thống thông tin (Information System) là một tập hợp và kết hợp của các phần cứng, phần mềm và các hệ mạng truyền thông được xây dựng và sử dụng để thu thập, tạo, tái tạo, phân phối và chia sẻ các dữ liệu, thông tin và tri thức nhằm phục vụ các mục tiêu của tổ chức. (Nguồn: Bài giảng Tổ chức HTTT thị trường và thương mại, Bộ môn CNTT, Trường ĐH Thương Mại) Hệ thống thông tin quản lý (MIS – Managament Information System) là một hệ thống tích hợp “Người – Máy” tạo ra và lưu trữ các thông tin giúp con người trong sản xuất, quản lý cũng như ra quyết định.
(Nguồn: Bài giảng HTTT kinh tế và quản lý, Bộ môn CNTT, Trường ĐH Thương Mại) Phần mềm máy tính hay còn được gọi tắt là phần mềm (software) là một tập hợp các câu lệnh hoặc chỉ thị được viết bằng 1 hoặc nhiều ngôn ngữ lập trình theo một trật tự xác định nhằm tạo ra một nhiệm vụ hay chức năng năng hoặc một vấn đề cụ thể nào đó.2 Khái niệm liên quan trực tiếp tới vấn đề nghiên cứu Kiểm thử phần mềm (Software Testing) là một hoạt động kiểm tra được thực hiện để cung cấp cho các bên liên quan thông tin về chất lượng sản phẩm hoặc dịch vụ đang được kiểm tra. Kiểm thử phần mềm cũng có thể cung cấp một cái nhìn khách quan, độc lập về phần mềm để cho phép các doanh nghiệp đánh giá và nắm được rủi ro khi triển khai phần mềm. Các kỹ thuật kiểm tra bao gồm quá trình thực hiện chương trình hoặc ứng dụng với mục đích tìm lỗi phần mềm và để xác minh rằng sản phẩm phần mềm phù hợp sử dùng. 4 Luan van Bug là một khiếm khuyết trong một thành phần hoặc hệ thống mà nó có thể làm cho thành phần hoặc hệ thống này không thực hiện đúng chức năng, yêu cầu của nó.
Có thể là lỗi giao diện, lỗi chức năng, lỗi nghiệp vụ. Testcase: Được dịch ra tiếng việt là ca kiểm thử. Là một dạng thức mô tả dữ liệu đầu vào, một số hành động (hành vi) hoặc sự kiện và một kết quả mong đợi để xác định chức năng của một ứng dụng phần mềm hoạt động đúng hay không. Quy trình kiểm thử phần mềm là một dãy các hành động, con người và hệ thống liên quan để làm ra một sản phẩm, dịch vụ theo các lặp đi lặp lại.
Quy trình kiểm thử là một giai đoạn trong chu trình phát triển phần mềm. Giai đoạn này được thực hiện theo một trình tự nhất định nhằm đảm bảo phần mềm đi đúng hướng theo yêu cầu của người dùng. Đặc tả yêu cầu phần mềm: Phần mềm được viết để thực hiện các nhu cầu của khách hàng. Các nhu cầu của khách hàng được thu thập, phân tích đánh giá và là cơ sở để quyết định chính xác các đặc trưng cần thiết mà sản phẩm phần mềm cần phải có.
Dựa trên yêu cầu của khách hàng và các yêu cầu bắt buộc khác, đặc tả được xây dựng để miêu tả chính xác các yêu cầu mà sản phẩm phần mềm cần phải đáp ứng. Tài liệu đặc tả là cơ sở để đội ngũ phát triển phần mềm xây dựng sản phẩm phần mềm. Chất lượng và độ tin cậy của phần mềm: Theo từ điển, chất lượng của một sản phẩm được thể hiện bằng các đặc trưng phù hợp với đặc tả của nó. Theo cách hiểu này, chất lượng của một sản phẩm phần mềm là sự đáp ứng các yêu cầu về chức năng, sự hoàn thiện và việc tuân thủ nghiêm ngặt trong đặc tả, cùng các đặc trưng mong chờ từ mọi sản phẩm phần mềm chuyên nghiệp.
Chất lượng phần mềm đặc trưng cho “độ tốt” của phần mềm và gồm các yếu tố về chất lượng như: tính đúng đắn (hành vi đúng như đặc tả), tính hiệu quả (tiết kiệm thời gian và tiền bạc), độ tin cậy, dễ học,dễ sử dụng…Như vậy, độ tin cậy chỉ là yếu tố để đánh giá chất lượng của một sản phẩm phần mềm. Độ tin cậy của phần mềm là xác suất để phần mềm chạy không có thất bại trong một khoảng thời gian nhất định. Nó được xem là một yếu tố quan trọng của chất lượng phần mềm.2 Cơ sở lý luận liên quan đến hệ thống quản lý bug trong quy trình kiểm thử 1.1 Kiểm thử phần mềm 1.1 Tổng quan Kiểm thử phần mềm là một phần của tiến trình phát triển phần mềm. Nó là tiến trình đánh giá một hệ thống hoặc một thành phần của hệ thống bằng tay hoặc tự động, nhằm xác định lại sự thỏa mãn các yêu cầu của phần mềm.
Hình II 1: Mô hình vòng đời tổng quát phát triển một hệ thống phần mềm Mô tả vòng đời tổng quát phát triển một hệ thống phần mềm: - Khi có yêu cầu của khách hàng (yêu cầu của bài toán) rõ ràng thì nhân viên tiến hành phân tích, đặc tả yêu cầu rồi gửi cho bộ phận thiết kế. - Sau khi nhận được tài liệu đặc tả, bộ phận thiết kế tiến hành thiết kế giao diện, thiết kế dữ liệu cho hệ thống và bàn giao cho bộ phận lập trình. - Bộ phận lập trình tiến hành lập trình sau khi nhận được giao diện và dữ liệu. - Phần mềm được hoàn thành thì bộ phận kiểm thử tiến hành kiểm thử phần mềm và trao đổi với bộ phận lập trình.
- Cuối cùng, khi việc kiểm thử được hoàn tất thì tiến hành cài đặt, vận hành và bảo trì.2 Mục đích của kiểm thử phần mềm Theo Deutsch [4]: “Phát triển hệ thống phần mềm gồm rất nhiều hoạt động sản xuất và nguy cơ lỗi là rất lớn. Lỗi có thể xảy ra ngay lúc khởi đầu tiến trình, hay trong các giai đoạn thiết kế hoặc phát triển sau này…” Kiểm thử phần mềm nhằm đảm bảo chất lượng phần mềm. Theo Glen Myers [4]: Kiểm thử là tiến trình thực thi để tìm ra lỗi. - Một trường hợp kiểm thử là trường hợp có xác suất cao để tìm ra lỗi chưa biểu hiện.
6 Luan van - Kiểm thử thành công khi phát hiện ra lỗi. Những mục đích trên đi ngược lại với quan điểm thông thường “kiểm thử thành công là kiểm thử không tìm ra lỗi nào”. Nếu kiểm thử không phát hiện ra lỗi thì ta sẽ nghĩ rằng cấu hình kiểm thử này chưa đúng và lỗi vẫn còn tiềm ẩn trong phần mềm. Nếu lỗi này được phát hiển bởi người dùng thì chi phí cho việc bảo trì, xác địn lỗi có thể gấp rất nhiều lần chi phí tìm lỗi trong quá trình phát triển.
Vậy kiểm thử thành công là kiểm thử tìm ra lỗi. Chúng ta cần nhớ rằng “Kiểm thử không thể chứng được việc không có khiếm khuyết, nó chỉ có thể chứng minh rằng khiếm khuyến phần mềm hiện hữu.3 Các giai đoạn kiểm thử phần mềm Trong quá trình kiểm thử gồm 4 giai đoạn: - Phác họa môi trường của phần mềm: Tìm xem có khoảng bao nhiêu trường hợp cần kiểm thử, là những trường hợp nào. - Tìm kịch bản kiểm thử: Mỗi kịch bản sẽ có thời gian và chi phí cần thiết. Chỉ chọn một số kịch bản tiêu biểu để dùng cho kế hoạch kiểm thử.
- Thực thi và đánh giá kịch bản kiểm thử: Thực thi kịch bản kiểm thử: Để kết luận kết quả kiểm thử là đúng hay sai, người kiểm thử chuyển nó thành hình thức có thể thực thi được bằng cách thực hiện lại các thao tác của người dùng dựa trên kịch bản kiểm thử đó. Đánh giá kịch bản kiểm thử: Đánh giá phải dựa trên kết quả thực thi của phần mềm, kết quả thực thi kịch bản kiểm thử, kết quả mong muốn theo bản đặc tả yêu cầu. Bản đặc tả phải được đảm bảo đúng. Người kiểm thử sẽ so sánh kết quả thực thi và kết quả mong muốn có gì sai khác không - Đo lường sự tiến bộ của phần mềm sau khi đã kiểm thử: Đáng giá tiến trình kiểm thử dựa trên độ đo về kết quả kiểm thử.4 Kiểm thử trong các giai đoạn phát triển phần mềm Chu trình kiểm thử: 1.
Phân tích yêu cầu: Quá trình kiểm thử nên được bắt đầu từ giai đoạn yêu cầu của phần mềm. Phân tích thiết kế: Trong suốt giai đoạn thiết kế, nhóm kiểm thử nên làm việc với nhóm phát triển để hiểu rõ cách thiết kế nhằm kiểm thử dễ dàng và sớm hơn. Lên kế hoạch kiểm thử. Trình bày kiểm thử: Thủ tục kiểm thử, kịch bản kiểm thử, những trường hợp kiểm thử, những tập lệnh kiểm thử để sử dụng trong quá trình kiểm thử.
Tiến hành kiểm thử: Những nhà kiểm thử tiến hành thực thi các trường hợp kiểm thử theo bản kế hoạch đã lập ra và thông báo tất cả lỗi tìm được cho nhà phát triển. Thông báo kết quả kiểm thử: Khi quá trình kiểm thử thành công, người kiểm thử thông báo kiểm thử. Không phải tất cả các lỗi và khuyết điểm đều phải được sửa chữa bởi nhóm phát triển phần mềm. Một số khuyết điểm có thể do cấu hình kiểm thử chưa phù hợp với môi trường phần mềm.
Một số lỗi khác có thể đợi để sửa ở phiên bản mới của phần mềm hoặc những thiếu sót có thể được người dùng chấp nhận. Nhóm phát triển có thể bỏ qua những lỗi mà họ cho rằng nó ảnh hưởng không đáng kể đến chương trình. a, Kiểm thử trong giai đoạn đặc tả yêu cầu Kiểm thử yêu cầu hệ thống Mục đích của kiểm thử yêu cầu hệ thống là: - Đảm bảo cấu hình phần cứng, hệ điều hành phù hợp với phần mềm cần kiểm thử. - Chắc chắn rằng mọi chức năng hệ thống phần mềm đều thực thi tốt.
- Đảm bảo các cấu hình trong hệ thống phần mềm đều được nhận ra. - Kiểm chứng sự chính xác của cấu trúc hệ thống phần mềm. - Đảm bảo rằng số lượng các yêu cầu và số lượng thuộc tính của yêu cầu theo đúng lý thuyết. - Đảm bảo rằng những yêu cầu có thể thực hiện được.
Kiểm thử yêu cầu phần mềm Kiểm thử yêu cầu phần mềm là kiểm tra chi tiết các yêu cầu tương ứng với những chức năng của phần mềm. Mục đích: - Xác nhận đã hoàn thành. - Đảm bảo rằng bản đặc tả yêu cầu đáng tin cậy, có thể duy trì được, khả thi và chính xác.