基于有限状态机的软件测试方法
作者:网络转载 发布时间:[ 2012/10/17 10:27:26 ] 推荐标签:
public enum State {welcome, register, displayTickets, terminal};
public boolean loginEricOkGuard() {return loginGrd(); }
@Action public void loginEricOk() { login(“ERIC”, “ETO”); }
public boolean loginGrd() {return state == State.welcome;}
public void login(String userName, String userPassword)
{
if (userName.equals(“”)) {
message = “EMPTY_USERNAME”; /*@REQ: CIN_031 @*/
}
else if (userPassword.equals(“”)) {
message = “EMPTY_PASSWORD”; /*@REQ: CIN_032 @*/
}
else if ( ! allUsers.containsKey(userName)) {
message = “UNKNOWN_USER_NAME_PASSWORD”; /*@REQ: CIN_033 @*/
}
else {
User user_found = allUsers.get(userName);
if (user_found.password.equals(userPassword)) {
currentUser = user_found;
message = “WELCOME”; /*@REQ: CIN_030 @*/
}
else {
message = “WRONG_PASSWORD”; /*@REQ: CIN_034 @*/
}
}
}
public Object getState()
{
}
public void reset(boolean testing)
{
}
已JunitModel为例以annotation @Action 为属性间步骤的实现。reset为case进行reset的重写方法。运行结果中多种覆盖率的统计。
越来越多的公司注重自动化的效率和覆盖率,也有越来越多的商业化工具基于MBT及穷举的理论开始被接受,使自动化更加智能化是下一个测试时代的理论。

sales@spasvo.com