4.6.2 軟件測試的步驟

系統測試是可有可無的。因為系統測試是和環境結合在一起。系統測試應該是在系統設計或者是需求分析階段的前一步來完成的。


單元測試它的測試計劃是在詳細設計階段完成。所以說單元測試的計劃是在詳細設計階段來完成的。

模塊接口的測試它保證了測試模塊的數據流可以正確地流入和流出。模塊接口可以保證它的數據流可以正確地流入和流出。測試模塊接口要注意測試模塊輸入參數的形式在個數、屬性、單位上是否一致。比如說這個模塊它有五個接口參數:分別是什么類型,可以設計一些用例在調用這個模塊的時候輸入一些值。輸入一些值來看看最終它出來的結果的單位啊這些東西是否一致,和原來的設計是否一致。

再要注意調用標準函數時所使用的參數。在屬性、數目、順序方面是否正確。如果用到了一些函數,是否正確地運用了這些函數。

還有全局變量在各個模塊中它的定義和用法是否一致。

再有輸入是否僅改變了形式參數。

還有開關語句是否正確。規定的I/O的格式(輸入輸出的格式)是否與輸入輸出的語句是一致的。我的設計與我的實現是否保持一致。使用文件之前是否已經打開了文件,或者是用了之后是否把它關閉了。這些都是模塊接口部分需要注意的內容。


?

?在單元測試階段中局部數據結構出錯是比較常見的錯誤。注意四個方面內容:第一,變量的說明是否合適。第二是否使用了沒有賦值或者是沒有初始化的變量。第三是變量的初始值或者是默認值是否正確。第四是變量是否有錯,比如說拼寫上的錯誤啊這些。


重要的執行通路。 在單元測試中對路徑的測試是最基本的任務。由于我們不能夠進行窮舉的測試,由于它的單元里面模塊里面它的路徑比較多,很難做到覆蓋到每一條路徑。所以需要精心地設計測試例子來發現是否有計算啊比較啊或者是控制流這方面的錯誤。計算方面的錯誤主要指的是算術運算它的優先次序不正確或者是理解錯誤或者是精度不夠這些方面的問題。還有的是比較或者是控制流這些方面的錯誤,比如說用if語句進行分支的時候就牽涉到了比較和控制流。本應該相等的那些量由于精度不夠所以造成不等或者是不同類型進行比較或者是邏輯運算符不正確這些屬于比較和控制流的錯誤。兩個方面:一個是計算方面的,一個是比較和控制流方面的。這是對于重要的執行路徑進行測試。


?

出錯處理。錯誤的條件并且對錯誤進行處理。 對出錯的有一條專門的路徑給予提示給予正確的引導。


邊界條件。 是單元測試的最后工作。軟件或者是程序最容易出錯的往往是在邊界上面。所以在邊界上面找錯誤也是最容易把這些錯誤發現出來的。


對模塊進行測試不可能單獨地就來測這個模塊。被測的模塊可能是系統中的中間模塊,它是中間模塊意味著它上層有模塊,下層也有模塊。中層模塊所行使的功能往往就是執行上級下達的命令再把這些命令分發到下面進行具體的執行。執行完之后就有很多個結果反饋上來。然后呢它進行匯總再把結果反饋到上面去。所以測試不可能單獨地測試中間模塊,而且要涉及到它的上層模塊和它的下層模塊。如果單元測試的模塊剛好它的上層模塊和下層模塊都沒有做好,那就要設計驅動模塊和樁模塊它的替代品。處于被測模塊上層的/領導層的就是驅動模塊,就是驅使被測模塊進行一些活動。而被測模塊的它的下層模塊叫做樁模塊。我們要測試一個模塊的時候要構造它的樁模塊,也要構造它的驅動模塊。


集成測試(組裝測試).模塊與模塊之間不是孤立的,是有聯系的。因為所有的模塊經過單元測試之后測試無誤之后再把它組裝起來仍然有可能產生錯誤。幾個模塊組裝起來之后沒有達到預期的功能。模塊與模塊之間存在磨合問題,最后無法達到預期的效果。或者是單元測試注重的是局部數據結構的問題,而全局數據結構檢查比較少。全局數據結構也有可能產生問題。另外一個模塊在執行某一個任務的時候會有誤差,但是誤差是可以接受的。大型程序從上面到下面分了非常多的模塊。每一個模塊它的數據有一點點誤差,一級一級把誤差傳下來的時候最后誤差可能就很大了。組裝測試通常用的是黑盒測試法。

