.7 Các ca kiểm thử sinh ra theo kỹ thuật dòng điều khiển với mã nguồ n2

Một phần của tài liệu (LUẬN văn THẠC sĩ) kiểm thử đơn vị cho hệ thống (Trang 46)

Testcase Đƣờng đi

Dữ liệu đầu vào

EO Ngày thực

hiện Hình thức thực hiện quyền

TC1 Đường đi 1 24/11/2014 Trả cổ tức bằng tiền mặt 21/11/2014

TC2 Đường đi 2 27/11/2014 Trả cổ tức bằng tiền mặt 25/11/2014

TC3 Đường đi 3 03/09/2014 Niêm yết bổ sung 01/09/2014

TC4 Đường đi 4 27/11/2014 Niêm yết bổ sung 26/11/2014

TC5 Đường đi 5 27/11/2014 Thay đổi tỷ lệ FreeFloat 27/11/2014

Đường đi 6

Không thực thi được do ngày thực hiện là ngày đăng ký cuối cùng, mà ngày thực hiện luôn là ngày làm việc (tức là không thuộc ngày nghỉ, lễ tết) nên ngày đăng ký cuối cùng cũng là ngày làm việc

Đường đi 7

Không thực thi được do nếu ngày thực hiện không thuộc hình thức nào, ngày đăng ký cuối cùng sẽ nhận giá trị mặc định của kiểu DateTime là ngày 01/01/1900 là ngày thứ hai nên không thể thỏa mãn điều kiện là ngày nghỉ lể

TC6 Đường đi 8 27/11/2014 Không thuộc hình thức

nào

01/01/1900

4.1.4. Áp dụng kỹ thuật kiểm thử dòng dữ liệu

Dựa vào mã nguồn của bài toán và tiêu chí sinh kiểm thử All-p-uses/Some-c-uses để tiến hành sinh các đường đi từ đồ thị dòng dữ liệu sau.

Bảng 4.8 Quy ƣớc ký hiệu của các điều kiện trong sơ đồ DFG của bài toán 1

Điều kiện Điều kiện

là True

Điều kiện là False

c_intCorporateType

==(Int32)Common.CorporateActionType.MoneyDividend

C1 ~C1 c_intCorporateType==(Int32)Common.CorporateActionType.

AddListing

c_intCorporateType ==(Int32)Common.CorporateActionType. ChangeFreeFloat

C3 ~C3 checkHoliday(dtTemp)== true C4 ~C4

Hình 4.3 Sơ đồ dòng dữ liệu cho bài toán 1 – mã nguồn 1

Từ sơ đồ ta có số đường đi như sau: Path1: 1-2-3-8-9-8-10 Path2: 1-2-3-8-10 Path 3: 1-2-4-6-8-9-8-10 Path 4: 1-2-4-6-8-10 Path 5: 1-2-4-5-8-9-8-10 Path 6: 1-2-4-5-8-10 Path 7: 1-2-4-6-7-8-9-8-10 Path 8: 1-2-4-6-7-8-10 Tổng số đường đi là 8 .

Bảng 4.9 Các ca kiểm thử sinh ra theo kỹ thuật dòng dữ liệu với mã nguồn 1 Testcase Đƣờng đi Testcase Đƣờng đi

Dữ liệu đầu vào

Kết quả Ngày thực

hiện

Hình thức thực hiện quyền

TC1 Đường đi 1 24/11/2014 Trả cổ tức bằng tiền mặt 21/11/2014

TC2 Đường đi 2 27/11/2014 Trả cổ tức bằng tiền mặt 25/11/2014

Đường đi 3

Không thực thi được do nếu ngày thực hiện không thuộc hình thức nào, ngày đăng ký cuối cùng sẽ nhận giá trị mặc định của kiểu DateTime là ngày 01/01/1900 là ngày thứ hai nên không thể thỏa mãn điều kiện là ngày nghỉ lể

TC3 Đường đi 4 27/11/2014 Không thuộc hình thức

thực hiện quyền nào

01/01/1900

TC4 Đường đi 5 03/09/2014 Niêm yết bổ sung 01/09/2014

