Giới thiệu xác minh và thẩm định phần mềm, phân biệt sự khác nhau giữa chúng.
Mô tả quá trình kiểm tra chương trình và vai trò cuả nó trong V & V.
Tìm hiểu kĩ thuật phân tích tĩnh
Mô tả quá trình phát triển phần mềm Cleanroom
Xác minh:
“Chúng ta có tạo ra sản phẩm đúng hay không”
Phần mềm phải phù hợp với đặc tả của nó
“Chúng ta có tạo ra đúng sản phẩm hay không”
Phần mềm phải đáp ứng đầy đủ yêu cầu của người sử dụng
45 trang |
Chia sẻ: candy98 | Lượt xem: 834 | Lượt tải: 0
Bạn đang xem trước 20 trang tài liệu Bài tập lớn môn Đảm bảo chất lượng phần mềm - Chuyên đề: Xác minh và thẩm định - Nhóm 9 - ĐH Tôn Đức Thắng, để xem tài liệu hoàn chỉnh bạn click vào nút DOWNLOAD ở trên
ĐẢM BẢO CHẤT LƯỢNG PHẦN MỀMVERIFICATION AND VALIDATION GVHD: Lê Mậu LongĐẠI HỌC TÔN ĐỨC THẮNG_ KHOA CNTTNhóm 9(Xác minh và thẩm định)Thành viên nhómĐặng Thanh Hiếu 070109TNguyễn Thị Ngọc Hân 070079THà Thị Kim Phượng 070052TTrần Anh Hào 070088TPhạm Thị Hà 070085TNhóm 9Nội dung trình bàyGiới thiệu xác minh và thẩm định phần mềm, phân biệt sự khác nhau giữa chúng. Mô tả quá trình kiểm tra chương trình và vai trò cuả nó trong V & V. Tìm hiểu kĩ thuật phân tích tĩnh Mô tả quá trình phát triển phần mềm CleanroomNhóm 9Xác minh và thẩm địnhXác minh:“Chúng ta có tạo ra sản phẩm đúng hay không” Phần mềm phải phù hợp với đặc tả của nó“Chúng ta có tạo ra đúng sản phẩm hay không”Phần mềm phải đáp ứng đầy đủ yêu cầu của người sử dụng Nhóm 9Quá trình V & VLà quá trình xoay vòng. V & V phải được ứng dụng ở mỗi bước trong các tiến trình phần mềm.Có 2 nội dung chính:Phát hiện ra những khuyết điểm trong hệ thốngƯớc lượng được hệ thống có hữu ích và tiện lợi để sẵn sàng dùng hay không.Nhóm 9Mục đích của V & VXác minh và thẩm định phải tạo được sự tin tưởng rằng phần mềm phải phù hợp với mục đích.Điều này không có nghĩa là nó hoàn toàn không có khuyết điểmHơn nữa, nó phải đáp ứng được đầy đủ các chức năng dự định và các loại chức năng sẽ quyết định mức độ tin cậy cần thiết.Nhóm 9Sự tin cậy V & V Phụ thuộc vào mục đích hệ thống, sự mong đợi của người sử dụng và môi trường tiếp thịChức năng phần mềm: Mức độ tin cậy được phụ thuộc vào sự đánh giá phần mềm được tổ chức như thế nàoSự mong đợi của người sử dụng: Người sử dụng ít kì vọng các loại phần mềmMôi trường tiếp thị: Đưa sản phẩm ra thị trường sớm thì quan trọng hơn là tìm ra những khuyết điểm chương trìnhNhóm 9Xác minh tĩnh và động Kiểm tra phần mềm:Liên quan đến phân tích các biểu hiện tĩnh của hệ thống để phát hiện vấn đề(xác minh tĩnh)Liên quan đến việc ứng dụng và nhận xét các phản hồi sản phẩm.Nhóm 9Xác minh tĩnh và động Nhóm 9Kiểm thử chương trình Nhóm 9Có thể phát hiện ra những lỗi tiềm ẩn Kĩ thuật thẩm định cho yêu cầu phi chức năng thì khi chương trình được thực thi nó có thể biết được cách hoạt động.Nên sử dụng kết hợp các xác minh tĩnh để cung cấp đầy đủ các chức năng của V&VCác loại kiểm thử Nhóm 9Kiểm thử các khuyết điểm: Những phương thức kiểm tra được thiết kế để phát hiện ra những khuyết điểm của hệ thốngMột phương thức kiểm tra khuyết điểm thành công là tìm thấy những khuyết điểm tồn tại trong hệ thốngKiểm thử thẩm định:Dùng để chỉ ra rằng các phần mềm đáp ứng được những yêu cầuPhương thức kiểm tra thành công để chỉ ra rằng những yêu cầu được thực thi chính xác.Kiểm thử và sửa lỗiNhóm 9Kiểm thử khuyết điểm và sửa lỗi là những quá trình riêng biệtXác minh và thẩm định là liên quan đến việc chứng minh sự tồn tại những khuyết điểm trong chương trình.Sửa lỗi là liên quan đến việc xác định vị trí và sửa lỗi.Sửa lỗi đòi hỏi phải thiết lập một giả thuyết về hoạt động chương trình sau đó kiểm thử những giả thiết này để tìm thấy lỗi hệ thốngQúa trình sửa lỗi Nhóm 9Kế hoạch V & V Nhóm 9Thẩm định và xác minh là 1 tiến trình tốn kém. Kế hoạch an toàn là cần phải xem xét kĩ, kiểm tra và hạn chế chi phí dành cho V & V. Cần sớm có 1 kế hoạch thẩm định và xác minh hệ thống trong các bước tiến trình.Cần quyết định dựa trên sự cân bằng giữa thẩm định và xác minh động và tĩnhKiểm tra để xác nhận sự tương thích giữa chương trình với phần thiết kế và đặc tả của nó.Sự phát triển của tiến trình chữ V Nhóm 93 Kế hoạch kiểm thử liên kết giữa thành viên phát triển dự án và lập trìnhcấu trúc của kế hoạch kiểm thử phần mềmNhóm 9Tiến trình kiểm thửYêu cầu truy xuất nguồn gốc.Danh mục kiểm thử.Sao lưu lại những thủ tục kiểm thử..Các yêu cầu về phần cứng và phần mềm.Những hạn chế.Kế hoạch kiểm thử phần mềm Nhóm 9 Tiến trình kiểm thửMô tả về các giai đoạn chính của quá trình thử nghiệm. Khả năng lần vết theo yêu cầuNgười dùng quan tâm nhất trong hệ thống đáp ứng yêu cầu của mình và cần phải lên kế hoạch để tất cả các yêu cầu được thử nghiệm riêng lẻ các thành phần kiểm thử Các sản phẩm của quá trình phần mềm nên được kiểm thử theo quy địnhLịch kiểm thửthủ tục ghi nhận kiểm thử.Không phải đơn giản là chạy để kiểm thử. Tất cả các kết quả kiểm thử phải được ghi lại 1 cách hệ thống, nó phải được kiểm toán thật tốt các quá trình kiểm thử để kiểm tra xem nó đã được thực hiện đúng hay không. Các yêu cầu về phần cứng và phần mềnNhững công cụ phần mền và ước tính phần cứng phải sử dụng Những ràng buộcHạn chế ảnh hưởng đến quá trình kiểm thử chẳng hạn như thiếu nhân viên nên được dự kiến.kiểm tra phần mềm Nhóm 9 Kiểm tra phần mềm là một quá trình thẩm định và xác minh tĩnh, trong đó một phần mềm được xem xét để tìm ra các lỗi, những bỏ xót và bất thường. Khi kiểm tra hệ thống, bạn sử dụng kiến thức của hệ thống, ứng dụng của nó và ngôn ngữ lập trình hay mô hình thiết kế để phát hiện lỗi.Có 3 đặc điểm chính khi kiểm thửNhóm 9Vì kiểm tra là một quá trình tĩnh, bạn không phải quan tâm đến sự tương tác giữa các sai sót. do đó, một buổi kiểm tra duy nhất có thể phát hiện ra nhiều sai sót trong hệ thống.Phiên bản không đầy đủ của một hệ thống có thể được kiểm tra mà không có thêm chi phí.kiểm tra cũng có thể xem xét các thuộc tính chất lượng rộng lớn hơn của một chương trình như phù hợp với tính di động, tiêu chuẩn và bảo trì.Kiểm tra và kiểm thửNhóm 9Đánh giá và thử nghiệm từng có lợi thế và bất lợi và cần được sử dụng cùng nhau trong quá trình xác minh và thẩm địnhSelby and Basili ( Selby, et al., 198.7) thực nghiệm so sánh kiểm tra hiệu quả và ít tốn kém hơn so với kiểm thử trong việc phát hiện lỗi chương trình. Một trong những sử dụng hiệu quả nhất của kiểm tra là xem xét các trường hợp kiểm thử cho một hệ thống. bạn có thể bắt đầu xác minh và thẩm định hệ thống với kiểm tra sớm trong quá trình phát triển, nhưng một khi hệ thống được tích hợp, bạn cần kiểm tra để kiểm tra giao diện chức năng của nó và chức năng của hệ thống là những gì mà chủ sở hữu của hệ thống thực sự muốnKiểm tra chương trìnhNhóm 9Cần một tài liệu chính thức để hỗ trợ các kế hoạch của quá trình kiểm tra.Khuyết điểm có thể là các lỗi logic, dị thường trong mã có thể chỉ ra một tình trạng sai lệch hoặc không tuân thủ các tiêu chuẩn tổ chức, dự án.Quá trình kiểm traNhóm 9Thủ tục kiểm traNhóm 9Trình bày tổng quan về hệ thống với đội kiểm tra.Tài liệu liên quan và mã chương trình được giao cho đội kiểm tra trước.Kiểm tra và phát hiện các lỗi ghi nhận.Sửa chữa các lỗi được phát hiện.Kiểm tra lại lần nữa.Vai trò các thành viênNhóm 9Các lưu ý trong kiểm traNhóm 9Việc kiểm tra không nên quá 2 giờ và chủ yếu tập trung vào các sai sót, không phù hợp tiêu chuẩn và lập trình kém chất lượng.Đội kiểm tra không nên đề nghị để sữa các khuyết điểm, không nên khuyên thay đỗi thành phần khác.Sau kiểm tra, tác giả chương trình nên thay đổi nó để sửa chữa những vấn đề đã xác định.Bạn cần bản danh sách khác nhau cho các ngôn ngữ lập trình khác nhau, vì mỗi ngôn ngữ có lỗi của riêng đặc trưng của nóXem xét kiểm traNhóm 9Xem xét kiểm traNhóm 9Xem xét kiểm traNhóm 9Tốc độ kiểm traNhóm 9Thời gian cần thiết cho một cuộc kiểm tra và số lượng code có thể được bảo vệ tùy thuộc vào kinh nghiệm của đội kiểm tra, ngôn ngữ lập trình và lĩnh vực ứng dụng.Các nhân viên kiểm tra mất khoảng một giờ và mỗi thành viên trong nhóm dành 1-2 giờ chuẩn bị cho việc kiểm tra.phân tích tĩnh tự độngNhóm 9Phân tích tĩnh là những công cụ phần mềm quét văn bản mã nguồn của một chương trình và phát hiện lỗi có thể và dị thường.Chúng phát hiện câu lệnh lỗi theo khuôn định sẵn nhằm mục đích là để thu hút sự chú ý của một kiểm tra viên đến dị thường trong chương trình.phân tích tĩnh tự độngNhóm 9Định dạng lỗi thường gặpSự kiểm tra phân tích tĩnhLỗi dữ liệuNhững biến được dùng trước khi khởi động .Những biến đã được khai báo nhưng không được sử dụngNhững biến được gán 2 lần nhưng không được sử dụng giữa 2 thao tácMảng tồn tại giới hạn những sự vi phạmNhững biến không được khai báoLỗi điều khiểnNhững đoạn mã không thể ảnh hưởng đếnNhững nhánh không chịu ảnh hưởng bởi điều kiện của vòng lặpLỗi xuất /nhậpNhững biến xuất 2 lần mà không xảy ra giữa những thao tác Lỗi giao diệnNhững kiểu tham số không phù hợpSố lượng tham số không phù hợpKhông sử dụng kết quả của các hàm chức năngNhững hàm và thủ tục không được gọiLỗi quản lý bộ nhớNhững con trỏ không được xác địnhChỉ số con trỏCác giai đoạn phân tích tĩnhNhóm 9Sự phân tích dòng điều khiển:Kiểm tra những vòng lặp với nhiều kiểu xuất và nhập,tìm thấy những đoạn code không thể truy cậpPhân tích cách sử dụng dữ liệu: phát hiện ra những biến được sử dụng mà không khởi động ,những biến mà được viết 2 lần mà không có thao tác xen giữa và những biến được khai báo nhưng không sử dụng .Phân tích giao diện:kiểm tra tính nhất quán của những khai báo thông thường và khai báo thủ tục cũng như cách sử dụng của chúng. Phân tích luồng thông tin:Xác định sự phụ thuộc của các biến đầu ra .Nó không phát hiện ra những bất thường mà đưa ra những thông tin cho việc kiểm tra code và kiểm duyệt.Phân tích đường dẫn: Xác định các đường dẫn thông qua chương trình và đưa ra các câu lệnh đã thực hiện trong đường dẫn đó.Điều này có thể hữu ích trong quá trình xem xét .Cả hai giai đoạn này tạo ra khối lượng lớn thông tin .Chúng phải được sử dụng cẩn thận.Phân tích tĩnh LINTNhóm 9138% more lint_ex.c#includePrintarray(Anarray)Int Anarray;{ ptintf(“%d”,Anarray);}main(){ int Anarray[5] ; int i ; char c; printarray(Anarray,i,c); printarray(Anarray);}139% cc lint_ex.c140% lint lint_ex.cLint_ex.c(10) :cảnh báo :c có lẽ được dùng trước khi thiết lậpLint_ex.c(10) :cảnh báo :i có lẽ được dùng trước khi thiết lậpPrintarray :biến# của mảngPrintarray,mảng 1 được dùng không nhất quán lint_ex.c(4) ::lint_ex.c(10)Printarray,mảng 1 được dùng không nhất quán lint_ex.c(4) ::lint_ex.c(11)Giá trị trả về của printf luôn bị gạt bỏViệc sử dụng phân tích tĩnhNhóm 9Thật sự có ích khi sử dụng ngôn ngữ định kiểu yếu như C,trình biên dich có thể phát hiện nhiều lỗi.Ít hiệu quả hơn đối với ngôn ngữ đã kiểm tra kiểu mạnh như Java,vốn đã phát hiện nhiều lỗi trong quá trình biên dịch.Thẩm định và phương pháp hình thứcNhóm 9phương pháp hình thức có thể được sử dụng khi một đặc tả toán học của hệ thống được đưa ra.Là kĩ thuật xác minh tĩnh cuối cùngChúng liên quan đến phân tích toán học một cách chi tiết của đặc tả và có thể phát triển các đối số chính thức mà một chương trình phù hợp với đặc tả toán học của nó.Những lập luận của những phương pháp hình thứcĐưa ra một đặc tả toán học đòi hỏi phải phân tích chi tiết về các yêu cầu và điều này có thể phát hiện ra lỗi.Khi chương trình được kiểm tra cùng với các đặc tả,chúng có thể phát hiện những lỗi thực thi trước khi kiểm traLập luận chống lại phương pháp hình thức Các chuyên gia trong lĩnh vực ứng dụng không thể hiểu được những kí hiệu chuyên dụng.Rất tôn kém để phát triển một đăc tả và thậm chí đắt hơn nữa để thấy rằng một chương trình đáp ứng đủ các đặc tả.Nó có lẽ rẻ hơn các kĩ thuật V&V khác nhưng vẫn đạt được cùng mức độ tin cậy trong chương trìnhNhóm 9Phát triển phần mềm CleanroomTên gọi này có nguồn gốc từ quá trình “cleanroom" trong chế tạo bán dẫn. Thực tế là tránh lỗi hơn là loại bỏ khiếm khuyết.Tiến trình phát triển phần mềm này dựa trên:Sự phát triển gia tăngĐặc tả chính thứcXác minh tĩnh có sử dụng những lập luận chính xácKiểm thử tĩnh để quyết định độ tin cậy của chương trình.Nhóm 9Phát triển phần mềm CleanroomNhóm 9Đặc điểm của quá trình CleanroomCác hình thức đặc tả sử dụng mô hình chuyển đổi trạng tháiSự phát triển ngày càng được mở rộng khi mà sự ưu tiên của khách hàng ngày càng tăngCấu trúc chương trình được hạn chế kiểm soát và cấu trúc trừu tượng thì được sử dụng trong chương trìnhXác minh tĩnh được kiểm tra nghiêm ngặtNhóm 9Hình thức đặc tả và sự kiểm traCác mô hình trạng thái phụ thuộc vào đặc tả hệ thống và quá trình kiểm tra để kiểm tra chương trình lần nữa theo mô hình này.Phương pháp lập trình được xác định để tương thích giữa các mô hình và hệ thốngLập luận toán học được sử dụng để tăng sự tin cậy trong quá trình kiểm traNhóm 9Các nhóm tiến trình cleanroomNhóm đặc tả: Nhóm này chịu trách nhiệm phát triển và duy trì đặc tả hệ thốngNhóm phát triển: Chịu trách nhiệm phát triển và xác minh hệ thống. Phần mềm này không được thực thi hoặc không biên dịch được trong quá trình.Nhóm xác nhận: Nhóm này chịu trách nhiệm về việc tổng hợp lại các trường hợp kiểm tra để thực thi phần mềm trước khi phát triển. Mô hình phát triển độ tin cậy được sử dụng để quyết định khi nào thì dừng thử nghiệmNhóm 9Qúa trình đánh giá CleanroomKết quả của việc sử dụng quá trình Cleanroom đã phát hiện ra những khuyết điểm trong phát biểu hệ thống.Dựa vào sự đánh giá khách quan cho thấy quá trình này thì không đắt hơn các phương pháp tiếp cận khácCó lỗi ít hơn trong quá trình phát triển truyền thốngTuy nhiên, quá trình này thì không được sử dụng rộng rãi.Nhóm 9Những điểm chínhXác minh và thẩm định thì không tương tự nhauXác minh phải đáp ứng được đặc tả hệ thống. Thẩm định thì đáp ứng được yêu cầu khách hàngCác công cụ tĩnh có thể phát hiện ra những chương trình không ổn định, có những lỗi trong codeSự phát triển quá trình Cleanroom phụ thuộc vào sự phát triển ngày càng mở rộng, xác minh tĩnh và thống kê kiểm thửNhóm 9Thanks you for listen to me