之前記錄過一次從邏輯到資料的設計心得,今天細化再記錄一次,當掌握了基礎的等價類邊界值之後,其實可以解決很多基礎的用例設計了,但是實際中會有很多不好設計的複雜場景,此時需要一些更高效的設計方案。這個後面再說,先說乙個簡單的場景:
學生,成績(邊界值,等價類資料) 查詢學生:姓名,成績區間(邊界值,等價類條件)
,此場景下需要根絕學生成績對學生進行篩選,測試這個功能,首先成績區間的邊界值進行設計,考慮實際情況是分數1-100,浮點數型,所以用例設計的入參會有-1 0 20 100 105,五個邊界值分數,如果是區間也可以同樣根據五個邊界值設定區間,設定完這些之後就結束了嗎?不是的,這時候需要根絕條件對資料進行設計,資料最少要有10,0,30,100四個分數,至於為什麼,其跟等價類的是一樣的,0和100作為邊界,而10 和30作為20的左右點,20作為滿足點,同樣,當設定0 或者100時,也保證能夠查出來資料以及有其他不滿足的資料,保證每乙個用例是從眾多不同情況的值中正確篩選出了正確的值,這樣設計的用例才滿足了某條件下從不同資料中,篩選出對應的值,而某條件就包括用例設計的那些條件。即從邏輯(條件)到資料的設計模式,資料和邏輯的關係是結合的,邏輯決定了資料的設計方法,而資料的豐富度驗證了邏輯。那麼拋開資料和邏輯的角度來說,資料本身,又要經過設計,比如50 和50.5的區分,因為分數存在小數目,於是最後的成績應該是10,0,30,50,50.5,100這麼多分數,條件應該是= -1,0,20,50,50.5,100,這麼多情況,如此便驗證了根據某分數查詢的一基礎查詢。
那麼如果增加條件呢,根據姓名+成績的方式去查詢學生呢,由於姓名又需要設計出等價類,假設姓名有五種情況,那麼正常情況應該是剛才的組合*5,也就是30個情況,而資料設計也需要同樣多的倍數。這樣就大大降低了測試效率,於是我引入了獨立設計法。即假設各單元測試點之間是沒有交叉關係的,姓名的查詢不影響成績的查詢,即單純使用姓名查詢沒問題,單純使用成績查詢沒問題,姓名的一種情況+成績的一種情況查詢沒問題,那麼我就認為成績+姓名的所有組合查詢都沒有問題。實際上這是不科學的,但是這樣確實可以最大化保證最少的用例實現最高的保證。即a的各種邏輯正確,b的各種邏輯正確,那麼a且b的組合邏輯就不需要考慮a和b內部的詳細情況了。如果覺得不合理可以使用正交來解決這種情況也可以,自然是更科學一些,具體根據實際來決定,我個人很少用正交
從RTL到邏輯門的邏輯綜合過程
從rtl到邏輯門的綜合過程由邏輯綜合工具自動完成,其中包括以下幾個步驟 rtl描述 設計者在高層次上使用rtl結構描述設計。設計者在功能驗證上耗費一定的時間,以確保rtl描述的功能正確無誤。功能驗證完成後,才能把rtl輸入到邏輯綜合工具。翻譯 rtl描述被邏輯綜合工具轉換為乙個未經優化的內部中間表示...
從用例到測試用例的追蹤 2
如何從用例建立測試用例 在建立乙個測試用例之前,你需要為所給用例確定全部的場景。乙個場景是用例的乙個例項。它描述了乙個貫穿事件流的特殊路徑。圖 6是乙個假設的圖表,它描繪了乙個擁有基本流程b和可選流程a1,a2,a3,a4的用例。為了找到全部的場景,我們需要畫出貫穿於此圖的所有場景。圖6.在用例中找...
邏輯與計算理論 從邏輯到計算的轉變之路
總所周知,演算與組合子演算構成的邱奇計算理論與圖靈的圖靈機模型共同構成了計算機計算理論的支柱。在前面的文章中我們已經討論過了自動機與圖靈機相關理論,在這裡我們將進入 演算與組合子計算理論的相關介紹。對於 演算 你可以把它看成是高階函式的乙個形式系統。於是我們就有必要重新理解或定義一下什麼是函式的概念...