- 軟件測試的藝術(原書第3版)
- (美)Glenford J.Myers Tom Badgett Corey Sandler
- 506字
- 2021-01-14 16:50:43
3.3.3 運算錯誤
1.是否存在不一致的數據類型(如非算術類型)的變量間的運算?
2.是否有混合模式的運算?例如,將浮點變量與一個整型變量做加法運算。
這種情況并不一定是錯誤,但應該謹慎使用,確保程序語言的轉換規則能夠被正確理解。看看下面的Java程序片段,顯示了整數運算中可能發生的取整誤差:
3.是否有相同數據類型、不同字長變量間的運算?
4.賦值語句的目標變量的數據類型是否小于右邊表達式的數據類型或結果?
5.在表達式的運算中是否存在表達式向上或向下溢出的情況?也就是說,最終的結果看起來是個有效值,但中間結果對于編程語言的數據類型可能過大或過小。
6.除法運算中的除數是否可能為0?
7.如果計算機表達變量的基本方式是基于二進制的,那么運算結果是否不精確?也就是說,在一個二進制計算機上,10×0.1很少會等于1.0。
8.在特定場合,變量的值是否超出了有意義的范圍?例如,對變量PROBABILITY賦值的語句可能需要進行檢查,保證賦值始終為正且不大于1.0。
9.對于包含一個以上操作符的表達式,賦值順序和操作符的優先順序是否正確?
10.整數的運算是否有使用不當的情況,尤其是除法?舉例來說,如果i是一個整型變量,表達式2*i/2==i是否成立,取決于i是奇數還是偶數,或是先運算乘法,還是先運算除法。
推薦閱讀
- Mastering AWS Lambda
- 編寫整潔的Python代碼(第2版)
- SEO智慧
- Groovy for Domain:specific Languages(Second Edition)
- Oracle數據庫從入門到運維實戰
- HTML5 and CSS3 Transition,Transformation,and Animation
- Getting Started with SQL Server 2012 Cube Development
- Troubleshooting PostgreSQL
- Building a Quadcopter with Arduino
- 劍指MySQL:架構、調優與運維
- Linux Device Drivers Development
- Creating Mobile Apps with jQuery Mobile(Second Edition)
- Mastering Data Mining with Python:Find patterns hidden in your data
- Building Dynamics CRM 2015 Dashboards with Power BI
- Python數據可視化之美:專業圖表繪制指南(全彩)