TC5 Đường đi 6 27/11/2014 Niêm yết bổ sung 26/11/2014

Đường đi 7

Không thực thi được do ngày thực hiện là ngày đăng ký cuối cùng, mà ngày thực hiện luôn là ngày làm việc (tức là không thuộc ngày nghỉ, lễ tết) nên ngày đăng ký cuối cùng cũng là ngày làm việc

TC6 Đường đi 8 27/11/2014 Thay đổi tỷ lệ FreeFloat 27/11/2014

Hình 4.4 Sơ đồ dòng dữ liệu cho bài toán 1 – mã nguồn 2

Từ sơ đồ ta có số đường đi như sau: Path1: 1-2-3-8-9-10 Path2: 1-2-3-8-10 Path 3: 1-2-4-6-8-9-10 Path 4: 1-2-4-6-8-10 Path 5: 1-2-4-5-8-9-10 Path 6: 1-2-4-5-8-10 Path 7: 1-2-4-6-7-8-9-10 Path 8: 1-2-4-6-7-8-10 Tổng số đường đi là 8 .

Ta có tescace được sinh ra từ đường đi như sau:

Bảng 4.10 Các ca kiểm thử sinh ra theo kỹ thuật dòng dữ liệu với mã nguồn 2 Testcase Đƣờng đi Testcase Đƣờng đi

Dữ liệu đầu vào

EO Ngày thực

hiện Hình thức thực hiện quyền

TC1 Đường đi 1 24/11/2014 Trả cổ tức bằng tiền mặt 21/11/2014

TC2 Đường đi 2 27/11/2014 Trả cổ tức bằng tiền mặt 25/11/2014

Đường đi 3

Không thực thi được do nếu ngày thực hiện không thuộc hình thức nào, ngày đăng ký cuối cùng sẽ nhận giá trị mặc định của kiểu DateTime là ngày

01/01/1900 là ngày thứ hai nên không thể thỏa mãn điều kiện là ngày nghỉ lể

TC3 Đường đi 4 27/11/2014 Không thuộc hình thức thực hiện quyền nào 01/01/1900

TC4 Đường đi 5 03/09/2014 Niêm yết bổ sung 01/09/2014

TC5 Đường đi 6 27/11/2014 Niêm yết bổ sung 26/11/2014

Đường đi 7

Không thực thi được do ngày thực hiện là ngày đăng ký cuối cùng, mà ngày thực hiện luôn là ngày làm việc (tức là không thuộc ngày nghỉ, lễ tết) nên ngày đăng ký cuối cùng cũng là ngày làm việc

TC6 Đường đi 8 27/11/2014 Thay đổi tỷ lệ FreeFloat 27/11/2014

4.1.5. Kết luận

Bảng 4.11 So sánh độ bao phủ của các kỹ thuật kiểm thử với mã nguồn 1 Kỹ thuật Phân lớp tƣơng Kỹ thuật Phân lớp tƣơng

đƣơng

Bảng quyết định

Dòng dữ liệu Dòng điều khiển

đƣơng Bảng quyết định 5/8 N/A 5/6 5/8 Dòng dữ liệu 100% 100% N/A 6/8 Dòng điều khiển 100% 100% 6/6 N/A

Bảng 4.12 So sánh độ bao phủ của các kỹ thuật kiểm thử với mã nguồn 2 Kỹ thuật Phân lớp tƣơng Kỹ thuật Phân lớp tƣơng

đƣơng Bảng quyết định Dòng dữ liệu Dòng điều khiển Phân lớp tƣơng đƣơng N/A 5/5 6/6 5/5 Bảng quyết định 5/8 N/A 5/6 4/6 Dòng dữ liệu 100% 100% N/A 6/6 Dòng điều khiển 6/8 4/5 6/6 N/A

Bảng 4.13 Thống kê số lỗi phát hiện đƣợc khi thực thi hai mã nguồn – bài toán 1 Kỹ thuật Mã nguồn Phân lớp tƣơng đƣơng Bảng quyết định Dòng dữ liệu Dòng điều khiển

Mã nguồn1 (đúng) 0 (lỗi) 0 (lỗi) 1 (lỗi) 1 (lỗi)

