考慮變量a,b,C d作爲輸入,+, - ,*,/爲運營商
你將永遠有三家運營商
a op b op c op d
現在考慮括號
的組合現在
1 group of 2
(a op b) op c op d
a op (b op c) op d
a op b op (c op d)
1 group of 3
(a op b op c) op d
a op (b op c op d)
each 3 can be comprised
(x op y op z) as above example
(x op (y op z))
((x op y) op z)
Also, 2 groups of 2
(a op b) op (c op d)
,必須測試以上各組操作的每個組合:
Haha silly code parser, you think these are comments in here... tsk tsk
+++, ++-, ++*, ++/, +-+, +--, +-*, +-/,
+*+, +*-, +**, +*/, +/+, +/-, +/*, +//,
-++, -+-, -+*, -+/, --+, ---, --*, --/,
-*+, -*-, -**, -*/, -/+, -/-, -/*, -//,
*++, *+-, *+*, *+/, *-+, *--, *-*, *-/,
**+, **-, ***, **/, */+, */-, */*, *//,
/++, /+-, /+*, /+/, /-+, /--, /-*, /-/,
/*+, /*-, /**, /*/, //+, //-, //*, ///
因此,用這些操作,每組三個(包括簡單版本和嵌套版本),以及兩組兩個一組來測試每個組。
據我估計,這是640測試。
這可以在邏輯上減少,例如如果op1 == op2 == op3
那麼括號無關緊要。還有其他減少你可以做。
編輯:那麼您將需要在A,B,C的每個置換,d這將帶來總量達15,360運行(更少,如果有重複,當然)
我編輯了標籤,因爲這與Android沒有任何關係。 – DeeV
是'a /(b-c/d)'測試用例? – corsiKa
我很好奇你玩什麼版本的24,允許中間結果分數。 – Simon