15/4/15

Các thuật ngữ và định nghĩa cơ bản về kiểm thử

Kỹ nghệ kiểm thử đã phát triển và tiến hoá hàng mấy chục năm nên các
thuật ngữ trong các tài liệu khác nhau thường không thống nhất và thiếu
tương thích. Các thuật ngữ được trình bày trong cuốn sách này dựa vào các
thuật ngữ chuẩn được phát triển bởi IEEE (Viện Kỹ nghệ điện và điện tử)
với việc chọn lọc cẩn thận các thuật ngữ tiếng Việt tương ứng.
Lỗi (Error): Lỗi là những vấn đề mà con người mắc phải trong quá trình
phát triển các sản phẩm phần mềm. Trong thực tế, con người luôn có thể
phạm lỗi. Khi lập trình viên phạm lỗi trong lập trình, ta gọi các lỗi đó là
bug (con bọ). Lỗi có thể phát tán. Chẳng hạn, một lỗi về xác định yêu cầu
có thể dẫn đến sai lầm về thiết kế và càng sai khi lập trình theo thiết kế này.
Lỗi là nguyên nhân dẫn đến sai.
Sai (Fault): Sai là kết quả của lỗi, hay nói khác đi, lỗi sẽ dẫn đến sai.
Cũng có thể nói sai là một biểu diễn của lỗi dưới dạng một biểu thức, chẳng
hạn chương trình, văn bản, sơ đồ dòng dữ liệu, biểu đồ lớp,.... Sai lầm có thể
khó bị phát hiện. Khi nhà thiết kế mắc lỗi bỏ sót trong quá trình thiết kế,
sai kết quả từ lỗi đó là thiếu mất cái gì đó mà lẽ ra cần phải có. Sai về nhiệm
vụ xuất hiện khi vào sai thông tin, còn sai về bỏ quên xuất hiện khi không
vào đủ thông tin. Loại sai thứ hai khó phát hiện và khó sửa hơn loại sai thứ
nhất.
Thất bại (Failure): Thất bại xuất hiện khi một lỗi được thực thi. Có
hai điều cần lưu ý ở đây. Một là thất bại chỉ xuất hiện dưới dạng có thể
chạy được mà thông thường là mã nguồn. Hai là các thất bại chỉ liên kết
với các lỗi về nhiệm vụ. Còn các thất bại tương ứng với các lỗi về bỏ quên
thì xử lý thế nào? Những cái lỗi không bao giờ được tiến hành, hoặc không
được tiến hành trong khoảng thời gian dài cần được xử lý thế nào? Virus
Michaelangelo là một ví dụ về lỗi loại này. Nó chỉ được tiến hành vào ngày
sinh của Michaelangelo, tức ngày 6/3 mà thôi. Việc khảo sát có thể ngăn
chặn nhiều thất bại bằng cách tìm ra các lỗi thuộc cả hai loại.
Sự cố (Incident): Khi thất bại xuất hiện, nó có thể hiển thị hoặc không,
tức là rõ ràng hoặc không rõ ràng đối với người dùng hoặc người kiểm thử.
Sự cố là triệu chứng liên kết với một thất bại và thể hiện cho người dùng
hoặc người kiểm thử về sự xuất hiện của thất bại này.
Yêu cầu của khách hàng và đặc tả của phần mềm: Phần mềm được
viết để thực hiện các nhu cầu của khách hàng. Các nhu cầu của khách hàng
được thu thập, phân tích và khảo cứu và là cơ sở để quyết định chính xác
các đặc trưng cần thiết mà sản phẩm phần mềm cần phải có. Dựa trên yêu
cầu của khách hàng và các yêu cầu bắt buộc khác, đặc tả được xây dựng để
mô tả chính xác các yêu cầu mà sản phẩm phần mềm cần đáp ứng, và có
giao diện thế nào. Tài liệu đặc tả là cơ sở để đội ngũ phát triển phần mềm
xây dựng sản phẩm phần mềm. Khi nói đến thất bại trên đây là nói đến việc
sản phẩm phần mềm không hoạt động đúng như đặc tả. Lỗi một khi được tiến hành có thể dẫn đến thất bại. Do đó, lỗi về bỏ quên được coi là tương
ứng với các lỗi khi xây dựng đặc tả.
Kiểm chứng và thẩm định: Kiểm chứng (verification) và thẩm định
(validation) hay được dùng lẫn lộn, nhưng thực ra chúng có ý nghĩa khác
nhau. Kiểm chứng là quá trình để đảm bảo rằng một sản phẩm phần mềm
thỏa mãn đặc tả của nó. Còn thẩm định là quá trình để đảm bảo rằng
sản phẩm đáp ứng được yêu cầu của người dùng (khách hàng). Trong thực
tế, chúng ta cần thực hiện kiểm chứng trước khi thực hiện việc thẩm định
sản phẩm phần mềm. Vì vậy, chúng ta có thuật ngữ V&V (Verification &
Validation). Lý do của việc này là chúng ta cần đảm bảo sản phẩm đúng với
đặc tả trước. Nếu thực hiện việc thẩm định trước, một khi phát hiện ra lỗi,
chúng ta không thể xác định được lỗi này do đặc tả sai hay do lập trình sai
so với đặc tả.
Chất lượng và độ tin cậy của phần mềm: Theo từ điển, chất lượng
của một sản phẩm được thể hiện bằng các đặc trưng phù hợp với đặc tả của
nó. Theo cách hiểu này, chất lượng của một sản phẩm phần mềm là sự đáp
ứng các yêu cầu về chức năng (tức là các hàm cần được tính toán), sự hoàn
thiện và các chuẩn đã được đặc tả, cùng các đặc trưng mong chờ từ mọi sản
phẩm phần mềm chuyên nghiệp. Chất lượng phần mềm đặc trưng cho “độ
tốt, độ tuyệt hảo” của phần mềm, và gồm có các yếu tố về chất lượng như:
tính đúng đắn (hành vi đúng như đặc tả), tính hiệu quả (tiết kiệm thời gian
và tiền bạc), độ tin cậy, tính khả kiểm thử (kiểm thử được và dễ), dễ học, dễ
sử dụng, dễ bảo trì ... Như vậy, độ tin cậy chỉ là một yếu tố để đánh giá chất
lượng phầm mềm. Người kiểm thử hay nhầm lẫn độ tin cậy với chất lượng.
Khi kiểm thử đạt tới mức phần mềm chạy ổn định, có thể phụ thuộc vào nó,
người kiểm thử thường cho rằng phần mềm đã đạt chất lượng cao. Các yếu
tố về mặt chất lượng mà liên quan trực tiếp đến việc phát triển phần mềm
được gọi là các tiêu chuẩn chất lượng như tính có cấu trúc, tính đơn thể,
tính khả kiểm thử, ...
Độ tin cậy của phần mềm là xác suất để phần mềm chạy không có thất
bại trong một khoảng thời gian nhất định. Nó được xem là một yếu tố quan
trọng của chất lượng phần mềm. Ngoài ra, thời gian trung bình cho việc khắc
phục một sự cố cũng là một thông số quan trọng trong việc đánh giá độ tin
cậy của sản phẩm phần mềm.

0 nhận xét:

Đăng nhận xét