ĐẢ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

Ø“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 Printarray(Anarray) Int Anarray; {

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

Thanks you for listen to me