黑盒測試法不涉及到程序的執行流程。只看了一個運行結果。相比單元測試基本上就用到了白盒測試法。 因為單元測試主要測試的時內部的一些結構,具體的一些運行步驟。所以單元測試一般用到的是白盒測試,而組裝測試通常是用黑盒測試。

集成測試的測試計劃是在概要設計階段制定的。集成的方式又可以分為非增值式和增值式。非增值式它是指的首先對每一個模塊分別進行模塊的測試。然后再把所有的模塊組裝在一起進行測試,最終得到整個軟件的系統。它是一次性進行組裝來測試。把所有模塊一次性組裝好,它是非增值式。

增值式首先可以測一個頂層模塊。測了一個頂層模塊之后呢頂層模塊底下有幾個模塊。我要增加一個子模塊,把這兩個模塊當成一個整體來測試。測試完了之后沒問題了再加第三個模塊。把它們再重新測試一遍然后再加。一層一層這么加下來。系統就由原來的很小的一部分慢慢慢慢地擴大了。這個就是增值它的含義。

增值式它有幾種具體的形式。分了自頂向下的增值方式。

自頂向下的增殖方式:首先測試最開始的一個模塊。

轉載于:https://www.cnblogs.com/ZHONGZHENHUA/p/6936811.html

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/392583.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/392583.shtml
英文地址,請注明出處:http://en.pswp.cn/news/392583.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

nodejs調試ndb_如何開始使用NDB調試NodeJS應用程序

nodejs調試ndbNodeJs was released almost 9 years ago. The default debugging process of NodeJs (read Node.js) is quite clumsy. You are likely already aware of the need to add --inspect to the node script with node inspector. It is also dependent on Chrome. T…

初學必讀:61條面向對象設計的經驗原則

