■ Sinh các ca kiểm thử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: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, 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 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.
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 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ử,
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ó 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
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ư
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.
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 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
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.
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 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ẽ 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_logS_index*c_submit=error_log
■ S_index*t_usrname=username*c_submit=error_logS_index*t_usrname=username*c_submit=error_log
■ S_index*t_usrname=username*t_passwd=usr+passS_index*t_usrname=username*t_passwd=usr+pass ** c_subc_submmit=Admin_mainit=Admin_main ■ S_index*t_usrname=username*t_passwd=usr+passS_index*t_usrname=username*t_passwd=usr+pass *c_submit=PDT_main*c_submit=PDT_main ■ S_index*t_usrname=username*t_passwd=usr+pass*c_submit=Stu_mainS_index*t_usrname=username*t_passwd=usr+pass*c_submit=Stu_main ■ S_index*t_passwd=password*t_usrname=usr+pass*del_passwd=username*cS_index*t_passwd=password*t_usrname=usr+pass*del_passwd=username*c _submit=error_log _submit=error_log ■ S_index*t_usrname=username*t_passwd=usr+pass*del_usrname=password*S_index*t_usrname=username*t_passwd=usr+pass*del_usrname=password* c_submit=error_log*c_back= c_submit=error_log*c_back= S_index*c_submit=error_logS_index*c_submit=error_log 70