⑴ 什麼樣的測試用例是好的測試用例
1、用例覆蓋程度
毫無疑問,這一點應該是最重要的,無需多說,覆蓋率最大化是一套測試用例的最重要評價標准,如果漏測就杯具了。2、用例是否已經達到工作量最小化
在滿足用例覆蓋程度最大化的前提下,應該盡量減小執行用例所需要的工作量。這些方面的方法有不少,如條件覆蓋,分支覆蓋,正交覆蓋等方法。面對不同的測試對象,也有不同的方法來保證:對於網頁背後的php邏輯,可以通過在網頁上測試後,用一些工具比如xdebug來統計代碼覆蓋率;對於向外提供介面的server
,採用的方式就是分析在外面暴露的介面設計用例,大致的通過介面參數來估計一下分支判斷的情況。
3、用例的分類以及描述是否足夠清晰
用例的分類,在這里是指相同類型的用例是否放在一起了。例如:介面類的用例,參數的取值范圍是1-3,但是現在卻傳入4;數據類用例,狀態機現在位於狀態2,卻要求狀態跳轉到無法到達的4;邏輯類用例,正常功能的產出等。將相同類型的用例放在一起,有助於理清思路,清楚了解用例設計是否完備。
用例的描述,是指描述的清晰程度是否能夠形成文檔。例如上面參數取值范圍的例子,用例這樣寫:「傳入錯誤的值」或者「傳入非1-3的值」,明顯沒有寫成「傳入值4」有效。這與寫程序一樣,總是寫閉區間的范圍而不是開區間。4、用例是否表明了測試目的
寫明用例的測試目的,對文檔的易於理解性和工作交接的好處不言而喻,現代軟體工程不可能只有一個人在做事情,項目於人員的變動也是難免的。在過程中留下足夠的信息,可以在後續工作提高很多效率。5、測試用例的易於維護性
如果被測對象有所升級,測試用例的說明或者腳本是不是容易維護呢?例如在有狀態機的情況下,測試用例之間是相互依賴的(即需要一定的執行順序),這樣被依賴的用例修改後,後端不需要同步根據修改。而如果用例之間沒有相互依賴關系(如用例是自己造的數據,不是依賴於前端的產出),可能一旦有變化,就需要修改這兩個。當然,這兩種情況不能絕對的說哪種好,是需要看實際使用時候的情況進行取捨的。
⑵ 程序員學習一般去哪些網站
學習網站大體分兩類,一類國內網站,一類國外網站,國內的網站有w3c網,學習網頁前端知識,python,php,java官網,mysql數據官網,當然也有綜合類網站比如:菜鳥,最後就是論壇,官網都有友情鏈接過去。國外網站需要翻過去訪問。下面是部分知識點
1.確保堆棧上至少有 n 個額外空位。如果不能把堆棧擴展到相應的尺寸,函數返回假。失敗的原因包括將把棧擴展到比固定最大尺寸還大 (至少是幾千個元素)或分配內存失敗。 這個函數永遠不會縮小堆棧;
void lua_close (lu a_State *L);
2.銷毀指定 Lua 狀態機中的所有對象 (如果有垃圾收集相關的元方法的話,會調用它們),並且釋放狀態機中使用的所有動態內存。 在一些平台上,你可以不必調用這個函數, 因為當宿主程序結束的時候,所有的資源就自然被釋放掉了。 另一方面,長期運行的程序,比如一個後台程序或是一個網站伺服器, 會創建出多個 Lua 狀態機。那麼就應該在不需要時趕緊關閉它們。
int lu a_compare (lua_State *L, int index1, int index2, int op);
比較兩個 Lua 值。 當索引 index1 處的值通過 op 和索引 index2 處的值做比較後條件和叢滿足,函數返回 1 。 這個函數遵循 Lua 對應的操作規則(即有可能觸發元方法)。 反之,函數返回 0。 當任何一個索引無效時,函數也會返回 0 。
3.連接棧頂的 n 個值, 然後將這些值出棧,並把結果放在棧頂。如果 n 為 1 ,結果就是那個值放在棧上(即,函數什麼都不做); 如果 n 為 0 ,結果是一個空串。 連接依照 Lua 中通常語義完成()。
void lu a_ (lua_State *L, int fromidx, int toidx);
從索引 fromidx 處復制一個值到一個有效索引 toidx 處,覆蓋那裡的原有值。 不會影響其它位置的值。
void l ua_createtable (lua_State *L, int narr, int nrec);
4.創建一張新的空表壓棧。 參數 narr 建議了這張表作為序列使用時會指棚嫌有多少個元素;參數 nrec 建議了這張表可能擁有多少序列之外的元素。 Lua 會使用這些建議來預分配這張新表。 如果你知道這張表用途的更多信息,預分配可以提高性能。 否則,你可以使用函數
lua_mp
把函數導出成二進制代碼塊 。 函數接收棧頂的 Lu a 函數做參數, 然後生成它的二進制代碼塊。 若被導出的東西被再次載入, 載入的結果就相當於原來的函數。 當它在產生代碼塊的時候, lua_mp 通過調用函數 writer (r ) 來寫入數據,後面的 data 參數會被傳入 writer 。
5.如果唯手 strip 為真, 二進制代碼塊將不包含該函數的調試信息。
最後一次由 writer 的返回值將作為這個函數的返回值返回; 0 表示沒有錯誤。
該函數不會把 Lua 函數彈出堆棧。
希望能幫到你,謝謝!