ĐẢM BẢO CHẤT LƯỢNG PHẦN MỀM
VERIFICATION AND VALIDATION (Xác minh và thẩm định) GVHD: Lê Mậu Long
Nhóm 9
ĐẠI HỌC TÔN ĐỨC THẮNG_ KHOA CNTT
Nhóm 9
Thành viên nhóm
070109T
v Đặng Thanh Hiếu v Nguyễn Thị Ngọc Hân v Hà Thị Kim Phượng v Trần Anh Hào v Phạm Thị Hà
070079T
070052T 070088T 070085T
Nhóm 9
ü Giới thiệu xác minh và thẩm định phần
Nội dung trình bày
ü Mô tả quá trình kiểm tra chương trình
mềm, phân biệt sự khác nhau giữa chúng.
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
Nhóm 9
Xác minh và thẩm định
Ø“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
Xác minh:
Nhóm 9
v Là quá trình xoay vòng. V & V phải
Quá trình V & V
ü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.
được ứng dụng ở mỗi bước trong các tiến trình phần mềm. v Có 2 nội dung chính:
Nhóm 9
v Xá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.
v Điều này không có nghĩa là nó hoàn toàn
không có khuyết điểm
v Hơ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.
Mục đích của V & V
Nhóm 9
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ị
v 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ào
v Sự 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ềm
v Mô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ình
Sự tin cậy V & V
Nhóm 9
v 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.
Xác minh tĩnh và động
Nhóm 9
Xác minh tĩnh và động
Nhóm 9
v Có thể phát hiện ra những lỗi tiềm ẩn v Kĩ thuật thẩm định cho yêu cầu phi chức
Kiểm thử chương trình
v 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&V
năng thì khi chương trình được thực thi nó có thể biết được cách hoạt động.
Nhóm 9
v Kiể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ống
üMộ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ống
v Kiể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ầu
üPhươ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.
Các loại kiểm thử
Nhóm 9
v Kiểm thử khuyết điểm và sửa lỗi là những quá trình
riêng biệt
v Xá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.
v Sửa lỗi là liên quan đến việc xác định vị trí và sửa
lỗi.
v 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ống
Kiểm thử và sửa lỗi
Nhóm 9
Qúa trình sửa lỗi
Nhóm 9
v Thẩ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.
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.
v 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ĩnh
v Kiể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ó.
Kế hoạch V & V
Sự phát triển của tiến trình chữ V Nhóm 9
3 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ình
cấu trúc của kế hoạch kiểm thử phần mềm Nhóm 9
Tiế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ế.
v 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. v Khả năng lần vết theo yêu cầu Ngườ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ẻ v 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 định v Lịch kiểm thử v 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. v Các yêu cầu về phần cứng và phần mền Những công cụ phần mền và ước tính phần cứng phải sử dụng v Những ràng buộc Hạ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.
Kế hoạch kiểm thử phần mềm Nhóm 9
Nhóm 9
v 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.
v 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.
kiểm tra phần mềm
v Vì 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.
v 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í. v 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ì.
Có 3 đặc điểm chính khi kiểm thử Nhóm 9
Nhóm 9
v Đá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 định
v Selby 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.
v 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ốn
Kiểm tra và kiểm thử
Nhóm 9
v Cần một tài liệu chính thức để hỗ trợ các kế
Kiểm tra chương trình
v 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.
hoạch của quá trình kiểm tra.
Nhóm 9
Quá trình kiểm tra
Nhóm 9
v Trình bày tổng quan về hệ thống với đội
Thủ tục kiểm tra
v Tài liệu liên quan và mã chương trình được
kiểm tra.
v Kiểm tra và phát hiện các lỗi ghi nhận. v Sửa chữa các lỗi được phát hiện. v Kiểm tra lại lần nữa.
giao cho đội kiểm tra trước.
Nhóm 9
Vai trò các thành viên
Nhóm 9
v Việ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.
v Độ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.
v 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.
v 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ó
Các lưu ý trong kiểm tra
Nhóm 9
Xem xét kiểm tra
Nhóm 9
Xem xét kiểm tra
Nhóm 9
Xem xét kiểm tra
Nhóm 9
v Thờ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.
v 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.
Tốc độ kiểm tra
Nhóm 9
v Phâ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.
v 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ự động
Nhóm 9
phân tích tĩnh tự động
ạ
ị
ặ
ự ể
Đ nh d ng l
ỗ ườ i th
ng g p
S ki m tra phân tích tĩnh
ướ
ở ộ
ỗ ữ ệ L i d li u
c dùng tr ượ
ượ
c khi kh i đ ng . ư c khai báo nh ng không đ
c
ế ượ
ư
ầ
c gán 2 l n nh ng không đ
ượ ử c s
ữ
ạ
i gi
ả ữ
ượ
ế ượ ữ Nh ng bi n đ ế ữ Nh ng bi n đã đ ử ụ s d ng ữ Nh ng bi n đ ữ ụ d ng gi a 2 thao tác ớ ạ ồ ạ M ng t n t ế Nh ng bi n không đ
ự i h n nh ng s vi ph m c khai báo
ỗ
ạ
ể ả
ế
ể ề L i đi u khi n
ữ ữ
ị ả
ng đ n ở
ệ
ưở ề ng b i đi u ki n
Nh ng đo n mã không th nh h ưở Nh ng nhánh không ch u nh h ặ ủ c a vòng l p
ỗ
ữ
ữ
ế
ả
ầ
ấ
ậ ấ L i xu t /nh p
ữ Nh 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 n
ợ
ợ ố ng tham s không phù h p ử ụ
ứ
ữ
ữ Nh ng ki u tham s không phù h p ố ố ượ S l ế ả ủ Không s d ng k t qu c a các hàm ch c năng ủ ụ Nh ng hàm và th t c không đ
ượ ọ c g i
ả
ộ
ỗ
ớ
ượ
ị
L i qu n lý b nh
c xác đ nh
ữ ỉ ố
ỏ ỏ
Nh ng con tr không đ Ch s con tr
Nhóm 9
v Sự 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ập
v Phâ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 . v 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.
v 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.
v 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 .
v 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.
Các giai đoạn phân tích tĩnh
Nhóm 9
138% more lint_ex.c
#include
ptintf(“%d”,Anarray);
} main() {
int Anarray[5] ; int i ; char c; printarray(Anarray,i,c); printarray(Anarray);
} 139% cc lint_ex.c 140% lint lint_ex.c Lint_ex.c(10) :cảnh báo :c có lẽ được dùng trước khi thiết lập Lint_ex.c(10) :cảnh báo :i có lẽ được dùng trước khi thiết lập Printarray :biến# của mảng Printarray,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ỏ
Phân tích tĩnh LINT
Nhóm 9
v Thậ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.
v Í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.
Việc sử dụng phân tích tĩnh
ü phươ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ùng ü Chú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ó.
Thẩm định và phương pháp hình thức Nhóm 9
Những lập luận của những phương pháp hình thức
v Đư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.
v 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 tra
Lập luận chống lại phương pháp hình thức
Nhóm 9
v Các chuyên gia trong lĩnh vực ứng dụng
v 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ả.
v Nó có lẽ rẻ hơn các kĩ thuật V&V khác nhưng
không thể hiểu được những kí hiệu chuyên dụng.
vẫn đạt được cùng mức độ tin cậy trong chương trình
Nhóm 9
Phát triển phần mềm Cleanroom
v Tê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.
v Tiến trình phát triển phần mềm này dựa trên:
1. Sự phát triển gia tăng 2. Đặc tả chính thức 3. Xác minh tĩnh có sử dụng những lập luận
chính xác
4. Kiểm thử tĩnh để quyết định độ tin cậy của
chương trình.
Nhóm 9
Phát triển phần mềm Cleanroom
Nhóm 9
Đặc điểm của quá trình Cleanroom
v Các hình th c đ c t
ứ ặ ả ử ụ ể s d ng mô hình chuy n
ở ộ ượ c m r ng khi mà
ể v S phát tri n ngày càng đ ủ ươ ượ ạ
v C u trúc ch ấ ươ
ừ ượ ổ ạ đ i tr ng thái ự ự ư s u tiên c a khách hàng ngày càng tăng ế ể ấ c h n ch ki m soát ng trình đ ượ ử ụ c s d ng trong ng thì đ
và c u trúc tr u t ng trình ch
v Xác minh tĩnh đ
ượ ể ặ c ki m tra nghiêm ng t
Nhóm 9
ứ ặ ả Hình th c đ c t ự ể và s ki m tra
ạ ụ
ố ộ ể ể ặ ả ệ h ươ ng
v Các mô hình tr ng thái ph thu c vào đ c t ể th ng và quá trình ki m tra đ ki m tra ch ầ ữ trình l n n a theo mô hình này. ậ ng pháp l p trình đ
v Ph
ượ ươ ể ươ ng
ị c xác đ nh đ t ệ ố thích gi a các mô hình và h th ng
v L p lu n toán h c đ
ọ ượ ử ụ ự ữ ậ ể c s d ng đ tăng s tin
ể ậ ậ c y trong quá trình ki m tra
Nhóm 9
v Nhóm đặc tả: Nhóm này chịu trách nhiệm phát triển
và duy trì đặc tả hệ thống
v Nhó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.
v 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ệm
Các nhóm tiến trình cleanroom
Nhóm 9
v Kế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.
v 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ác
v Có lỗi ít hơn trong quá trình phát triển truyền thống v Tuy nhiên, quá trình này thì không được sử dụng
rộng rãi.
Qúa trình đánh giá Cleanroom
Nhóm 9
v Xác minh và thẩm định thì không tương tự nhau v Xá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àng
v Cá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 code
v Sự 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ững điểm chính