27.07.2013 Views

2 Why We Need Model-Based Testing

2 Why We Need Model-Based Testing

2 Why We Need Model-Based Testing

SHOW MORE
SHOW LESS

You also want an ePaper? Increase the reach of your titles

YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.

236 Compositional <strong>Model</strong>ing<br />

namespace SP<br />

{<br />

enum CMD { Setup, Work }<br />

[Feature]<br />

public class Commands<br />

{<br />

static Map cmd = Map.EmptyMap;<br />

[Action("ReqSetup(m,_)")]<br />

static void ReqSetup(int m) {cmd = cmd.Add(m, CMD.Setup);}<br />

static bool ReqSetupEnabled(int m) {return !cmd.ContainsKey(m);}<br />

[Action("ResSetup(m,_,_)")]<br />

static void ResSetup(int m) {cmd = cmd.RemoveKey(m);}<br />

static bool ResSetupEnabled(int m)<br />

{<br />

return cmd.ContainsKey(m) && cmd[m] == CMD.Setup;<br />

}<br />

[Action("ReqWork(m,_)")]<br />

static void ReqWork(int m) {cmd = cmd.Add(m, CMD.Work);}<br />

static bool ReqWorkEnabled(int m) {return !cmd.ContainsKey(m);}<br />

[Action("ResWork(m,_,_)")]<br />

static void ResWork(int m) {cmd = cmd.RemoveKey(m);}<br />

static bool ResWorkEnabled(int m)<br />

{<br />

return cmd.ContainsKey(m) && cmd[m] == CMD.Work;<br />

}<br />

[AcceptingStateCondition]<br />

static bool IsAcceptingState() { return cmd.IsEmpty; }<br />

}<br />

}<br />

Figure 14.12. Commands feature model program.<br />

FSM(0, AcceptingStates(0),<br />

Transitions(t(0,ReqSetup(3),0), t(0,ReqWork(4),0),<br />

t(0,ResSetup(3),0), t(0,ResWork(4),0)))<br />

Figure 14.13. A scnenario used to restrict the commands model program.<br />

more free ebooks download links at:<br />

http://www.ebook-x.com

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!