原代碼下載 TestRun0512.exe (120KB)
原文出處:Test Run:Software Testing Paradoxes
悖論很奇妙。在本月的專(zhuān)欄里,我將向你們展示你們進(jìn)行軟件測試時(shí)可能遇到的三個(gè)有趣的案例。他們本質(zhì)上是數學(xué)問(wèn)題,而且他們對你們的問(wèn)題庫是一個(gè)很好的補充。
在這個(gè)專(zhuān)欄的第一部分,我解釋 Simpson 悖論。該悖論闡述的是這樣一種情況:軟件系統 A 與軟件系統 B相比,各方面都要差,然而軟件系統 A 可能是一個(gè)更好的系統。 在第二部分,我揭示了 Braess悖論。根據這個(gè)悖論,當增加一個(gè)完全負載平衡的服務(wù)器時(shí),網(wǎng)絡(luò )性能會(huì )以一種奇怪的方式降低。最后,我考慮了 Parrondo悖論。這個(gè)悖論認為兩個(gè)相互獨立并且是錯誤百出的系統能夠不可思議地產(chǎn)生一個(gè)正確的系統。
Simpson 悖論經(jīng)常發(fā)生。雖然你實(shí)際碰到 Braess 悖論和 Parrondo 悖論的機會(huì )很少,我還是認為你們會(huì )有興趣讀它們。
Simpson 悖論
假設你有兩個(gè)不同的軟件系統原型:原型 A 和原型 B 。你想知道從用戶(hù)的反饋來(lái)看,哪個(gè)原型更好。假設對于易用性,原型 A 從 200個(gè)用戶(hù)當中獲得了 50 個(gè)用戶(hù)的優(yōu)秀評價(jià),而原型 B 從 100 個(gè)用戶(hù)中獲得了 15 個(gè)用戶(hù)的優(yōu)秀評價(jià)(見(jiàn)圖 1 )。從這個(gè)數據來(lái)看,原型A 的易用性顯然要比原型 B 要好,因為原型 A 獲得了 25% 的優(yōu)秀評價(jià),而原型 B 只得到了 15% 。
易用性數據 | 原型 A | 原型 B |
優(yōu)秀評價(jià)用戶(hù)數目 | 50 | 15 |
總用戶(hù)數目 | 200 | 100 |
得分 | 25% | 15% |
安全性數據 | 原型 A | 原型 B |
優(yōu)秀評價(jià)用戶(hù)數目 | 85 | 300 |
總用戶(hù)數目 | 100 | 400 |
得分 | 85% | 75% |
現在,假設對于安全性,原型 A 從 100 個(gè)用戶(hù)當中獲得了 85 個(gè)用戶(hù)的優(yōu)秀評價(jià),而原型 B 從 400 個(gè)用戶(hù)中獲得了 300個(gè)用戶(hù)的優(yōu)秀評價(jià)。對于這個(gè)數據,你能看到原型 A ( 85% 的優(yōu)秀率)再次比原型B( 75%的優(yōu)秀率)要好。因此,你認為哪個(gè)原型要好?在你回答之前,讓我們把圖 1 中的數據整合到一個(gè)單獨的表格當中(圖 2 )。
整合之后的數據 | 原型 A | 原型 B |
優(yōu)秀評價(jià)用戶(hù)數目 | 135 | 315 |
總用戶(hù)數目 | 300 | 500 |
得分 | 45% | 63% |
如果你將優(yōu)秀評價(jià)的數目結合起來(lái),你就能看到原型 A 從 300 個(gè)用戶(hù)中獲得了 135 個(gè)優(yōu)秀評價(jià),比例僅為 45% 。相反,原型 B 有63% 的優(yōu)秀評價(jià)率,從 500 個(gè)用戶(hù)當中獲得了 315 個(gè)用戶(hù)的優(yōu)秀評價(jià)。因此,原型 B 要好,對不對?或者原型 A 要好?如果是原型 A要好,你怎樣解釋這些整合之后的數據?
這是 Simpson 悖論的一個(gè)例子,這是一種真實(shí)現象。這里沒(méi)有任何的詭計。正確答案是原型 A是更好的系統,你不能把這些數據整合成一個(gè)象圖 2 一樣的單獨表。 Simpson悖論的一個(gè)簡(jiǎn)單、非正式的描述是:兩個(gè)及以上的數據集單獨評估時(shí)會(huì )產(chǎn)生一個(gè)結果,而聯(lián)合起來(lái)評估時(shí)會(huì )產(chǎn)生一個(gè)相反的結果。如果你再回看圖 1中的數據,你會(huì )注意到不同原型不同列中的評估總值是不一樣的。這是 Simpson 悖論的必要條件。
前述例子是假設的,然而它清楚地揭示了 Simipson 悖論。重要的是, Simpson悖論在實(shí)際工作中確實(shí)發(fā)生,并且你應該警惕它們的出現。這種悖論會(huì )悄悄躲過(guò)你的法眼,尤其是當你只能看到總數據,而沒(méi)有機會(huì )接觸到原始、沒(méi)有結合的數據。這里有一組拼湊起來(lái)的數據,但是數據的來(lái)源場(chǎng)景是真實(shí)的。這個(gè)實(shí)際的例子出現在 P.J.Bickel, E.A.Hammel 和J.W.O''Connell 的文獻“研究生錄取的性別偏差: Berkeley 的數據”( 1975 )。
考慮一個(gè)大學(xué)的研究生院的數據(圖3)。這個(gè)數據顯示向這個(gè)大學(xué)申請的 9000 個(gè)男性中的 4000人被錄取進(jìn)行研究生學(xué)習( 44.4% ),而 4500 個(gè)女性之中只有 1500 個(gè)被錄。 33.3%)。這個(gè)案例是不是證明了性別不平等呢?不見(jiàn)得。圖 3 中的數據是該大學(xué) 4 個(gè)系錄取數據的整合?纯疵枋龈鱾(gè)系的原始數據的圖 4。從這個(gè)數據中來(lái)看,你會(huì )發(fā)現在每個(gè)系女性被錄取的比例比男性都要高!很明顯,圖 4 中未整合的數據比圖 3中整合的數據更好的描述了錄取率。盡管這只是現實(shí)事件的一個(gè)很大簡(jiǎn)化,你還能看到 Simpson 悖論是很難發(fā)現的。
| 錄取的人數 | 拒絕的人數 | 錄取率 |
男性 | 4000 | 5000 | 44.4% |
女性 | 1500 | 3000 | 33.3% |
| 男性 | 女性 | ||||
系 | 錄取的人數 | 拒絕的人數 | 錄取率 | 錄取的人數 | 拒絕的人數 | 錄取率 |
A | 2000 | 2400 | 45% | 400 | 450 | 47% |
B | 1200 | 1000 | 55% | 100 | 80 | 56% |
C | 700 | 900 | 44% | 600 | 730 | 45% |
D | 100 | 700 | 13% | 400 | 1740 | 19% |
總計 | 4000 | 5000 |
| 1500 | 3000 |
|
Simpson 悖論從數學(xué)上來(lái)說(shuō)確實(shí)不是一種真正的悖論。一個(gè)數學(xué)悖論產(chǎn)生一個(gè)邏輯上不一致的答案,而 Simpson悖論的結論是奇怪的、意料之外的,但是卻是能夠得到解釋的。如果你想深入研究,網(wǎng)上有很多關(guān)于 Simpson悖論的資料。給我們的啟示是,當你檢查測試結果數據的時(shí)候,你要先懷疑這些數據是不是從其他原始資料整合而來(lái)的。如果是,那么你應該看看原始未經(jīng)整合的數據。另外,如果你在產(chǎn)生一個(gè)測試數據報告,當你嘗試要整合數據以便簡(jiǎn)化你的闡述時(shí)要相當仔細。有人說(shuō)“統計能用來(lái)說(shuō)明任何你想要的”,這種情況正是它們說(shuō)提及的。
文章來(lái)源于領(lǐng)測軟件測試網(wǎng) http://kjueaiud.com/