Cách xác định statement coverage và branch coverage

Thảo luận các vấn đề liên quan đến Kiểm thử phần mềm.
Forum rules
Thảo luận các vấn đề liên quan đến Kiểm thử phần mềm.
Post Reply
vtthuy
Hoc Tester
Posts: 2
Joined: Tue 22 Mar, 2011 10:41 pm
Contact:

Cách xác định statement coverage và branch coverage

Post by vtthuy »

Hi All.
mọi người có ai biết về statement coverage với branch không chỉ cho em với. xác định và phân tích theo ví dụ này

1. Given the following code, which is true about the minimum number of test cases required for full statement and branch coverage:

Code: Select all

Read P
Read Q
IF P+Q > 100 THEN
Print “Large”
ENDIF
If P > 50 THEN
Print “P Large”
ENDIF
a) 1 test for statement coverage, 3 for branch coverage
b) 1 test for statement coverage, 2 for branch coverage
c) 1 test for statement coverage, 1 for branch coverage
d) 2 tests for statement coverage, 3 for branch coverage
e) 2 tests for statement coverage, 2 for branch coverage

2. Given the following code, which is true:
IF A > B THEN
C = A – B
ELSE
C = A + B
ENDIF
Read D
IF C = D Then
Print “Error”
ENDIF
a) 1 test for statement coverage, 3 for branch coverage
b) 2 tests for statement coverage, 2 for branch coverage
c) 2 tests for statement coverage. 3 for branch coverage
d) 3 tests for statement coverage, 3 for branch coverage
e) 3 tests for statement coverage, 2 for branch coverage

Ai biết giúp em với ạ :(
Thanks



tvn
Admin
Posts: 4900
Joined: Tue 10 Aug, 2010 10:11 am
Location: HCM
Contact:

Cách xác định statement coverage và branch coverag

Post by tvn »

1. Given the following code, which is true about the minimum number of test cases required for full statement and branch coverage:

Sửa lại code 1 xíu cho dễ nhận ra statement coverage nhé

Code: Select all

    Read P
    Read Q
    IF P+Q > 100 THEN Print “Large” ENDIF (1)
    If P > 50 THEN Print “P Large”  ENDIF (2)
+ Chỉ có 2 câu lệnh => nên chỉ cần 2 tests để kiểm tra bao phủ câu lệnh
+ Khi vẽ sơ đồ luồng xử lý thì ta thấy có 3 nhánh => nên cần ít nhất 3 tests để kiểm thử bao phủ nhánh

Image

=> chọn câu: d) 2 tests for statement coverage, 3 for branch coverage

2. Given the following code, which is true:
IF A > B THEN C = A – B (1)
ELSE
C = A + B (2)
ENDIF
Read D
IF C = D Then Print “Error” (3)
ENDIF
+ Đoạn code này có 3 câu lệnh => nên cần 3 tests để kiểm tra bao phủ câu lệnh
+ Khi vẽ sơ đồ luồng xử lý thì ta thấy có 3 nhánh => nên cần ít nhất 3 tests để kiểm thử bao phủ nhánh

Image

=> Chọn câu d) 3 tests for statement coverage, 3 for branch coverage

Mong mọi người góp ý
Thanks
You do not have the required permissions to view the files attached to this post.



tvn
Admin
Posts: 4900
Joined: Tue 10 Aug, 2010 10:11 am
Location: HCM
Contact:

Re: Cách xác định statement coverage và branch coverage

Post by tvn »

Chào các bạn, hôm nay tình cờ mình tìm thấy có bài viết về ví dụ 1 của bạn vtthuy, mình post lên đây cho bà con tham khảo.
Branch Statement Path Coverage.jpg
Bài giải nằm trong file pdf đính kèm nhé.
You do not have the required permissions to view the files attached to this post.



texas
Hoc Tester
Posts: 5
Joined: Sat 03 Dec, 2011 11:06 am
Contact:

Re: Cách xác định statement coverage và branch coverage

Post by texas »

Theo em bài 1 đáp án là B
Bài 2 đáp án là B .
Không biết em có hiểu sai vấn đề không. Nhưng em nghĩ đáp án trên là đúng :">.
Ai pro giải quyết hộ với



texas
Hoc Tester
Posts: 5
Joined: Sat 03 Dec, 2011 11:06 am
Contact:

Re: Cách xác định statement coverage và branch coverage

Post by texas »

Theo code
Bài 1 :
1 statement coverage:
  • Read P, read Q, (P + Q > 100) Print "Larger", (P > 50) Print "P larger"
