State transition exercise • testingvn.com


Thông báo về việc đăng ký mới thành viên: Sau khi đăng ký thành viên xong, các bạn vui lòng Thông báo cho Quản Trị Viên theo link này
để Quản Trị Viên sẽ kích hoạt tài khoản cho các bạn nhé. Xin lỗi vì sự bất tiện này.

State transition exercise

Chuyên đề thảo luận về kiểm thử hộp đen (Black-box Testing)
Nội qui chuyên mục
Chuyên đề này chỉ thảo luận về Black-box Testing.
Để có kết quả nhanh, các bạn nên search trước khi tạo chủ đề mới.

Re: State transition exercise

Gửi bàigửi bởi tvn » T.Hai 30 Tháng 12, 2013 11:30 pm

Thường kiểm thử dựa vào thay đổi trạng thái như thế này thì là functional cases, kiểm thử chức năng
tvn
 
Bài viết: 4607
Ngày tham gia: T.Ba 10 Tháng 8, 2010 10:11 am
Đến từ: HCM

Re: State transition exercise

Gửi bàigửi bởi phandinh2010 » T.Năm 16 Tháng 1, 2014 3:29 pm

Thanks tvn nhiều vì bài viết rất hữu ích. <3
Nhưng e có thắc mắc nhỏ là trong bảng Test case TC1-->TC13 anh đưa ra, TC3: Giỏ hàng đang có ít nhất 2 món hàng, click Remove để bớt đi 1 món hàng. Khi đó trạng thái S2 vẫn được giữ nguyên chứ ạ (nhưng e thấy a ghi chú S2=>S1)
phandinh2010
 
Bài viết: 1
Ngày tham gia: T.Tư 05 Tháng 9, 2012 2:16 pm
Đến từ: BH inc


Re: State transition exercise

Gửi bàigửi bởi cd_bently » T.Tư 06 Tháng 8, 2014 2:29 pm

Khi khách hàng muốn tính tiền (Check out) thì chuyển sang trạng thái S3 tổng kết và tính giá tiền (summary & cost) để mua. Nếu danh sách hàng này hợp lệ (số hàng và tổng số tiền mình thấy được - OK), thì chuyển sang trạng thái S4 là thanh toán; Nếu kiểm tra thấy không phù hợp (vì không đủ tiền để mua chẳng hạn,…) thì phải quay lại trạng thái S3, khách hàng có thể lấy bớt hàng ra rồi quay lại trạng thái S4.

bản thân em nghĩ vì có đoạn này nên trong sơ đồ từ S4 tới S3 phải có một đường đi nữa. Nghĩa là S4 có thể quay ngược lại S3. Mong người chỉ bảo.
Trong phần viết test case, ở TC3 khi mà giỏ hàng có ít nhất 2 item thì thực hiện remove 1 item nó vẫn còn 1 item thì ở ghi chú phải là S2=>S2 chứ, vì nếu S2=>S1 thì đó là giỏ hàng rỗng mà, mong mọi người giải thích giúp.
cd_bently
 
Bài viết: 83
Ngày tham gia: T.Bảy 12 Tháng 7, 2014 9:40 pm

Re: State transition exercise

Gửi bàigửi bởi cd_bently » T.Tư 06 Tháng 8, 2014 2:57 pm

phandinh2010 đã viết:Thanks tvn nhiều vì bài viết rất hữu ích. <3
Nhưng e có thắc mắc nhỏ là trong bảng Test case TC1-->TC13 anh đưa ra, TC3: Giỏ hàng đang có ít nhất 2 món hàng, click Remove để bớt đi 1 món hàng. Khi đó trạng thái S2 vẫn được giữ nguyên chứ ạ (nhưng e thấy a ghi chú S2=>S1)

mình cũng nghĩ như bạn. Mong anh tvn giải thích giúp
cd_bently
 
Bài viết: 83
Ngày tham gia: T.Bảy 12 Tháng 7, 2014 9:40 pm

Re: State transition exercise

Gửi bàigửi bởi ngocvandn82 » T.Tư 20 Tháng 5, 2015 3:07 pm

Anh tvn ơi, e ko xem được các image là table dịch chuyển trạng thái và table các testcase, anh có thể gởi lại được ko ạ

Thanks a nhiều

