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