2 branch coverage :
  • Read P, read Q, (P + Q > 100) Print "Larger", (P > 50) Print "P larger"
    Read P, read Q, (P+Q < 100) , (P<50)



thuy_moon
Hoc Tester
Posts: 4
Joined: Tue 06 Mar, 2012 2:13 pm
Contact:

Re: Cách xác định statement coverage và branch coverage

Post by thuy_moon »

Bài 1:
Statement Coverage: Bao phủ câu lệnh: tức là mình phải thực hiện đi qua tất cả các nút => sẽ có 1 statement
Branch Coverage : bao phủ nhánh: ở đây ta có 2 nhánh => 2 branch statement
Đáp án B
Bài 2: làm tương tự => Đáp án B



tvn
Admin
Posts: 4900
Joined: Tue 10 Aug, 2010 10:11 am
Location: HCM
Contact:

Re: Cách xác định statement coverage và branch coverage

Post by tvn »

Mình thắc mắc là, tại sao ở trên có 2 nhánh, ở dưới có 2 nhánh. Vậy thì sao mình không phải là 4 nhánh mà là chỉ có 2 thôi??? có ai rành cái này giải thích dùm nha, thanks



renzoku
Fresher Tester
Posts: 14
Joined: Fri 03 Aug, 2012 1:46 pm
Location: Danang
Contact:

Re: Cách xác định statement coverage và branch coverage

Post by renzoku »

Hì sorry nếu như mình đã đào mộ topic này. Vì vẫn chưa có câu trả lời cuối cùng nên mình mạn phép trả lời cho những bạn vẫn đang tìm hiểu như mình.

Statement Coverage (SC): Miễn sao tìm được đường đi qua tất cả các mệnh đề điều kiện
--> Ở bài 1 chỉ cần một đường đi.

Branch Coverage (BC): Cần tìm số đường đi tối thiểu bao phủ được tất cả các nhánh.
--> Ở bài 1 chỉ cần 1 nhành bên phải, 1 nhánh bên trái.
--> 2 in total

Path Coverage (PC): Cần tìm tất cả các đường đi có thể xảy ra.
--> Ở bài 1 có 2 nhánh chẻ
--> 4 đường đi

Mới tập tành nên nếu sai thì các cao thử sửa dùm mình vs nha.

Thanks,



tvn
Admin
Posts: 4900
Joined: Tue 10 Aug, 2010 10:11 am
Location: HCM
Contact:

Re: Cách xác định statement coverage và branch coverage

Post by tvn »

tvn wrote:Mình thắc mắc là, tại sao ở trên có 2 nhánh, ở dưới có 2 nhánh. Vậy thì sao mình không phải là 4 nhánh mà là chỉ có 2 thôi??? có ai rành cái này giải thích dùm nha, thanks
Hôm nay mình trả lời câu hỏi từ hồi xưa :D

Vì nói đến "bao phủ" này, người ta tự ngầm hiểu là số lần (test case) ít nhất để "bao phủ được". Vì vậy lần đầu mình đi 1 bên (viết test case với input sao cho thỏa nhánh bên trái), sau đó cần 1 test case nữa để đi qua nhánh bên phải, như vậy với 2 test cases mình đã đi qua được tất cả các nhánh.



quangkhaianh
Fresher Tester
Posts: 16
Joined: Wed 04 Dec, 2013 11:34 am
Contact:

Re: Cách xác định statement coverage và branch coverage

Post by quangkhaianh »

tvn wrote:
tvn wrote:Mình thắc mắc là, tại sao ở trên có 2 nhánh, ở dưới có 2 nhánh. Vậy thì sao mình không phải là 4 nhánh mà là chỉ có 2 thôi??? có ai rành cái này giải thích dùm nha, thanks
Hôm nay mình trả lời câu hỏi từ hồi xưa :D

Vì nói đến "bao phủ" này, người ta tự ngầm hiểu là số lần (test case) ít nhất để "bao phủ được". Vì vậy lần đầu mình đi 1 bên (viết test case với input sao cho thỏa nhánh bên trái), sau đó cần 1 test case nữa để đi qua nhánh bên phải, như vậy với 2 test cases mình đã đi qua được tất cả các nhánh.

Nếu theo bạn nói thì như vây đáp án bài 1 là e, 2 tests for statement coverage, 2 for branch coverage, vì có 2 câu lệnh và 2 nhánh trái và phải nhưng mình làm thử bài này trên istqb thì mình cũng chọn đáp án là e thì kết quả báo incorrect. Vậy bạn có thể nói rõ hơn xem tại sao không?



Post Reply

Return to “Software Testing - Kiểm thử phần mềm”