tvn đã viết:Hình bên dưới là sơ đồ trạng thái của giỏ hàng. Trạng thái (state) khởi tạo là S1 khi giỏ hàng chưa có hàng (empty - đang rỗng). Khi thêm một món hàng vào giỏ (add item) thì sẽ chuyển sang (transition) trạng thái có hàng S2. Khi thêm một món hàng khác nữa vào giỏ thì không làm thay đổi trạng thái này (lúc này chỉ làm thay đổi số lượng hàng trong giỏ). Các món hàng trong giỏ có thể bỏ bớt (remove item), khi bỏ bớt 1 món hàng, mà trong giỏ còn hàng thì nó không làm thay đổi trạng thái, nhưng khi bỏ mớt món cuối cùng (remove last item) thì sẽ bị chuyển sang trạng thái S1, vì lúc này giỏ rỗng. Khi khách hàng muốn tính tiền (Check out) thì chuyển sang trạng thái S3 tổng kết và tính giá tiền (summary & cost) để mua. Nếu danh sách hàng này hợp lệ (số hàng và tổng số tiền mình thấy được - OK), thì chuyển sang trạng thái S4 là thanh toán; Nếu kiểm tra thấy không phù hợp (vì không đủ tiền để mua chẳng hạn,…) thì phải quay lại trạng thái S3, khách hàng có thể lấy bớt hàng ra rồi quay lại trạng thái S4. Tổng cộng chúng ta có 4 trạng thái (nốt hình tròn) và 7 sự kiện (các đường mũi tên).

Chú ý: Trong ví dụ này, S1 là Trạng Thái Bắt Đầu (Start State) và S4 là Trạng Thái Kết Thúc (End State), nghĩa là chỉ có ở S4 là không đi đâu được nữa, còn ở các trạng thái khác thì chúng ta đều có thể đi đến 1 trạng thái bất kỳ nào đó khác.

Hình ảnh

Dưới đây là một trường hợp – test case – bao phủ toàn bộ các trạng thái. Lưu ý rằng trạng thái kết thúc từ một bước (step) hoặc sự kiện (event) là trạng thái cho sự kiện tiếp theo, vì vậy các bước này phải được đi qua theo thứ tự này.

Hình ảnh

Mặc dù trong ví dụ này chúng ta không quan tâm đến việc gì sẽ xảy ra tại Trạng thái 4, nhưng có thể có vài sự kiện hoặc hành động nào đó xảy ra, ví dụ như click Cancel (không mua hàng nữa) hoặc click nút Payment để tiến hành thanh toán, và có thể là sau khi thực hiện thanh toán nó sẽ hiển thị màn hình thông báo hoặc chuyển sang màn hình khác hoặc bắt đầu một sơ đồ trạng thái khác (state diagram) như kiểm tra tính hợp lệ của thẻ credit card, số dư, email, v.v…

Dưới đây là một bảng mô tả trạng thái tương ứng với sơ đồ trạng thái trên:

Hình ảnh

