測試人員關注數據庫表設計是“測試左移”的一種手段,可以把有關數據庫的潛在bug消滅在系統測試之前,從而提高交付效率。
以MySQL為例,QA可從以下方面對數據庫表設計做測試的左移:
1、功能角度
表結構
- 確保每張表都有主鍵,且主鍵值唯一且非空,以保證表中每行數據的唯一性和可識別性
- 檢查外鍵約束是否有效,即外鍵值必須是對應主鍵表中存在的值,避免出現孤立數據或無效關聯
- 表之間存在關聯的,驗證表與表之間的關聯關系是否正確建立(如主鍵和外鍵的設置是否準確,關聯字段的數據類型和長度是否一致)
- 評估數據表結構對業務變化的適應性(是否能夠靈活地進行調整和擴展,以滿足不斷變化的業務需求)
表字段
- 字段的數據類型是否符合業務要求(比如數據量大的字段類型設計成int,使用unsignedint或bigint)
- 字段的長度設計是否合理(是否有合理的buffer,兼容后續新業務)
- 不同表,相同含義的字段命名是否統一(多分參與開發時,歧義少,也就降低了bug出現的可能性)
- 不同表,相同含義字段的類型、長度是否一致(不一致時,可能會出現表A正常落庫,表B因不能正常落庫而發生bug)
- 敏感字斷是否經過加密處理(如銀行卡號,身份正號,手機號等)
- 約束條件是否符合業務要求(接口設計字段可以空,但表設計字段NOT NULL,提交的時候顯然會報錯)
- 冗余字段是否貼合實際業務要求(很多時候,RD為了提高擴展性,設計很多無效的字斷,會拉低CURD性能)
- 字段有默認值的,檢查默認值是否符合業務要求
- 日期字斷需要特別關注,是否符合業務上對日期格式的要求
2、性能角度
- 對于查詢操作會操作的表,是否有設計索引(經常用于查詢條件、連接條件或排序的字段,需創建索引)
- 索引的創建是否合理,是否能有效提高查詢性能(設計索引的字段應為查詢條件的過濾字段)
- 索引是否過度創建(合理的索引可以提高查詢性能,但過多的索引會拉低增刪改的性能)
- 視圖是否合理創建(如果新增表參與聯表查詢,考慮是否可以使用視圖來提高查詢速度)
轉自https://www.cnblogs.com/ailiailan/p/18535863
該文章在 2024/11/11 9:39:35 編輯過