Sinh các ca kiểm thử
- Mỗi ca kiểm thử là đường đi từ trạng thái ban đầu đến trạng thái Mỗi ca kiểm thử là đường đi từ trạng thái ban đầu đến trạng thái
kết thúc
kết thúc
- Mỗi ca kiểm thử phải có ít nhất một phép chuyển trạng tháiMỗi ca kiểm thử phải có ít nhất một phép chuyển trạng thái
Biểu diễn ca kiểm thử dưới dạng như ví dụ sau:
S_index*t_usrname=username*c_submit=error_log
S_index*t_usrname=username*c_submit=error_log
Bắt đầu bằng trạng thái S_index, ứng với hành động t_usrname, trạng thái mới của hệ thống là username, tiếp đến ứng với hành động c_submit, hệ thống sẽ chuyển sang trạng thái error_log.
68
Sinh các ca kiểm thử có khả năng phát hiện tối đa các lỗi lập trình: Tất cả các phép chuyển trạng thái phải xuất hiện ít nhất 1 lần trong tất cả các ca kiểm thử,
Xuất phát từ trạng thái khởi tạo, Từ trạng thái này, ứng với các trạng thái tiếp theo của nó sao cho phép chuyển trạng thái này chưa được duyệt, chúng ta sẽ sinh ra các
phần của các ca kiểm thử. Với mỗi phần này ứng với mỗi trạng thái mới, chúng ta tiến hành tương tự như trên.
Trong trường hợp tất cả các phép chuyển trạng thái từ trạng thái đang xét đã được viếng thăm, nếu trạng thái này không là trạng thái kết thúc thì ta sẽ chọn ngẫu nhiên một dãy các phép chuyển trạng thái tiếp theo tới một trạng thái kết thúc.
Khi ta gặp trạng thái kết thúc thì thuật toán sẽ trả lại một ca kiểm thử tương ứng. Thuật toán sẽ kết thúc khi tất cả các phép chuyển trạng thái của hệ thống được viếng thăm
S_index*c_submit=error_log S_index*t_usrname=username*c_submit=error_log S_index*t_usrname=username*t_passwd=usr+pass * c_submit=Admin_main S_index*t_usrname=username*t_passwd=usr+pass *c_submit=PDT_main S_index*t_usrname=username*t_passwd=usr+pass*c_submit=Stu_main S_index*t_passwd=password*t_usrname=usr+pass*del_passwd=userna me*c_submit=error_log S_index*t_usrname=username*t_passwd=usr+pass*del_usrname=pass word*c_submit=error_log*c_back= S_index*c_submit=error_log 70