Mã nguồn 2 (sai) 2 (lỗi) 1 (lỗi) 1 (lỗi) 1 (lỗi)

Test case sinh lỗi TC6, TC7 TC3 TC6 TC3

Kết quả thực tế

(với trường hợp lỗi) 22/11/2014 22/11/2014 01/01/1900 01/01/1900

Nhận xét:

Kỹ thuật phân lớp tƣơng đƣơng:

So với kỹ thuật bảng quyết định: Từ các ca kiểm thử sinh ra bởi hai kỹ thuật này ta nhận thấy tất cả các ca kiểm thử sinh ra theo kỹ thuật phân lớp tương đương điều thỏa mãn các ca kiểm thử sinh ra theo kỹ thuật bảng quyết định . Do đó độ bao phủ của kỹ thuật này so với kỹ thuật bảng quyết định là: 5 / 5 .

Với mã nguồn 1:Thì các ca kiểm thử sinh ra theo kỹ thuật này đáp ứng được 8 ca kiểm thử sinh ra theo kỹ thuật kiểm thử dòng điều khiển. Do đó độ bao phủ của kỹ thuật này so với kỹ thuật dòng điều khiển là 8/8.

Với mã nguồn 2:Thì các ca kiểm thử sinh ra theo kỹ thuật này đáp ứng được 6 ca kiểm thử sinh ra theo kỹ thuật kiểm thử dòng điều khiển. Do đó độ bao phủ của kỹ thuật này so với kỹ thuật dòng điều khiển là 6/6.

So với kỹ thuật dòng dữ liệu: Ta có các ca kiểm thử sinh ra theo sơ đồ dòng dữ liệu cho mã nguồn 1 và mã nguồn 2 là như nhau. Do đó, các ca kiểm thử sinh ra theo kỹ thuật này đều bao gồm các ca kiểm thử sinh ra theo kỹ thuật dòng dữ liệu. Vậy, độ bao phủ là 6/6.

Kỹ thuật bảng quyết định:

So với kỹ thuật phân lớp tương đương: Ta có các ca kiểm thử sinh ra bởi kỹ thuật này chỉ thỏa mãn được 5 ca kiểm thử sinh ra bởi kỹ thuật phân lớp tương đương, mà không thỏa mãn được các ca kiểm thử TC1, TC6, TC8 . Do đó độ bao phủ của kỹ thuật này so với kỹ thuật phân lớp tương đương là: 5/8.

So với kỹ thuật dòng điều khiển:

Với mã nguồn 1: Ta có các ca kiểm thử sinh ra bởi kỹ thuật này thỏa mãn được 5 ca kiểm thử sinh ra bởi kỹ thuật dòng điều khiển, mà không thỏa mãn được 3 ca kiểm thử TC3, TC5 và TC8. Do đó bộ bao phủ của kỹ thuật này so với kỹ thuật dòng điều khiển là 5/8.

Với mã nguồn 2: Ta có các ca kiểm thử sinh ra bởi kỹ thuật này thỏa mãn được 4 ca kiểm thử sinh ra bởi kỹ thuật dòng điều khiển, mà không thỏa mãn được 2 ca kiểm thử là TC3 và TC6. Do đó bộ bao phủ của kỹ thuật này so với kỹ thuật dòng điều khiển là 4/6.

So với kỹ thuật dòng dữ liệu: Ta có các ca kiểm thử sinh ra bởi kỹ thuật này chỉ thỏa mãn 5 ca kiểm thử sinh ra theo kỹ thuật dòng dữ liệu, mà không thỏa mãn ca kiểm thử TC3. Do đó độ bao phủ của kỹ thuật bảng quyết định so với kỹ thuật dòng dữ liệu là 5/6.

Kỹ thuật dòng điều khiển:

Kỹ thuật dòng điều khiển áp dụng cho mã nguồn 1 so với kỹ thuật phân lớp tương đương và bảng quyết định: Ta có các ca kiểm thử sinh ra bởi kỹ thuật này đều thỏa mãn được tất cả các ca kiểm thử sinh ra bởi hai kỹ thuật phân lớp tương đương và bảng quyết định. Do đó độ bao phủ của kỹ thuật dòng điều khiển so với hai kỹ thuật phân lớp tương đương và bảng quyết định là 100%.

