需求定義中的不支持——可能的測試盲區數據庫
一款產品必然有其系統需求或規格,在設計說明中定義清楚的不支持,不實現的功能或特性,有的時候也多是測試設計中的盲區。瀏覽器
(舉例:需求定義產品產品的一些屬性爲——XX系統不支持Win7以前的系統,XX系統只支持IE內核瀏覽器,XX系統和YY系統的早期版本不兼容。)服務器
實例:ide
某款平臺產品,從Version1開始,幾年下來已經迭代到Version4,期間接入了N多種終端產品,外設產品,數據庫,Web服務器。由於兼容性太過龐大,產品分支拉的也密密麻麻,致使維護和測試都很是耗時。藉着技術重大更新的機會,平臺產品開發了Version5版本,對早期的兼容性通過詳細的討論和設計,約定好只支持幾個重大分支的終端,外設產品。測試
這個版本規劃喜大普奔,團隊內外都說之後就省時省力了。但很不幸在版本進行beta測試時,突然出現了平臺崩潰的致命問題。spa
排查下來是一個明確不支持的早期版本設備,接入了平臺,致使了平臺的異常。從測試設計的角度,這就是疏漏之處。產品明肯定義了不支持,並不意味着就能夠在測試中不用考慮此類場景。按照邊界值的測試設計,這種明確不支持的項目,也能夠理解爲N+1的邊界值。操作系統
接入「明確不支持」的設備,而後能夠驗證不少項目:設計
一、兼容容錯性,雙方系統是否有異常/崩潰/重啓。orm
二、設計友好性:是否有人性化的提示——好比版本太老,請升級新版本。排序
三、設計嚴謹性:直接提示禁止接入。
從產品設計的角度,兼容性的保護沒有設計好,確定是設計疏漏,可是測試沒有可以及時設計場景驗證此問題,主要責任仍是在測試設計方面。
這也是測試設計須要注意的環節。
規格書中明確明確的,XXX功能不支持,或者XXX版本不兼容,只支持XX系統,XX瀏覽器等等。這些並不表明測試能夠不測試。這就是很明顯的健壯性和邊界值保護測試。
可是事物具備一體兩面性,不考慮是不對的,可是也不要陷入到過分設計的牛角尖裏面去。
仍是上文的舉例——XX系統不支持Win7以前的系統,那麼在測試設計的時候,有沒有必要把XP、9八、vista、2000都裝起來,進行兼容性測試?同理,好比Android系統下的App,明確不支持4以前的版本,那麼是否是也要把以前的系統都裝起來,進行兼容性測試?
從測試設計和投入產出的實際狀況來講,前者(win7以前)幾乎是確定不用測試,後者(Android4以前)可能不用測試,也可能用測試。
這就是此類測試設計的一個常規分類,產品的性質、客戶、覆蓋面等等,須要綜合考慮。按照測試設計從少到多來排序,以下:
1、操做系統兼容性。
能夠就按照需求定義所支持的系統進行測試,不須要過多的考慮不支持的產品。
首先,既然產品敢這麼定義,就意味着產品自己就不是QQ、WPS這種,須要全版本兼容的覆蓋面很是廣的產品,而是有多是特定用戶,特定環境,或者使用目標客戶精準的產品。因此就沒有太多的必要,過分測試。好比守望先鋒,你興致勃勃安裝完,發現卡的一塌糊塗,你也不會罵暴雪產品爛,只會怪本身沒看清楚軟件運行的系統要求,而後本身去買顯卡。
2、Web客戶端對瀏覽器的兼容性。
同理,產品既然設計如此,必然有其道理,若是用戶是全覆蓋類型,你設計產品說不支持chorme瀏覽器,可能會被同類產品直接淘汰。可是若是是給公司內部用的OA系統,ERP系統等,徹底能夠經過行政要求的方式搞定,只須要在某內核的瀏覽器下完美實現便可。
因此測試設計,也是輕量級的測試設計,找幾款其餘內核的瀏覽器,大概的安裝使用一下,看是否會有提示「本產品支持XX瀏覽器」,是否會出現系統異常,致使瀏覽器崩潰,或者操做系統無響應,就可認爲達到設計目的。
3、App對手機操做系統的兼容性。
在手機操做系統上,能夠明確不兼容,可是由於載體的不可控性,這部分仍是須要測試的。一樣,如今網上的模擬雲挺多,也不須要實體機刷Rom,投入和產出仍是正向的。
4、本身產品之間的兼容性。
好比說某種行業產品,好比超市的掃碼計費系統,小區樓宇的報警系統等,從平臺、到終端,從軟件到設備,都是本身作的,那麼這種升級的兼容性,反而是產品設計和測試設計的重點。
新產品的迭代,能夠明確不支持某種老產品/老版本,可是要給出友好的提示,或者明確的解決方案。
因此這種測試,每每就是XY的一張表,或者XYZ的對通表,一個個測試過去,打勾打叉,枯燥繁瑣,可是事關重要。
本文主要描述了測試設計可能的一個盲區——規格明確不支持的功能/特性。但同時也明確了不要過分設計,不然就是浪費成本和項目時間。
測試設計其實是一個複雜的加權係數的模型,和產品、客戶、使用方式、頻率、缺陷修復成本、行業、公司不少的因素相關,切不可一律而論。