Trong bảng trên tất cả các ô chứa dấu – là trạng thái không hợp lệ (invalid transition). Sau đây là một vài ví dụ các trường hợp kiểm thử không hợp lệ có thể xảy ra:
    • Thử thêm một món hàng ở trạng thái S3 - tổng kết và tính giá tiền.
    • Thử bớt một móng hàng khi giỏ hàng đang rỗng (empty – không có món hàng nào - ở trạng thái S1
    • Thử bấm OK khi đang shopping – ở trạng thái S2 – vì ở màn hình shopping thì không có nút OK mà chỉ có nút Check out.

Từ bảng trên chúng ta sẽ viết được các test case sau:

Hình ảnh

Vì trạng thái đầu tiên của chúng tra trong bài tập này là ở màn hình mua hàng và giỏ hàng đang rỗng => vì vậy ở đây mình không thêm case đang ở màn hình chính, click nút mua hàng để vào màn hình mua hàng; hoặc đang ở màn hình login, rồi vào màn hình mua hàng - shopping.
Và cũng không có case mô tả ở màn hình thanh toán sẽ đi đâu nữa, khi click Cancel thì quay về màn hình mua hàng hoặc khi click nút Thanh toán thì hiển thị màn hình in biên lai,…

Các test case TC1 đến TC6 là test case cho các trường hợp hợp lệ (valid – Positive test case); các test case TC7 đến TC13 là cho các trường hợp không hợp lệ (invalid – Negative test case). Trong trường hợp không hợp lệ thì có một số case trên là không thực hiện được, nghĩa là không thể test được như TC7, trên màn hình shoping không có nút Check out thì làm sao mình click được nên test case này sẽ được loại bỏ. Vì đây là giả định nên mình cố gắng liệt kê ra càng nhiều test case càng tốt.

Mời các bạn xem thêm các bài tập sau:
ngocvandn82
 
Bài viết: 11
Ngày tham gia: T.Sáu 20 Tháng 3, 2015 12:30 pm

Re: State transition exercise

Gửi bàigửi bởi tvn » T.Tư 20 Tháng 5, 2015 7:23 pm

Nhung hinh tren day, khong can dang nhap cung thay duoc ma ngocvandn82. Ban thu refresh lai page thu.
tvn
 
Bài viết: 4607
Ngày tham gia: T.Ba 10 Tháng 8, 2010 10:11 am
Đến từ: HCM

Re: State transition exercise

Gửi bàigửi bởi tvn » T.Hai 04 Tháng 7, 2016 11:56 pm

cd_bently đã viết:
Khi khách hàng muốn tính tiền (Check out) thì chuyển sang trạng thái S3 tổng kết và tính giá tiền (summary & cost) để mua. Nếu danh sách hàng này hợp lệ (số hàng và tổng số tiền mình thấy được - OK), thì chuyển sang trạng thái S4 là thanh toán; Nếu kiểm tra thấy không phù hợp (vì không đủ tiền để mua chẳng hạn,…) thì phải quay lại trạng thái S3, khách hàng có thể lấy bớt hàng ra rồi quay lại trạng thái S4.

bản thân em nghĩ vì có đoạn này nên trong sơ đồ từ S4 tới S3 phải có một đường đi nữa. Nghĩa là S4 có thể quay ngược lại S3. Mong người chỉ bảo.
Trong phần viết test case, ở TC3 khi mà giỏ hàng có ít nhất 2 item thì thực hiện remove 1 item nó vẫn còn 1 item thì ở ghi chú phải là S2=>S2 chứ, vì nếu S2=>S1 thì đó là giỏ hàng rỗng mà, mong mọi người giải thích giúp.


Trường hợp trên đây, đúng là S2 => S2 chứ không phải S2 => S1 (do sai sót của mình)
Trường hợp S2 => S1 khi nào là remove item cuối cùng.
tvn
 
Bài viết: 4607
Ngày tham gia: T.Ba 10 Tháng 8, 2010 10:11 am
Đến từ: HCM

Re: State transition exercise

Gửi bàigửi bởi thuyntjunnie » T.Tư 22 Tháng 2, 2017 4:55 pm

ADMIN cho mình hỏi, theo mình thì testcase còn thiếu 1 trường hợp. Đó là:

Giỏ hàng đang có ít nhất một món hàng => Click remove item. Khi này giỏ hàng rỗng sẽ quay lại trạng thái S1.

Đây là trường hợp S2=> S1

Còn khi giỏ hàng đang có ít nhất 2 món hàng, remove 1 món thì vẫn còn 1 món. Nó sẽ là S2 => S2. Sao lại là S2=> S1 ạ

Rất mong nhận được giải đáp của admin
thuyntjunnie
 
Bài viết: 1
Ngày tham gia: T.Bảy 10 Tháng 12, 2016 2:29 pm

Re: State transition exercise

Gửi bàigửi bởi tvn » T.Năm 23 Tháng 2, 2017 1:05 am

thuyntjunnie đã viết:ADMIN cho mình hỏi, theo mình thì testcase còn thiếu 1 trường hợp. Đó là:

Giỏ hàng đang có ít nhất một món hàng => Click remove item. Khi này giỏ hàng rỗng sẽ quay lại trạng thái S1.

Đây là trường hợp S2=> S1

Còn khi giỏ hàng đang có ít nhất 2 món hàng, remove 1 món thì vẫn còn 1 món. Nó sẽ là S2 => S2. Sao lại là S2=> S1 ạ

Rất mong nhận được giải đáp của admin


Cám ơn bạn đã chỉ ra thiếu sót. Đúng như bạn nói, ở TC3 đó là trường hợp S2-S2 chứ không phải S2-S1.

Ở hai hình trên mình có mô tả đủ trường hợp nhưng ở bảng test case thì thiếu test case này.

Screen Shot 2017-02-23 at 1.01.23 AM.png

Screen Shot 2017-02-23 at 1.01.37 AM.png

Screen Shot 2017-02-23 at 1.01.43 AM.png
Vui lòng đăng nhập để thấy link download.
tvn
 
Bài viết: 4607
Ngày tham gia: T.Ba 10 Tháng 8, 2010 10:11 am
Đến từ: HCM

Trang vừa xem

Quay về Black box Testing - Kiểm thử hộp đen

Đang trực tuyến

Đang xem chuyên mục này: Không có thành viên nào trực tuyến.1 khách.