Kỹ thuật dòng điều khiển áp dụng cho mã nguồn 2 so với kỹ thuật phân lớp tương đương: Ta có các ca kiểm thử sinh ra bởi kỹ thuật này thỏa mãn được 6 ca kiểm thử sinh ra bởi hai kỹ thuật phân lớp tương đương gồm TC1, TC2, TC3, TC4, TC5, TC8 và không thỏa mãn được 2 test case là TC6, TC7. Do đó độ bao phủ của kỹ thuật dòng điều khiển so với kỹ thuật phân lớp tương đương là 6/8. So với kỹ thuật bảng quyết định: Ta có các ca kiểm thử sinh ra bởi kỹ thuật này thỏa mãn được 4 ca

kiểm thử là TC1, TC2, TC4, TC5 và không thỏa mãn được 1 ca kiểm thử TC3. Do đó, độ bao phủ là 4/5.

Kỹ thuật dòng điều khiển áp dụng cho mã nguồn 1và mã nguồn 2 so với kỹ thuật dòng dữ liệu: Các ca kiểm thử sinh ra bởi kỹ thuật này đều thỏa mãn tất cả các ca kiểm thử sinh ra bởi kỹ thuật dòng dữ liệu. Do đó độ bao phủ của kỹ thuật dòng điều khiển so với kỹ thuật dòng dữ liệu là 6/6.

Kỹ thuật dòng dữ liệu:

So với kỹ thuật phân lớp tương đương và bảng quyết định: Ta có các ca kiểm thử sinh ra bởi kỹ thuật này đều thỏa mãn được tất cả các ca kiểm thử sinh ra bởi hai kỹ thuật phân lớp tương đương và bảng quyết định. Do đó độ bao phủ của kỹ thuật dòng dữ liệu so với hai kỹ thuật phân lớp tương đương và bảng quyết định là 100%.

So với kỹ thuật dòng điều khiển áp dụng cho mã nguồn 1: Các ca kiểm thử sinh ra bởi kỹ thuật này chỉ thỏa mãn được 6 các ca kiểm thử sinh ra bởi kỹ thuật dòng điều khiển, mà không thỏa mãn được 2 ca kiểm thử là TC6 và TC8. Do đó độ bao phủ của kỹ thuật dòng dữ liệu so với kỹ thuật dòng điều khiển là 6/8.

So với kỹ thuật dòng điều khiển áp dụng cho mã nguồn 2: Các ca kiểm thử sinh ra bởi kỹ thuật này đều thỏa mãn được 6 các ca kiểm thử sinh ra bởi kỹ thuật dòng điều khiển. Do đó độ bao phủ của kỹ thuật dòng dữ liệu so với kỹ thuật dòng điều khiển là 6/6

Kết luận

Ta nhận thấy đối với việc kiểm thử sinh theo đặc tả yêu cầu bài toán thì việc áp dụng kỹ thuật bảng quyết định chưa xử lý triệt để được các trường hợp phát sinh lỗi với dữ liệu không nằm trong miền đúng, các trường hợp mà việc kiểm tra dữ liệu lặp lại nhiều lần. Do đó, ta sẽ áp dụng kỹ thuật phân lớp tương đương để kiểm thử cho bài toán một.

Việc sinh kiểm thử áp dụng theo đặc tả yêu cầu vẫn chưa đảm bảo việc phát sinh lỗi cho phần mềm, do đối với mỗi lập trình viên thì việc sinh mã lệnh cho các đặc tả là khác nhau. Từ phân tích trên với bài toán 1 áp dụng với hai mã nguồn khác nhau, ta nhận thấy cần kết hợp phương pháp kiểm thử cấu trúc.

