Dịch và tìm hiểu chương 4- ISTQB( THIẾT KẾ THỬ NGHIỆM KỸ THUẬT)
Chương 4: THIẾT KẾ THỬ NGHIỆM KỸ THUẬT Phần chương này chúng ta sẽ tìm hiểu về các nội dung dưới đây: I. Làm thế nào để tìm thấy những điều kiện thử nghiệm và thiết kế trường hợp thử nghiệm(testcase) II. Tổng quan về kỹ thuật thiết kế trường hợp thử nghiệm III. Làm thế nào để lựa chọn kỹ ...
Chương 4: THIẾT KẾ THỬ NGHIỆM KỸ THUẬT
Phần chương này chúng ta sẽ tìm hiểu về các nội dung dưới đây:
I. Làm thế nào để tìm thấy những điều kiện thử nghiệm và thiết kế trường hợp thử nghiệm(testcase)
II. Tổng quan về kỹ thuật thiết kế trường hợp thử nghiệm
III. Làm thế nào để lựa chọn kỹ thuật
Chúng ta sẽ đi làm rõ từng vấn đề đã nêu ở trên:
I.Làm thế nào để tìm thấy những điều kiện thử nghiệm và thiết kế trường hợp thử:
Hướng dẫn cụ thể yêu cầu của kiểm thử gồm có 3 bước:
- Kiểm tra điều kiện( Test condition)
- Kiểm tra trường hợp( Test case)
- Kiểm tra quy trình( Test procedure)
-
Kiểm tra thiết kế kỹ thuật(Test design specification):
Tài liệu quy định các điều kiện thử nghiệm (các hạng mục bảo hiểm) cho một mục kiểm tra, các phương pháp kiểm tra chi tiết và xác định các trường hợp thử nghiệm cấp cao liên quan.
-
Kiểm tra điều kiện(Test condition) :
Một điều kiện thử nghiệm được xác định là một Khoản mục hoặc sự kiện của một thành phần hoặc hệ thống có thể được xác nhận bởi một hoặc nhiều trường hợp kiểm tra.
ví dụ: một chức năng, giao dịch, thuộc tính chất lượng, hoặc yếu tố cấu trúc.
-
Kiểm tra trường hợp(Test case) :
Một trường hợp thử nghiệm bao gồm một tập hợp các giá trị đầu vào, điều kiện tiên quyết thực hiện, kết quả mong đợi và hậu thực hiện, phát triển cho một điều kiện khách quan hoặc kiểm tra cụ thể, chẳng hạn như để thực hiện một đường dẫn chương trình cụ thể hoặc để xác minh sự tuân thủ với các yêu cầu cụ thể. Một trường hợp kiểm tra nên được theo dõi để yêu cầu của nó.
Có thể lấy một ví dụ cụ thể để làm rõ nội dung của 3 mục trên như sau:
Ví dụ về Test design specification:
Cần kiểm tra chế độ hoạt động của việc truyền tải dữ liệu giữa các thiệt bị thông qua Blutooth
-
Kiểm tra có thể truyền tải giữa các loại thiết bị khác dòng được không( ex giữa samsung và sony)
-
Kiểm tra có thể truyền tải giữa các loại thiết bị cùng hãng nhưng khác đời
-
Kiểm tra có thể truyền các dạng dữ liệu khác nhau( ex ảnh có các đuôi khác nhau)
-
Kiểm tra hoạt động truyền tải dữ liệu khi có khoảng cách vị trí
-
Kiểm tra việc nhận dữ liệu khi truyền tải dữ liệu lỗi
Ví dụ về Test case:
Với thiết kế kiểm thử kĩ thuật như trên ta sẽ có trường hợp kiểm thử như sau:
-
Yêu cầu: Cầm kiểm tra được hoạt động truyền tải dữ liệu giữa các thiết bị thông qua Bluetooth
-
Điều kiện tiền đề( Preconditions):
- Chuẩn bị các thiết bị cùng hãng, khác hãng, cùng đời và khác đời
- Chuẩn bị các file ảnh có định dạng khác nhau( JPEG, TIFF, GIF và PNG), file ảnh lỗi
- Lưu các file ảnh đã chuẩn bị vào thẻ SD
-
Đầu vào:
-
Thực hiện bật Bluetooth ở các thiết bị, kết nối Bluetooth
-
Thực hiện truyền giữ liệu đã thuẩn bị giữa các thiết bị với nhau
-
Thực hiện việc truyền dữ liệu ở khoảng cách gần và xa
-
-
Kết quả mong đợi:
+ Có thể truyền tải giữ liệu giữa các thiết bị + Có thể truyền tải giữ liệu giữa các thiệt bị ở khoảng cách gần và xa + Có thể xem được các dữ liệu đã truyền ở các thiết bị nhận được + Với file lỗi thì không thể xem được
- Điều kiện sau kết thúc( Postconditions): Trong thời gian bật Bluetooth các thiết bị vẫn giữ kết nối.
Có thể hình dung đơn giản 3 giai đoạn trên qua biểu đồ:
Cấu trúc của test case sẽ gồm có những phần sau:
-
Xác định yêu cầu cần kiểm tra theo thiết kế kiểm thử kĩ thuật
-
Nêu rõ điều kiện tiền đề
-
Dữ liệu đầu vào( các bước thực hiện)
-
Kết quả mong đợi
-
Điều kiện sau kết thúc
Mức độ quan trọng của phần Kết quả mong đợi( Expected Results ):
Kết quả mong đợi tương đương với Chương trình hoạt động hợp lí. Nó là một phần của đặc điểm kĩ thuật của môi trường thử nghiệm và bao gồm các kết quả đầu ra, thay đổi dữ liệu, các trạng thái và bất kì hậu quả khác của việc kiểm tra. Sẽ gặp vấn đề nếu không định rõ được những điều sau:
-
Dưới áp lực thời gian bỏ qua lỗi
-
Trong suốt quá trình kiểm tra không thông qua đặc điểm kĩ thuật.
-
Bỏ qua việc kiểm tra kết quả với những vấn đề khó( ví dụ rò rỉ bộ nhớ, dữ liệu nền(background data)...)
Các bước của quá trình Kiểm tra:
Thông thường một trường hợp kiểm tra gồm có các bước sau:
-
Set- up: Có được nguồn lực cần thiết, tạo các đơn vị kiểm tra( unit under test) và đưa nó vào trạng thái mong muốn. Có thể cần các unit khác và dữ liệu thử nghiệm( test data)
-
Input: Gửi dữ liệu đầu vào cho các đơn vị kiểm tra
-
Xác minh(Verify): Lấy kết quả của sự kích thích. Đây có thể là dữ liệu đầu ra hoặc thay đổi trạng thái. Thu thập những điều này và trả lại cho các khuôn khổ kiểm tra, sau đó báo cáo kết quả cho các kiểm thử viên
-
Teardown: Phát hành tất cả các nguồn lực được sử dụng, để tránh phụ thuộc lẫn nhau giữa các xét nghiệm.
4.Kiểm tra quy trình ( Test procedure):
Kiểm tra quy trình: Tài liệu quy định một chuỗi các hành động để thực hiện một thử nghiệm. Còn được gọi là kịch bản thử nghiệm hoặc bằng tay kịch bản thử nghiệm. Nó phụ thuộc vào kĩ năng và kiến thức của kiểm tra viên, đồng thời cũng phụ thuộc vào yêu cầu từ tài liệu
II. Tổng quan về kỹ thuật thiết kế trường hợp thử nghiệm
Kỹ thuật cho thiết kế thử nghiệm:
- Các loại của kĩ thuật thiết kế thử nghiệm:
-
Kiểm thử hộp đen(Black- box) -còn gọi là kỹ thuật dựa trên đặc điểm(specification-based techniques )
-
Kiểm thử hộp trắng(White- box)- còn gọi là kỹ thuật kết cấu hoặc dựa trên cấu trúc(structure-based techniques )
-
Kỹ thuật dựa trên kinh nghiệm(experience- base techniques)
- Đặc điêm của các loại kĩ thuật thiết kế kiểm thử:
2.1. Đặc điểm chung của kỹ thuật Black- box:
-
Mô hình(chính thức, không chính thức)
-
Từ những trường hợp mô hình thử nghiệm có thể được bắt nguồn một cách hệ thống.
2.2. Đặc điểm chung của các kỹ thuật dựa trên cấu trúc:
-
Thông tin về phần mềm được xây dựng từ mã(code) và thiết kế(design )
-
Mức độ bao phủ của các phần mềm có thể được đo cho các trường hợp thử nghiệm hiện có, và các trường hợp thử nghiệm hơn nữa có thể được bắt nguồn một cách hệ thống để tăng vùng phủ sóng
2.3. Đặc điểm chung của các kỹ thuật dựa trên kinh nghiệm:
Những kiến thức và kinh nghiệm của con người được sử dụng để đề xuất được các trường hợp thử nghiệm.
-
Kiến thức của kiểm tra viên, nhân viên phát triển, người dùng và các bên liên quan đến phần mềm sử dụng phần mềm đó.
-
Kiến thức về các khuyết tật có khả năng và phân phối của họ
- Tìm hiểu chi tiết về các loại kỹ thuật kiểm thử:
3.1. Kiểm thử hộp đen(black-box techniques ):
Kiểm thử hộp đen có 7 loại:
- Phân vùng tương đương:
-
Phương pháp này chia miền đầu vào của chương trình thành các lớp dữ liệu rồi suy ra các ca kiểm thử
-
Phương pháp này có thể tìm thấy cho cả dữ liệu hợp lệ và không hợp lệ, nó có thể xác định cho kết quả đầu ra, giá trị nội bộ, giá trị thời gian, các thông số giao diện.
-
Phương pháp này được áp dụng tại tất cả các cấp của thử nghiệm
- Phân tích giá trị biên:
-
Kinh nghiệm trong quá trình kiểm tra cho thấy có rất nhiều lỗi xảy ra ở giá trị biên( đầu và cuối) của một khoảng liên tục
-
Quanh giá trị tôi đa và tối thiểu có thể kiểm tra được cả ca hợp lệ và không hợp lệ giá trị gianh giới.
-
Phân tích giá trị biên có thể áp dụng ở tất cả các cấp kiểm tra, nó còn được xem là phần bù đắp hoàn hảo cho phân vùng tương đương.
- Kiểm thử bảng quyết định(decision table testing):
-
Áp dụng cho hệ thống kết hợp nhiều điều kiện thức tạp với nhau
-
Đưa ra dược các ca kiểm tra tương ứng nhưng tốn nhiều thời gian
- Kiểm thử biến đổi trạng thái(State-transition Testing)
-
Thể hiện sự biến đổi từ trạng thái này sang trạng thái khác
-
Các bảng trạng thái bao gồm 4 cột: Trạng thái, sự kiện, hành động và trạng thái tiếp theo
-
Một bảng trạng thái chỉ ra mối quan hệ giữa các trạng thái và các đầu vào, và có thể làm nổi bật quá trình chuyển đổi kể cả không hợp lệ
-
Kiểm tra trạng thái được sử dụng nhiều trong ngành công nghiệp phần mềm nhúng và tự động hóa kỹ thuật nói chung
- Kỹ thuật dựa trên ₫ặc tả (Use Case Testing)
-
Quyết định và mô tả các yêu cầu về mặt chức năng của hệ thông
-
Tạo nên một nền tảng cho các bước thử nghiệm hệ thống, đảm bảo hệ thống thỏa mãn đúng những yêu cầu do người sử dụng đưa ra
-
Mỗi trường hợp sử dụng có điều kiện tiên quyết, mà cần phải được đáp ứng cho một trường hợp sử dụng để làm việc thành công.
-
Mỗi trường hợp sử dụng chấm dứt với hậu điều kiện, đó là những kết quả quan sát được và trạng thái cuối cùng của hệ thống sau khi các trường hợp sử dụng đã được hoàn thành.
-
Một trường hợp sử dụng thường có một truyền thống (tức là có khả năng nhất) kịch bản, và các chi nhánh đôi khi thay thế.
-
Đơn giản hóa việc thay đổi và mở rộng hệ thống thông qua việc điều chỉnh các trường hợp kiểm tra
-
Kỹ thuật này không chỉ được dùng để nắm bắt các yêu cầu của hện thống mới mà còn được sử dụng để hỗ trợ cho việc phát triển một phiên bản mới của hệ thống.
3.2. Kiểm thử hộp trắng(white-box techniques ):
Kiểm thử hộp trắng dựa vào thuật giải cụ thể, vào cấu trúc dữ liệu bên trong của đơn vị phần mềm cần kiểm thử để xác định đơn vị phần mềm đó có thực hiện đúng không. Có 2 loại:
-
Kiểm thử luồng điều khiển:
Xác nhận truy cứu các lịch sử thực hiện source code bằng cách sử dụng trình gỡ lỗi
-
Kiểm thử dòng dữ liệu:
Kiểm thử bao quát các dòng source code, nhánh và đường dẫn
3.3. Kỹ thuật dựa trên kinh nghiệm(experience- base techniques)
Kỹ thuật này rất phụ thuộc vào kiến thức, kỹ năng và kinh nghiệm Nó thường tập trung vào:
-
Lỗi điển hình
-
Giá trị đặc biệt
-
Nội dung chưa rõ ràng
-
Kết nối đặc biệt và bối cảnh
-
Các yếu tố rủi ro
-
Sử dụng các chương trình và môi trường của nó
III. Làm thế nào để lựa chọn kỹ thuật
- Sự lựa chọn kỹ thuật kiểm tra phụ thuộc vào một số yếu tố như:
-
Các loại hệ thống
-
Tiêu chuẩn quy định
-
Yêu cầu từ khách hàng hoặc hợp đồng
-
Mức độ rủi ro, loại rủi ro
-
Mục kiểm tra, tài liệu có sẵn
-
Kiến thức của những người thử nghiệm
-
Thời gian và ngân sách, vòng đời phát triển
-
Kiểm thử hộp đen luôn được sử dụng vì nó sớm tìm ra lỗi và các kỹ thuật không rõ ràng
-
Kiểm thử hộp trắng thì đặc biệt dùng cho thử nghiệm mức độ thấp
-
Kiểm thử dựa trên kinh nghiệm đòi hỏi phải có kinh nghiệm, có thể kiểm tra ngẫu nhiên, được sử dụng cho các ứng dụng có độ tin cậy cao hoặc các vấn đề lặp lại hoặc dự án có yêu cầu không rõ ràng.