Nguyên tắc chi phí hiệu quả:

Một phần của tài liệu CÂU HỎI ÔN TẬP KỸ NGHỆ PHẦN MỀM NÂNG CAO (Trang 59 - 63)

- Triển khai SQA có những vấn đề sau đây:

+ Khó thiết lập trong một tổ chức nhỏ: vì thiếu nguồn lực để thực hiện các hoạt động cần thiết mà hiện chưa có.

+ Cần sự thay đổi có tính văn hoá: nên chẳng bao giờ dễ dàng thực hiện + Tốn không ít công sức và tiền của

- SQA có những lợi ích sau đây:

+ Phần mềm có ít các khiếm khuyết tiềm ẩn hơn và do đó mất ít công sức và thời gian kiểm thử và bảo trì.

+ Độ tin cậy cao hơn và do đó khách hàng thoả mãn hơn + Giảm phí tổn bảo trì

+ Giảm phí tổn tổng thể toàn bộ vòng đời của phần mềm

- Nguyên tắc chi phí hiệu quả:

Ở mức cơ bản SQA được xem là hiệu quả về chi phí nếu: C3 > C1 + C2

Ở đây:

+ C3 là chi phí từ các sai do không có SQA + C1 là chi phí cho SQA của chương trình

3. Kiểm thử phần mềm

3.1. Khái niệm về kiểm thử

Câu 37. Tại sao phải kiểm thử phần mềm? Mục tiêu kiểm thử là gì? Từ đó có quan niệm sai gì về kiểm thử phần mềm?

Tại sao phải kiểm thử phần mềm?

- Kiểm thử phần mềm là yếu tố quyết định của SQA và khâu điển hình của rà soát đặc tả thiết kế và lập mã.

[Deutsch] Việc phát triển hệ thống phần mềm bao gồm hàng loạt các hoạt động sản xuất, nơi những cơ hội cho việc chen sai lầm của con người vào là rất lớn. Lỗi có thế bắt đầu xuất hiện tại chính lúc khởi đầu tiến trình nơi các mục tiêu.. có thể được xác định sai hay không hoàn chỉnh, cũng như các giai đoạn thiết kế và phát triển về sau.

- Theo Glen Mayers: Kiểm thử phần mềm là quá trình vận hành chương trình để tìm ra lỗi.

- Vấn đề: Cần vận hành như thế nào để hiệu suất tìm ra lỗi là cao nhất? và chi phí (thời gian, công sức) là ít nhất?

Lý do cần kiểm thử phần mềm:

 Muốn nhìn thấy phần mềm như là một phần tử của hệ thống hoạt động (xem sản

phầm)

 Hạn chế chi phí phải trả cho các thất bại do lỗi gây ra sau này (hiệu quả)

 Có kế hoạch tốt nâng cao chất lượng cho suốt quá trình phát triển (giải pháp)

Tầm quan trọng của kiểm thử phần mềm:

 Chi phí của kiểm thử chiếm:

40% tổng công sức phát triển ≥ 30% tổng thời gian phát triển

 Với phần mềm ảnh hưởng tới sinh mạng chi phí có thể gấp từ 3 đến 5 lần tổng

chi phí khác cộng lại.

- Kiểm thử tốt sẽ giúp: Giảm chi phí phát triển; Tăng độ tin cậy của sản phẩm phần mềm.

Mục tiêu kiểm thử phần mềm:

- Mục tiêu trước mắt: Cố gắng tạo ra các ca kiểm thử để chỉ ra lỗi của phần mềm

được xây dựng (tức là “đánh đổ” phần mềm). Nghe có vẻ mang tính “phá hoại”  Dễ

gây ra những vấn đề về tâm lý.

- Mục tiêu cuối cùng: có một chương trình tốt, chi phí ít  xây dựng.

Người ta thường có những quan niệm sai gì về kiểm thử phần mềm?

- Người phát triển không tham gia kiểm thử

- Phần mềm được công bố một cách rộng rãi để người lạ kiểm thử nó một cách tàn

nhẫn

- Người kiểm thử chỉ quan tâm khi kiểm bắt đầu

- Kiểm thử có thể chứng minh được phần mềm không có khiếm khuyết - Phép kiểm thử thành công là kiểm thử không tìm ra lỗi nào

- Chỉ cần kiểm thử một lần

Kiểm thử phần mềm là một phần của hoạt động lớn hơn là “xác minh (Verification) và thẩm định (Validation)”

Verification: “Are we building the product right?” Validation: “Are we building the right product?”

+ Xác minh: là một tập hợp các hoạt động để đảm bảo rằng phần mềm thực hiện đúng chức năng đã được đặc tả.

+ Thẩm đinh: là một tập các hoạt động để đảm bảo rằng phần mềm đã được đáp ứng đúng yêu cầu của khách hàng.

Câu 38. Thế nào là một ca kiểm thử tốt? ca kiểm thử thành công? Lợi ích phụ kiểm thử là gì?

 Ca kiểm thử tốt là ca kiểm thử có xác suất cao trong việc tìm ra một lỗi chưa

được phát hiện.

 Một ca kiểm thử thắng lợi làm lộ ít nhất một lỗi còn chưa được phát hiện.

Một ca kiểm thử thắng lợi làm lộ ra khiếm khuyết, đồng thời mang lại các lợi ích

phụ:

+ Thuyết minh rằng các chức năng phần mềm tương ứng với đặc tả (xác minh)