Từ hai bảng phân tích (Bảng 10, 11) ta có số lỗi tìm được theo kỹ thuật kiểm thử dòng điều khiển với mã nguồn 1 bao phủ toàn bộ số lỗi tìm được với kỹ thuật kiểm thử phân lớp tương đương. Số lỗi tìm được theo kỹ thuật kiểm thử dòng điều khiển với mã nguồn 2 chỉ bao phủ được 6/8 lỗi so với kỹ thuật phân lớp tương đương. Với kỹ thuật kiểm thử dòng dữ liệu, sẽ không tìm được lỗi phát sinh khi tại vòng lặp, do đó không bao phủ được hết các lỗi so với kỹ thuật phân lớp tương đương. Do đó, ta sẽ chọn kỹ thuật kiểm thử dòng điều khiển để kiểm thử hàm với bài toán 1.

4.2. Bài toán 2

Phát biểu bài toán: Xác định tỷ lệ FreeFloat của chí số theo Bảng áp dụng dải tỷ lệ tính chỉ số.

Mô tả bài toán:Hệ số Free float của chỉ số sẽ được xác định như sau:

Nếu tỷ lệ thực của chỉ số có giá trị <5 thì kết quả là không đủ điều kiện đưa vào các chỉ số HNX.

Nếu tỷ lệ thực của chỉ số có giá trị >=5 và <= 15 thì tỷ lệ free float của chỉ số là tỷ lệ thực của chỉ số.

Nếu tỷ lệ thực của chỉ số có giá trị > 15 và <= 20 thì tỷ lệ free float của chỉ số là 20%.

Nếu tỷ lệ thực của chỉ số có giá trị > 20 và <= 30 thì tỷ lệ free float của chỉ số là 30%.

Nếu tỷ lệ thực của chỉ số có giá trị > 30 và <= 40 thì tỷ lệ free float của chỉ số là 40%.

Nếu tỷ lệ thực của chỉ số có giá trị > 40 và <= 50 thì tỷ lệ free float của chỉ số là 50%.

Nếu tỷ lệ thực của chỉ số có giá trị > 50 và <= 75 thì tỷ lệ free float của chỉ số là 75%.

Nếu tỷ lệ thực của chỉ số có giá trị > 75 và <= 100 thì tỷ lệ free float của chỉ số là 50%.

Bảng 4.14 Bảng hệ số tỷ lệ free float của chỉ số HNXFree float chính Free float chính

xác Dải Hệ số Free float

< 5% Không đủ điều kiện để đưa vào các chỉ số HNX > 5% to 15% Tỷ lệ thực** > 15% to 20% 20% > 20% to 30% 30% > 30% to 40% 40% > 40% to 50% 50% > 50% to 75% 75% > 75% to 100% 100%

Từ mô tả bài toán ta xác định dữ liệu nhƣ sau:

Dữ liệu đầu vào: Tỷ lệ thực tính được của chỉ số.

Dữ liệu đầu ra là: Tỷ lệ Free float của chỉ số tính theo Bảng dải hệ số free float của chỉ số.

Từ phân tích bài toán theo đặc tả yêu cầu ta áp dụng các kỹ thuật kiểm thử để xây dựng ca kiểm thử như sau:

4.2.1. Áp dụng kỹ thuật phân lớp tương đương

Ta sẽ chia các miền dữ liệu theo kỹ thuật tương đương dựa vào các kết quả đầu ra của dữ liệu như sau:

Miền 1 là các dữ liệu đầu vào là tỷ số thực của chỉ số < 5 % hoặc giá trị >100% đều không thỏa mãn điều kiện tính chỉ số.

Miền 2 là các dữ liệu đầu vào là tỷ số thực của chỉ số nằm trong khoảng từ 5 đến 15. Với miền này, ta sẽ có 2 giá trị biên là 5 và 15.

Miền 3 là các dữ liệu đầu vào là tỷ số thực của chỉ số nằm trong khoảng từ 15 đến 20. Với miền này, ta sẽ có 1 giá trị biên là 20.

Miền 4 là các dữ liệu đầu vào là tỷ số thực của chỉ số nằm trong khoảng từ 20 đến

Một phần của tài liệu (LUẬN văn THẠC sĩ) kiểm thử đơn vị cho hệ thống (Trang 46)

Tải bản đầy đủ (PDF)

(85 trang)