CHAPTER 8 SOFTWARE VERIFICATION AND VALIDATION (VV) 1
Trang 1CHAPTER 8: SOFTWARE
VERIFICATION AND
VALIDATION (V&V)
Software Verification & Validation
Để có thể biết được người dùng có muốn sử dụng phần mềm của mình hay không
thì chúng ta cần phải xác minh (verification) và thẩm định (validation) phần mềm
của mình
Verification
Make sure that software comforms to its specification (Ứng dụng của chúng ta có
đáp ứng đặc tả ban đầu hay không?)
Validation
Make sure software does what users really need
V&V process
Chúng ta thực hiện quy trình V&V để:
Trang 2Đánh giá xem phần mềm có hữu ích và có thể sử dụng được hay không.
Thiết lập niềm tin vào phần mềm
Static and Dynamic V&V
Software inspections (static V&V) - Thanh tra, đánh giá phần
mềm
Đọc tài liệu, đọc code để phát hiện ra lỗi của phần mềm đó
Software testing (dynamic V&V)
So sánh kết quả (result) và kỳ vọng đặt ra (expectation)
Chạy thử, quan sát các hoạt động của phần mềm để phát hiện ra lỗi (Đăng nhập,
dùng thử các dịch vụ của phần mềm,…)
High-level design: Software Architecture Documents
Khi thiết kế Database chúng ta sẽ có được Schema của database đó
Software testing
Kiểm thử phần mềm để có thể phát hiện ra những lỗi và tạo độ tin cậy cho phần
mềm
Sau khi chạy thử chương trình (program testing) sẽ cho ra một bản mẫu (prototype).
Trang 3Một phần mềm không thể không có lỗi vì nó luôn luôn thay đổi theo thời gian, các
đối tượng sử dụng nó rất đa dạng và ta không thể nào kiểm tra hết được các trường
hợp đó
Used in conjunction with static verification to provide full V&V coverage (Được sử
dụng với static verification để cung cấp vùng phủ của quá trình V&V đầy đủ nhất.)
Software requirement is the basic to determine the software run right or not
Testing & Debugging
Testing: Chạy chương trình để tìm ra lỗi
Debugging: Tìm vị trí, xác định nguyên nhân và sửa lỗi
Debugging thường được làm bởi developer
Testing thì sẽ được làm bởi developer (nếu công ty không có tester), tester,
customer, etc
Software inspections
Quá trình kiểm tra sản phẩm để phát hiện ra những dị thường và lỗi
Không yêu cầu phải thực thi hệ thống đang kiểm tra
Là một kỹ thuật hiểu quả cho việc:
Phát hiện các lỗi
Giảm thiểu vấn đề phát sinh trong dự án
Giảm thiểu các rủi ro trong dự án
Inspection Checklist
Đồng nghĩa với Code Review
Checklist của các lỗi phổ biến nên được sử dụng để thúc đẩy việc kiểm tra
Các error checklist đều bị phụ thuộc vào các ngôn ngữ được phần mềm đó sử dụng
Defects có những:
Logical errors
Anomalies in code
Trang 4Potential issues concerning performance, security
Class Assignment
Automated static analysis
Static analyzers là một phần mềm công cụ để xử lý mã nguồn
Rất hiệu quả
A supplement not replacement (Bổ sung chứ không thay thế)
Stages of static analysis
Control flow analysis
Check loops
Trang 5Data use analysis
Detects uninitialized variables Interface analysis
Checks the consistency of routine and procedure declarations and their use
(Kiểm tra tính nhất quán của các khai báo thủ tục và quy trình cũng như việc
sử dụng chúng.) Information flow analysis:
Identifies the dependencies of output variables
Path analysis:
Identifies paths through the program and sets out the statements executed
in that path