+ Yêu cầu thực thi là phù hợp (thẩm định)

+ Cung cấp thêm các chỉ số độ tin cậy và chỉ số về chất lượng phần mềm nói chung (thẩm định)

“Kiểm thử không thể chứng minh được việc không có khiếm khuyết, nó chỉ có thể chứng minh rằng khiếm khuyết phần mềm hiện hữu”

Câu 39. Biểu đồ dòng thông tin kiểm thử mô tả cái gì? Vẽ biểu đồ của nó?

Biểu đồ dòng thông tin kiểm thử tuân theo hình mẫu được mô tả như sau:

Hai lớp được cung cấp cho tiến trình kiểm thử:

(1) Cấu hình phần mềm: Bản Đặc tả yêu cầu phần mềm, bản Đặc tả thiết kế, chương trình gốc

(2) Cấu hình kiểm thử: Kế hoạch và thủ tục kiểm thử, các công cụ kiểm thử dự định

dùng, các ca kiểm thử cùng kết quả dự kiến.

Sơ đồ dòng thông tin của tiến trình kiểm thử:

Cấu hình phần mềm Cấu hình kiểm thử

Kiểm thử Đánh giá Gỡ lỗi

Xây dựngMô hình độ tin cậy Phần mềm chỉnh sửa

Độ tin cậy dự đoán

Kiểm thử được tiến hành và tất cả các kết quả được đánh giá bằng cách so sánh với kết quả dự kiến. Khi phát hiện lỗi, việc gỡ lỗi bắt đầu được tiến hành.

Tiến trình gỡ lỗi thường không dự kiến được thời gian nên việc lập lịch kiểm thử trở nên khó khăn.Ví dụ: 1 lỗi chỉ ra sự sai biệt độ 0.01% giữa kết quả trông đợi và thực tại có thể mất 1 giờ, 1 ngày hay 1 tháng để chuẩn đoán và sửa chữa.

Khi các kết quả kiểm thử được thu thập và đánh giá thì chất lượng và độ tin cậy phần mềm dần được khẳng định. Nếu hay gặp phải lỗi nghiêm trọng yêu cầu sửa đổi thết kế thì chất lượng và độ tin cậy là đáng ngờ và cần kiểm thử thêm.

Mặt khác, nếu các chức năng phần mềm dường như làm việc đúng và lỗi gặp phải là dễ sửa thì có thể rút ra một trong hai kết luận:

(1) Chất lượng và độ tin cậy phần mềm chấp nhận được

(2) Kiểm thử không tương xứng để làm lộ ra những lỗi nghiêm trọng.

Nếu việc kiểm thử không làm lộ ra lỗi nào thì có thể hoài nghi rằng cấu hình kiểm thử chưa được cân nhắc đúng mức, các lỗi vẫn còn ẩn núp trong phần mềm và sẽ bị phát hiện bởi người dùng.

Câu 40. Nêu các đối tượng, các phương pháp kiểm thử phần mềm? Mỗi phương pháp đó thường được sử dụng vào giai đọan nào của quá trình phát triển?

Đối tượng và phương pháp kiểm thử

Loại Đơn vị Tích hợp Thẩm định Hệ thống Đối tượng Mã Thiết kế Yêu cầu Toàn hệ thống

Phương pháp Hộp trắng Hộp đen Hộp đen Mô hình

Kỹ thuật

Đồ thị dòng, ma trận k.thử phân

nhánh Cuống, bộ lái

Phân hoạch, giá trị biên, đồ thị

nhân quả Mô phỏng

Mỗi phương pháp đó thường được sử dụng vào giai đoạn nào của quá trình phát triển:

- Hộp trắng: sử dụng trong giai đoạn Mã hóa - Hộp trắng và đen: thiết kế

- Hộp đen: Yêu cầu

- Mô hình: Kĩ nghệ hệ thống

Câu 41. Một ca kiểm thử là cái gì? Mục tiêu thiết kế ca kiểm thử? Các bước để thiết kế một ca kiểm thử?

Thiết kế ca kiểm thử thường với mong muốn tìm ra được nhiều sai nhất với nỗ lực và thời gian là nhỏ nhất.

Trong các thập kỷ 80-90 đã nghiên cứu nhiều loại phương pháp thiết kế ca kiểm thử Các phương pháp tốt phải cho một cơ chế: bảo đảm tính đầy đủ (không sót phần nào) và cung cấp khả năng thật sự phát hiện được các sai trong phần mềm.

Có thể kiểm thử theo một trong hai kỹ thuật sau:

+ Kiểm thử hộp đen (khi biết chức năng xác định mà một sản phẩm đã được thiết kế để thực hiện thì có thể tiến hành kiểm thử xem từng chức năng có vận hành đúng hay không?)

+ Kiểm thử hộp trắng (biết cách làm việc bên trong của sản phẩm, tiến hành kiểm thử để đảm bảo rằng “tất cả các bánh răng đều ăn khớp”, tức là đảm bảo rằng sự vận hành bên trong thực hiện tương ứng với đặc tả và tất cả các thành phần bên trong đã được thử một cách thích hợp)

Một phần của tài liệu CÂU HỎI ÔN TẬP KỸ NGHỆ PHẦN MỀM NÂNG CAO (Trang 59 - 63)

Tải bản đầy đủ (DOCX)

(90 trang)
w