TỔNG QUAN VỀ KIỂM THỬ

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

  • Mục đích của kiểm thử: +) đánh giá chất lượng hoặc tính chấp nhận được của sản phẩm. +) phát hiện lỗi hoặc bất kỳ vấn đề bất thường của sản phẩm.

  • Các thuật ngữ cơ bản trong kỹ thuật kiểm thử:

1. Lỗi (error): Lỗi là những vấn đề con người mắc phải trong quá trình phát triển phầm mềm. Ví dụ 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ế đó. Lỗi là nguyên nhân dẫn đến sai.

2. Sai (fault): Sai là kết quả của lỗi.

3. Thất bại (failure): Thất bại xuất hiện khi một lỗi được thực thi.

4. Sự cố (incident): khi thất bại xuất hiện, sự cố có thể hiển thị hoặc không.

5. 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ác hàng. 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. - Khi nói đến thất bại 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 tiến hành có thể dẫn đến thất bại. Do đó, lỗi về bỏ quên được coi tương ứng với các lỗi khi xây dựng đặc tả.

6. Kiểm chứng và thẩm định

Kiểm chứng (verification) Thẩm định (validation)
- Xác nhận bằng cách kiểm tra và thông qua việc cung cấp bằng chứng khách quan rằng các yêu cầu quy định đã được hoàn thành. - Xác nhận bằng cách kiểm tra và thông qua việc cung cấp bằng chứng khách quan rằng các yêu cầu cho mục đích sử dụng cụ thể hoặc ứng dụng đã được hoàn thành.
- Mô tả tài liệu đầu ra có đang theo đúng yêu cầu đầu vào hay không - Mô tả phần mềm có được chấp nhận bởi người dùng hay không
- Là đặc tả yêu cầu, ứng dụng và cấu trúc phần mềm, hoàn thành thiết kế hệ thống và thiết kế CSDL - Là sản phẩm thực tế - ở mức đơn vị, module, một đoạn nối tích hợp.
- Không liên quan đến việc code - Liên quan đến việc code (code xong thì mới có cái kiểm thử chứ =))
- Là hoạt động tĩnh của việc kiểm định các tài liệu, thiết kế, code và chương trình - Là một cơ chế động của việc xác thực và thử nghiệm sản phẩm thực tế

7. Chất lượng và độ tin cậy của phần mềm

  • 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ó. Có nghĩa là sự đáp ứng các yêu cầu về chức năng, sự hoàn thiện và các chuẩn đã được đặc tả, cùng với 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 bao gồm các yêu tố đặc trưng sau: +) 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: 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à 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 sự cố cũng là yếu tố quan trọng cho việc đánh giá độ tin cậy của phần mềm. +) Tính khả dụng: kiểm thử được, dễ học, dễ sử dụng, dễ bảo trì.

8. Kiểm thử: việc kiểm thử liên quan đến các khái niệm: lỗi, sai, thất bại và sự cố. Có hai mục đích chính của một phép thử là: - Tìm thất bại - Chứng tỏ việc tiến hành của phần mềm là đúng đắn.

9. Vai trò của kiểm thử phần mềm: Kiểm thử phần mềm đóng vai trò quan trọng yrong việc đánh giá và thu được chất lượng cao của sản phẩm phần mềm thông qua quá trình phát triền. Kiểm thử phần mềm là một quy trình kiểm chứng để đánh giá và tăng cường chất lượng của sản phẩn phần mềm.

10. Ca kiểm thử: các ca kiểm thử gồm một tập hợp dữ liệu đầu vào và một xâu các giá trị đầu ra mong đợi đối với phần mềm. - Vòng đời của một ca kiểm thử - Tóm tắt vòng đời: +) Ba giai đoạn đầu là “đưa lỗi vào” +) Giai đoạn kiểm thử là “để tìm lỗi” +) Ba giai đoạn cuối là “khử lỗi đi” - Bước sửa sai là cơ hội mới cho việc đưa lỗi.

II. Phân loại các lỗi và sai

  • Các định nghĩa về lỗi và sai xoay quanh sự phân biệt giữa quy trình và sản phẩm: +) Quy trình nói ta làm điều đó thế nào +) Sản phẩm là kết quả cuối cùng của quy trình.

  • Các sai được phân loại theo vài cách: +) Giai đoạn phát triển khi các sai tương ứng xuất hiện. +) Các hậu quả của các thất bại tương ứng. +) Độ khó cho việc giải quyết +) Độ rủi ro của việc không giải quyết được

  • Một cách phân loại được ưa thức là dựa trên việc xuất hiện bất thường: chỉ một lần, thỉnh thoảng, xuất hiện lại hoặc lặp đi lặp lại nhiều lần.