(1)所有數據都應該隱藏在所在的類的內部。(2)類的使用者必須依賴類的共有接口,但類不能依賴它的使用者。(3)盡量減少類的協議中的消息。(4)實現所有類都理解的最基本公有接口[例如,拷貝操作(深拷貝和淺拷貝)、相等性判斷、正確輸出內容、從ASCII描述解析…

棧,遞歸

棧的基本操作注意&#xff1a;是從后往前連接的 1 #include <stdio.h>2 #include <Windows.h>3 typedef struct sStack4 {5 int num;6 struct sStack* pnext;7 }Stack;8 void push(Stack **pStack,int num);9 int pop(Stack **pStack); 10 BOOL isEmpty(St…

mysql集群多管理節點_項目進階 之 集群環境搭建(三)多管理節點MySQL集群

多管理節點MySQL的配置很easy&#xff0c;僅須要改動之前的博文中提高的三種節點的三個地方。1)改動管理節點配置打開管理節點C:\mysql\bin下的config.ini文件&#xff0c;將當中ndb_mgmd的相關配置改動為例如以下內容&#xff1a;[ndb_mgmd]# Management process options:# Ho…

leetcode 767. 重構字符串(貪心算法)

給定一個字符串S&#xff0c;檢查是否能重新排布其中的字母&#xff0c;使得兩相鄰的字符不同。 若可行&#xff0c;輸出任意可行的結果。若不可行&#xff0c;返回空字符串。 示例 1: 輸入: S “aab” 輸出: “aba” 代碼 class Solution {public String reorganizeStri…

APK偽加密

一、偽加密技術原理 我們知道android apk本質上是zip格式的壓縮包&#xff0c;我們將android應用程序的后綴.apk改為.zip就可以用解壓軟件輕松的將android應用程序解壓縮。在日常生活或者工作中&#xff0c;我們通常為了保護我們自己的文件在進行壓縮式都會進行加密處理。這樣的…

亂花漸欲迷人眼-杜絕設計的視噪

視噪&#xff0c;又稱視覺噪音。我們每天接受來自外界的大量信息&#xff0c;這些信息有將近70&#xff05;是通過視覺感知獲得的。視噪會干擾我們對信息的判斷&#xff0c;影響到產品的易用性和可用性&#xff0c;與用戶體驗的好壞息息相關。(克勞德香農圖演示了噪音如何影響信…

超詳細windows安裝mongo數據庫、注冊為服務并添加環境變量

1.官網下載zip安裝包 官網地址https://www.mongodb.com/download-center/community?jmpnav&#xff0c;現在windows系統一般都是64位的&#xff0c;選好版本、系統和包類型之后點擊download&#xff0c;mongodb-win32-x86_64-2008plus-ssl-4.0.10.zip。 2.解壓zip包&#xff0…

開源 數據倉庫_使用這些開源工具進行數據倉庫

開源 數據倉庫by Simon Spti西蒙斯派蒂(SimonSpti) 使用這些開源工具進行數據倉庫 (Use these open-source tools for Data Warehousing) These days, everyone talks about open-source software. However, this is still not common in the Data Warehousing (DWH) field. W…

.netcore mysql_.netcore基于mysql的codefirst

.netcore基于mysql的codefirst此文僅是對于netcore基于mysql的簡單的codefirst實現的簡單記錄。示例為客服系統消息模板的增刪改查實現第一步、創建實體項目&#xff0c;并在其中建立對應的實體類&#xff0c;以及數據庫訪問類須引入Pomelo.EntityFrameworkCore.MySql和Microso…

leetcode 34. 在排序數組中查找元素的第一個和最后一個位置(二分查找)

給定一個按照升序排列的整數數組 nums&#xff0c;和一個目標值 target。找出給定目標值在數組中的開始位置和結束位置。 如果數組中不存在目標值 target&#xff0c;返回 [-1, -1]。 進階&#xff1a; 你可以設計并實現時間復雜度為 O(log n) 的算法解決此問題嗎&#xff1…

CentOS6.7上使用FPM打包制作自己的rpm包

自定義rpm包&#xff0c;還是有逼格和實際生產環境的意義的。 (下面的文檔有的代碼由于博客排版的問題導致擠在了一起&#xff0c;需要自己判別&#xff09; 安裝FPM fpm是ruby寫的&#xff0c;因此系統環境需要ruby&#xff0c;且ruby版本號大于1.8.5。 # 安裝ruby模塊 yum -y…

漢堡菜單_開發人員在編寫漢堡菜單時犯的錯誤

漢堡菜單by Jared Tong湯杰(Jared Tong) 開發人員在編寫漢堡菜單時犯的錯誤 (The mistake developers make when coding a hamburger menu) What do The New York Times’ developers get wrong about the hamburger menu, and what do Disney’s and Wikipedia’s get right?…

android 漲潮動畫加載_Android附帶漲潮動畫效果的曲線報表繪制

寫在前面本文屬于部分原創&#xff0c;實現安卓平臺正弦曲線類報表繪制功能介紹&#xff0c;基于網絡已有的曲線報表繪制類(LineGraphicView)自己添加了漲潮的漸變動畫算法最終效果圖廢話少說&#xff0c;直接上源碼一、自定義View LineGraphicView&#xff0c;本類注釋不算多&…

使用css3屬性transition實現頁面滾動

<!DOCTYPE html> <html><head><meta http-equiv"Content-type" content"text/html; charsetutf-8" /><title>慕課七夕主題</title><script src"http://libs.baidu.com/jquery/1.9.1/jquery.min.js">&…

leetcode 321. 拼接最大數(單調棧)

給定長度分別為 m 和 n 的兩個數組&#xff0c;其元素由 0-9 構成&#xff0c;表示兩個自然數各位上的數字。現在從這兩個數組中選出 k (k < m n) 個數字拼接成一個新的數&#xff0c;要求從同一個數組中取出的數字保持其在原數組中的相對順序。 求滿足該條件的最大數。結…

Oracle Study之--Oracle等待事件(5)

Db file single write這個等待事件通常只發生在一種情況下&#xff0c;就是Oracle 更新數據文件頭信息時&#xff08;比如發生Checkpoint&#xff09;。當這個等待事件很明顯時&#xff0c;需要考慮是不是數據庫中的數據文件數量太大&#xff0c;導致Oracle 需要花較長的時間來…

兩臺centos之間免密傳輸 scp

兩臺linux服務器之間免密scp&#xff0c;在A機器上向B遠程拷貝文件 操作步驟&#xff1a;1、在A機器上&#xff0c;執行ssh-keygen -t rsa&#xff0c;一路按Enter&#xff0c;不需要輸入任何內容。&#xff08;如有提示是否覆蓋&#xff0c;可輸入y后按回車&#xff09;2、到/…

jsp導出數據時離開頁面_您應該在要離開的公司開始使用數據

jsp導出數據時離開頁面If you’re new in data science, “doing data science” likely sounds like a big deal to you. You might think that you need meticulously collected data, all the tools for data science and a flawless knowledge before you can claim that y…

分步表單如何實現 html_HTML表格入門的分步指南

分步表單如何實現 htmlby Abhishek Jakhar通過阿比舍克賈卡(Abhishek Jakhar) HTML表格入門的分步指南 (A step-by-step guide to getting started with HTML tables) 總覽 (Overview) The web is filled with information like football scores, cricket scores, lists of em…