一.因果圖分析法的由來和介紹:
1.因果圖分析法又叫魚骨圖分析法,由日本管理大師石川馨先生所發明,它是對問題的 根因 進行分析的方法,透過現象看本質的方法:
2.什么是因果圖:
在軟件設計中,因果圖用於 輸入與輸出、輸入與輸出 存在依賴與約束關系的被測對象。因果圖是一種利用圖解法分析輸入的各種組合情況,從而進行測試用例設計。
等價類和邊界值分析法同樣是對輸入條件的測試分析,但其輸入條件之間並不存在任何關聯或約束,且必須相互獨立(等價類的原則之一)。
二.因果圖的關系:
1.在進行因果圖圖解之前,需要先了解因果圖特有的術語和語法(關系圖):
2.因果關系:
2.1. 恆等(是1則1):
若原因出現,則結果出現;若原因不出現,則結果也不出現。若C1是1,則E1也是1;若C1是0,則E1也是0;商場購物,買單后才會打印憑條,沒有買單是不會打印的。
2.2.非~(是1則0):
若原因出現,則結果不出現;若原因不出現,則結果出現。若C2是1,則E2是0;若C2是0,則E2是1。例:用手機逛淘寶,如果有網絡,則不提示網絡異常;如果沒有網絡,則提示網絡異常。
2.3. 或 U(其中一個是1則為1):
若原因中的一個有出現,則結果出現,若所有原因都不出現,則結果不出現,若 C3 或 C4 或 C5 是1,則E3是1;若 C3 和 C4 和 C5 是0,則E3是0。 例:手機、平板、電腦、電視,擁有其中之一就可以看視頻,如果都沒有則無法看視頻。
2.4. 與 ^(全部為1才是1):
若所有原因都出現,則結果出現;若原因中的一個不出現,則結果不出現。若 C3 和 C4 和 C5 是1,則 E4 是1;若 C3 或 C4 或 C5 是0,則 E4 是0。例:手機要有電、有網絡信號,才能上網。沒電或沒網絡信號,則不能上網。
3.條件約束:
3.1.異或/互斥(Exclusive):
C1/C2/C3中至多為1。例:你要趕赴約會地點,只能選擇步行、自行車、打車、坐地鐵、開車中的一個。也可以用都不選擇,貓在家里爽約。
3.2. 或(Inclusive):
C1、C2中至少一個必須是1。例:你和女朋友想在家里看電影,手機、平板、電腦都可以是選擇,但是必須選擇至少其中一個。
3.3.唯一(Only):
C1和C2必須有且只有一個是1。 例:想進入地鐵站閘口,那你必須從 交通卡、微信支付、臨時票中選擇其中一個。
3.4.要求(Require):
C1出現時,C2必出現。C1不出現時,C2不確定。例:在籃球場上打球,如果出手投籃(C1),則必然擁有球權(C2)。如果沒有出手投籃,也無法確定是否擁有球權。
3.5.強制(Force):
C1出現時,C2必不出現。C1不出現時,C2不確定。例:如果你在公司了,則你必定不在家。如果你不在公司,你也未必在家。
三.分析步驟:
1.分析被測對象的規格,找出原因與結果;
2.確定因果關系,畫出因果圖;
3.確定因果圖中的約束,並做好標記;
4.把因果圖轉換為判定表;
5.用判定表設計測試用例。
四.實例:
1.在自助機器進行地鐵卡的充值:
要求:自助機器只接收50元或100元紙幣,一次只能使用一張紙幣,一次充值金額只能為50元或100元。
1.1 .分析對象的原因和結果:
1.2 .畫出因果圖:C1和C2或關系,C3和C4是或關系:
1.3 .因果圖增加約束:C1和C2 只能出現一個,C3 和C4 只能出現一個:
1.4. 轉換成判定表,並通過約束去除無效用例:
1.5. 根據判定表生成測試用例。
五.小結:
因果圖分析是為有效測試分析的輔助工具,通過因果圖分析可以得到判定表。判定表根據約束進行用例的有效分析,最終輸出測試用例。但是很多時候,繪制因果圖是非常麻煩,非常影響效率,所以在熟練之后,可以直接寫判定表,進行編寫測試用例。