- Phân loại sai bằng độ nghiêm trọng

STT Mức độ Hành vi
1 Nhẹ Lỗi chính tải
2 Vừa Hiểu lầm hoặc thừa thông tin
3 Khó chịu Tên bị thiếu, cụt chữ hoặc hóa đơn có giá trị 0.0 đồng
4 Bực mình Vài giao dịch không được xử lý
5 Nghiêm trọng Mất giao dịch
6 Rất nghiêm trọng Xử lý giao dịch sai
7 Cực kỳ nghiêm trọng Lỗi rất nghiêm trọng xảy ra thường xuyên
8 Quá quắt Hủy hoại cơ sở dữ liệu
9 Thảm họa Hệ thống bị tắt
10 Dịch họa Thảm họa lây lan

- Các sai lầm về đầu vào và đầu ra

- Các sai lầm về logic

STT Trường hợp
1 thiếu trường hợp
2 lặp thừa trường hợp
3 điều kiện cực đoạn bị bỏ qua
4 thể hiện sai
5 thiếu điều kiện
6 điều kiện ngoại lai
7 kiểm thử sai biến
8 việc lặp lại của chu trình không đúng
9 phép toán sai (nhầm lẫn giữa < với <=)
... ...

- Các sai lầm về tính toán

STT Trường hợp
1 thuật toán sai
2 thiếu tính toán
3 toán hạng sai
4 sai về dấu ngoặc
5 chưa đủ độ chính xác (làm tròn hoặc cắt đuôi)
6 hàm đi kèm sai
... ...

- Các sai lầm về dữ liệu

STT Trường hợp
1 khởi tại sai
2 lưu trữ và truy cập sai
3 giá trị chỉ số và cờ báo sai
4 gói và mở sai
5 sử dụng sai biến
6 Tham chiếu sai dữ liệu
7 đơn vị hoặc thang chia sai
8 chiều của dữ liệu sai
9 chỉ số sai
10 sai về kiểu
11 sai về vi phạm
12 dữ liệu cảm biến vượt ra ngoài miền cho phép
13 lỗi thừa thiếu một so với biên
14 dữ liệu không tương thích
... ...

III. Các mức kiểm thử

Một trong những khái niệm then chốt của việc kiểm thử là các mức của việc kiểm thử. Các mức kiểm thử được mô tả sơ bộ như sau:

  • Kiểm thử đơn vị: là việc kiểm thử các đơn vị chương trình một cách cô lập. Một đơn vị chương trình là một đoạn mã nguồn như hàm hoặc phương thức của một lớp, có thể được gọi từ ngoài và cũng có thẻ gọi đến các đơn vị chương trình khác. Đơn vị chương trình cần được kiểm thử riêng biệt để phát hiện lỗi trong nội tại và khắc phục trước khi được tích hợp với các đơn vị khác. Kiểm thử đơn vị thường được thực thi bở chính tác giả của chương trình.

  • Kiểm thử tích hợp: là hình thức kiểm thử phần mềm nhằn tìm cách xác minh các giao diện giữa các thành phần xung đột của một thiết kế. Kiểm thử tích hợp nhằm đảm bảo hệ thống làm việc ổn định trong môi trường thí nghiệm để sẵn sàng cho việc đưa vào môi trường thực sự bằng cách cài đặt các đơn vị với nhau theo phương pháp tăng dần.

  • Kiểm thử hệ thống: được áp dụng khi hệ thống hoàn thành, đảm bảo rằng việc cài đặt tuân thủ đầy đủ các yêu cầu được đặc tả bởi người dùng, không còn bị phá hủy hay lỗi phần nào đó trong môi trường hoạt động của nó hoặc không gặp sự cố khi hoạt động với tiến trình khác.

  • Kiểm thử chấp nhận: là bước cuối cùng của việc kiểm thử phần mềm, được thực hiện bởi chính khách hàng nhằm đảm bảo phần mềm làm việc đúng như họ mong đợi. Có hai loại kiểm thử chấp nhận: +) Kiểm thử chấp nhận người dùng: được tiến hành bởi người dùng. +) Kiểm thử chấp nhận doanh nghiệp: được tiến hành bởi nhà sản xuất ra sản phẩm phần mềm.

Tài liệu tham khảo:

  • Giáo trình kiểm thử phần mềm - Phạm Ngọc Hùng, Trương Anh Hoàng và Đặng Văn Hưng
  • Các nguồn internet liên quan.

All Rights Reserved