主頁 >  其他 > 提高軟體測驗效率方法探討,你來不來!

提高軟體測驗效率方法探討,你來不來!

2021-01-19 07:19:48 其他

**摘要:**
  軟體測驗是保證軟體質量的重要手段,如何組織軟體測驗,耗費最少時間與最小作業量完成軟體測驗,使軟體質量滿足用戶要求,是軟體研發單位需要解決的問題,本文結合工程實踐,從軟體的可測驗性及測驗組織等方面探討提高軟體測驗效率的方法,


  **引言:**
  * 自從上世紀七八十年代全面爆發軟體危機起,軟體產業的發展程序中始終伴隨著巨大的管理難題,整個軟體產業存在著軟體代價高、難于控制開發進度、軟體作業量估計困難、質量低,以及軟體修改、維護困難等問題,而要解決這些問題,在很大程度上取決于提高軟體的設計、開發和測驗質量,


   隨著軟體開發規模的增大,軟體的質量問題越來越突出,軟體測驗是提高軟體質量的有效途徑,在軟體測驗作業中投入的人力、物力、財力逐漸加大,國外有些軟體公司的測驗人員和開發人員的比例甚至達到1:1或2:1的程度,因此如何提高軟體測驗效率是每個軟體研發單位和研發專案面臨的嚴峻問題,


   本文結合工程實踐,從軟體的可測驗性和軟體測驗組織兩個方面進行分析,探討提高軟體測驗效率的方法,

   **1、影響軟體測驗效率的因素**


  影響軟體測驗效率的因素很多,本文只論述被測軟體質量和軟體測驗組織對軟體測驗效率的影響,通過軟體測驗可以發現軟體中的某些問題,軟體中存在的某些潛在問題由于受測驗工具、測驗方法和測驗時間的限制而無法發現,測驗中發現的問題最終需要通過軟體開發人員進行糾正,從某種角度來看,軟體測驗并不能從根本上提高軟體質量,軟體質量的高低直接取決于軟體開發人員的設計與編程水平,好的軟體開發人員撰寫完成的軟體具有問題少、易維護等特點,但有時會出現修改完成了一個軟體缺陷,同時又引人多個軟體缺陷的情況,需經過多輪回歸測驗才能夠完成問題歸零,所以,雖然軟體測驗是提高軟體質量的有效途徑,但提高軟體開發人員的水平,提高反映軟體設計質量和開發質量的軟體的可測驗性是提高軟體質量的根本途徑,


   軟體測驗人員對專案需求的理解程度,對測驗理論、測驗工具和測驗方法的掌握程度,以及對被測軟體模塊在專案中的重要程度和成熟程度的認識,對軟體測驗效率同樣有很大的影響,所以在工程中需合理組織軟體測驗,提高軟體測驗效率,


**

**軟體的可測驗性****

可測驗軟體具有以下特征:


   (1)可操作性,可操作性是指:被測軟體的錯誤很少,可以避免重復測驗的開銷;沒有阻礙測驗連續執行的錯誤;在軟體設計時應允許在開發階段進行部分測驗活動,


  (2)可觀察性,可觀察性包括:每個輸入有唯一的輸出;系統狀態和變數可見,或在運行中可查詢;過去的系統狀態和變數可見,或在運行中可查詢;所有影響輸出的因素都可見;容易識別錯誤輸出;自動報告內部錯誤;可獲取源代碼,


   (3)可控制性,可控制性是指:所有可能的輸出都產生于某種輸入組合;通過某種輸入組合,所有代碼都可能被執行;軟體測驗人員可直接控制軟體和硬體的狀態及變數;輸入和輸出格式保持一致且有規范的結構;能夠便利地對測驗進行說明,以及方便地執行和重構測驗,


   (4)可分解性,軟體系統由眾多獨立模塊構成,每個軟體模塊均可獨立進行測驗,


   (5)簡單性,簡單性包括功能簡單性、結構簡單性、代碼簡單性,


  (6)穩定性,軟體的變化是不經常的,變化是可控制的,軟體的變化不影響已有的測驗,失效后能夠得到良好恢復,


   (7)易理解性,易理解性包括:設計能夠被很好地理解;內部、外部和共享構件之間的依賴性能夠被很好地理解;測驗人員可方便獲取技術檔案,并及時掌握設計更改情況;技術檔案組織合理、明確詳細,

**提高軟體可測驗性的途徑**


   在實際作業中,可通過以下幾個途徑提高軟體的可測驗性:減少并控制需求的變更;加強軟體可測驗性的設計;重視并規范技術檔案的撰寫,

 **減少并控制需求的變更**


   用戶需求可分為如下三個層次:基本需求、預期需求和擴展需求三類,其中預期需求是明示的,而基本需求和擴展需求是非明示的,所謂擴展需求是指這些特征在用戶的期望范圍之外,并且當其存在時將是非常令人滿意的,由于種種原因,軟體的需求不確定性是客觀存在的,是不可避免的,軟體規模越大,研制周期越長,需求的不確定性就越大,軟體需求不確定性原因主要包括:用戶在表述需求時常常帶有不確定性與模糊性;隨著開發行程的推進,用戶對所建應用系統理解的不斷深入,對原來模糊的或非明示的需求有了新的認識,隨時會提出需求的變更;由于開發人員的領域知識的局限性,導致引發對需求的誤解;用戶需求的獲取程序與描述形式往往采用非形式化的自然語言,以及自然概念中存在的本質矛盾,使需求的規范描述發生困難,


   (1)識別專案需求


   識別專案需求是專案成功的關鍵,為了減少需求的不確定性,首先應充分認識確定需求的重要性,通過與用戶的溝通,使用戶能充分認識到軟體需求的變更對軟體質量、進度和成本的影響,積極參與到確定軟體需求的活動中,達到在進行軟體設計前盡量確定軟體需求的目的,同時在識別專案需求時,除了用戶明示的需求外,還需關注用戶基本需求,用戶基本需求常常體現在專案的領域知識、專案所在行業的相關標準等方面,實踐證明,開發人員對領域知識掌握的程度直接影響到專案需求的確定,開發人員通過對領域知識的積累有助于專案需求的確定,


   (2)需求檔案化及需求評審


   按照軟體工程化要求,用戶應該向研制方正式提交需求檔案,研制方根據用戶需求進行需求分析形成產品需求,用戶需求及產品需求均需檔案化并經過評審,以盡早發現不合理的需求,


  (3)需求管理、需求變更的控制


   在系統研制程序中應對需求進行管理,首先建立需求庫及需求跟蹤矩陣,在需求跟蹤矩陣中反映研制各階段作業產品與需求的對應關系,并對需求進行需求的雙向跟蹤,


 (4)采用軟體需求管理工具


   采用需求管理工具,可以提高需求管理作業流程的自動化程度,使需求管理可以在專案實施程序中得到有效地推行,需求管理工具可以在整個專案生命周期內,幫助團隊有效地協作,將需求的變更資訊及時傳送到團隊的每個成員,可以使跨專案團隊的所有成員都能掌握必要的需求詳細資訊,并對軟體專案規劃、專案跟蹤與監督實施管理,


 **加強軟體可測驗性設計**


   在專案設計階段應注重對軟體可測驗性的設計,專案負責人可根據專案具體情況對軟體可測驗性提出具體要求,對軟體注釋率、軟體模塊規模、模塊圈復雜度、基本圈復雜度、運算元的個數以及程序出口個數等進行規定,在軟體設計及編程階段嚴格按照規范執行,可有效地提高軟體測驗效率,實踐證明,如果在專案設計階段不進行軟體可測驗性的設計,待軟體完成后再根據可測驗性要求對軟體進行修改完善常常需要花費巨大的人力和物力,同時大量修改對軟體質量也會帶來不利影響,


 **重視并規范技術檔案的撰寫**


  技術檔案不僅是開發人員進行資訊交流的手段,也是測驗人員進行測驗的依據,所以軟體相關檔案應描述明確詳細,組織合理,并根據需求和設計的變更及時更新,同時為了給獨立測驗人員提供更多的資訊,在技術檔案中可增加各軟體模塊的重要程度、重用性及測驗歷史等資訊,使得獨立測驗人員可以合理分配精力,對重要軟體進行重點測驗,減少不必要的重復勞動,提高測驗效率,


  **3、軟體測驗方法與組織**


**軟體測驗方法**


   軟體模塊級測驗分為白盒測驗和黑盒測驗,黑盒測驗注重于測驗軟體的功能性需求,試圖發現功能缺陷或遺漏、界面錯誤、資料結構或外部資料庫訪問錯誤、性能錯誤及初始化和中止等型別的錯誤,白盒測驗依賴對程式細節的嚴密檢驗,對軟體的邏輯路徑進行測驗,在不同的程式點檢驗“程式的狀態”以判定預期狀態或待驗證狀態與真實狀態是否相符,在軟體測驗中,常常結合黑盒和白盒兩種測驗方法,相互補充,


 **軟體測驗人員**


   軟體測驗可由軟體開發人員、獨立測驗人員或用戶進行,在組織軟體測驗時,可根據不同人員的特點進行組織,使得各類測驗相互補充,


   軟體開發人員熟悉軟體需求及被測軟體,清楚各軟體模塊的重要程度和相互關系,了解各軟體模塊以前的測驗及修改等歷史情況,可以有針對性地進行測驗;軟體開發人員和用戶交流較為方便,在測驗中能夠發現與需求不一致的軟體錯誤,但是開發人員急于證明他們的程式是毫無錯誤的,是按照用戶的需求開發的,而且完全能夠按照預定的進度和預算完成,這將影響開發人員完成相關測驗任務,


   獨立測驗人員應具備較強的測驗理論水平和測驗經驗,熟練掌握軟體測驗工具,并知悉被測軟體的功能需求才能夠對軟體進行系統全面的測驗,但獨立測驗人員有時會缺乏相應領域的專業知識,主要測驗依據是用戶的技術要求及開發人員在軟體研制程序中形成的檔案,一方面這些檔案中缺乏對用戶基本需求的描述;另一方面,獨立測驗人員常常需通過開發人員來進行需求的理解,因此在軟體測驗中有時無法發現軟體不滿足需求方面的錯誤,但這種錯誤往往從用戶角度來看是最嚴重的,同時,獨立測驗人員由于對各軟體模塊的重要性及相互關系了解不深,有時會影響測驗效率,


   在條件允許的情況下,軟體完成后可提交用戶試用,用戶在試用中根據實際使用需求進行操作,其中包括各種正常操作流程和非正常操作流程,用戶試用可有效檢驗軟體是否滿足用戶需求,同時在用戶試用中對軟體的可靠性等方面也同步進行了測驗,因為用戶試用方式同實際使用方式非常接近,所以通過用戶試用獲得好評的軟體基本可以滿足今后的實際使用要求,

**提高軟體測驗效率的方法**


  為了提高軟體測驗效率,測驗人員需要熟悉掌握軟體涉及的領域知識,了解軟體各項功能的重要程度和成熟程度,掌握測驗理論和工具;用戶是驗證需求正確性的主導力量,應充分發揮用戶的積極作用,


  **在組織軟體測驗時,可通過以下幾個方面提高軟體測驗效率:**


   根據不同測驗人員的特點進行測驗分工,單元測驗應以軟體開發人員為主進行,以保證每個單元能夠完成設計的功能,在很多情況下,集成測驗也可以開發人員為主進行,當軟體體系結構完成后,獨立測驗機構介人;
       軟體測驗人員應注重與用戶的溝通,及早發現需求分析、理解不合理的問題,避免今后花費大量的資源和時間進行改正;
       對于軟體開發人員,需加強測驗方法的培訓,提高自我測驗的效率;
       在選擇獨立測驗人員時,盡量選擇比較熟悉了解被測軟體相關領域知識的人員;
       獨立測驗人員應該在軟體開發的需求階段就參與專案的研制,以便更好地制定測驗計劃、確定測驗目標及撰寫測驗用例,通過找出專案中關鍵的模塊和出錯率高的模塊,可使測驗首先集中在最重要的部分,避免發生把過多時間花費在非重要模塊的測驗而沒有時間測驗重要的模塊的情況;
       被測軟體在測驗中發現了問題,要進行有組織的分析研究,然后權衡利弊進行規范化修改,避免反復修改,反復測驗;
       規范軟體配置管理,通過管理及技術手段,對軟體和檔案版本進行控制,保障軟體測驗的有效性,

**結束語**


   實踐證明,通過提高被測軟體的可測驗性,以及合理組織軟體測驗作業,可以有效地提高軟體測驗效率,隨著軟體測驗的重要性得以承認,軟體測驗階段在整個軟體開發周期中所占的比重也日益增大,為了將缺陷和錯誤消滅在萌芽之中,軟體測驗將逐步發展成為軟體開發每一階段都要進行而且需要反復進行的活動,軟體測驗中大量的作業是機械的、重復的、枯燥的和非智力的,但逐步加強軟體自動化測驗的研究和推廣將是今后軟體產業的發展趨勢,

在這里推薦一個軟體測驗交流群,QQ:642830685,群中不定期的分享軟體測資源,測驗面試題以及行業資訊,大家可以在群中積極交流問題,還有技術大佬為你解答問題,


轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/250488.html

標籤:其他

上一篇:黑白盒測驗在軟體測驗中的作用有哪些呢?

下一篇:面試官:“說一下Python的垃圾回識訓制”,千萬別敷衍,否則直接玩完!

標籤雲
其他(157675) Python(38076) JavaScript(25376) Java(17977) C(15215) 區塊鏈(8255) C#(7972) AI(7469) 爪哇(7425) MySQL(7132) html(6777) 基礎類(6313) sql(6102) 熊猫(6058) PHP(5869) 数组(5741) R(5409) Linux(5327) 反应(5209) 腳本語言(PerlPython)(5129) 非技術區(4971) Android(4554) 数据框(4311) css(4259) 节点.js(4032) C語言(3288) json(3245) 列表(3129) 扑(3119) C++語言(3117) 安卓(2998) 打字稿(2995) VBA(2789) Java相關(2746) 疑難問題(2699) 细绳(2522) 單片機工控(2479) iOS(2429) ASP.NET(2402) MongoDB(2323) 麻木的(2285) 正则表达式(2254) 字典(2211) 循环(2198) 迅速(2185) 擅长(2169) 镖(2155) 功能(1967) .NET技术(1958) Web開發(1951) python-3.x(1918) HtmlCss(1915) 弹簧靴(1913) C++(1909) xml(1889) PostgreSQL(1872) .NETCore(1853) 谷歌表格(1846) Unity3D(1843) for循环(1842)

熱門瀏覽
  • 網閘典型架構簡述

    網閘架構一般分為兩種:三主機的三系統架構網閘和雙主機的2+1架構網閘。 三主機架構分別為內端機、外端機和仲裁機。三機無論從軟體和硬體上均各自獨立。首先從硬體上來看,三機都用各自獨立的主板、記憶體及存盤設備。從軟體上來看,三機有各自獨立的作業系統。這樣能達到完全的三機獨立。對于“2+1”系統,“2”分為 ......

    uj5u.com 2020-09-10 02:00:44 more
  • 如何從xshell上傳檔案到centos linux虛擬機里

    如何從xshell上傳檔案到centos linux虛擬機里及:虛擬機CentOs下執行 yum -y install lrzsz命令,出現錯誤:鏡像無法找到軟體包 前言 一、安裝lrzsz步驟 二、上傳檔案 三、遇到的問題及解決方案 總結 前言 提示:其實很簡單,往虛擬機上安裝一個上傳檔案的工具 ......

    uj5u.com 2020-09-10 02:00:47 more
  • 一、SQLMAP入門

    一、SQLMAP入門 1、判斷是否存在注入 sqlmap.py -u 網址/id=1 id=1不可缺少。當注入點后面的引數大于兩個時。需要加雙引號, sqlmap.py -u "網址/id=1&uid=1" 2、判斷文本中的請求是否存在注入 從文本中加載http請求,SQLMAP可以從一個文本檔案中 ......

    uj5u.com 2020-09-10 02:00:50 more
  • Metasploit 簡單使用教程

    metasploit 簡單使用教程 浩先生, 2020-08-28 16:18:25 分類專欄: kail 網路安全 linux 文章標簽: linux資訊安全 編輯 著作權 metasploit 使用教程 前言 一、Metasploit是什么? 二、準備作業 三、具體步驟 前言 Msfconsole ......

    uj5u.com 2020-09-10 02:00:53 more
  • 游戲逆向之驅動層與用戶層通訊

    驅動層代碼: #pragma once #include <ntifs.h> #define add_code CTL_CODE(FILE_DEVICE_UNKNOWN,0x800,METHOD_BUFFERED,FILE_ANY_ACCESS) /* 更多游戲逆向視頻www.yxfzedu.com ......

    uj5u.com 2020-09-10 02:00:56 more
  • 北斗電力時鐘(北斗授時服務器)讓網路資料更精準

    北斗電力時鐘(北斗授時服務器)讓網路資料更精準 北斗電力時鐘(北斗授時服務器)讓網路資料更精準 京準電子科技官微——ahjzsz 近幾年,資訊技術的得了快速發展,互聯網在逐漸普及,其在人們生活和生產中都得到了廣泛應用,并且取得了不錯的應用效果。計算機網路資訊在電力系統中的應用,一方面使電力系統的運行 ......

    uj5u.com 2020-09-10 02:01:03 more
  • 【CTF】CTFHub 技能樹 彩蛋 writeup

    ?碎碎念 CTFHub:https://www.ctfhub.com/ 筆者入門CTF時時剛開始刷的是bugku的舊平臺,后來才有了CTFHub。 感覺不論是網頁UI設計,還是題目質量,賽事跟蹤,工具軟體都做得很不錯。 而且因為獨到的金幣制度的確讓人有一種想去刷題賺金幣的感覺。 個人還是非常喜歡這個 ......

    uj5u.com 2020-09-10 02:04:05 more
  • 02windows基礎操作

    我學到了一下幾點 Windows系統目錄結構與滲透的作用 常見Windows的服務詳解 Windows埠詳解 常用的Windows注冊表詳解 hacker DOS命令詳解(net user / type /md /rd/ dir /cd /net use copy、批處理 等) 利用dos命令制作 ......

    uj5u.com 2020-09-10 02:04:18 more
  • 03.Linux基礎操作

    我學到了以下幾點 01Linux系統介紹02系統安裝,密碼啊破解03Linux常用命令04LAMP 01LINUX windows: win03 8 12 16 19 配置不繁瑣 Linux:redhat,centos(紅帽社區版),Ubuntu server,suse unix:金融機構,證券,銀 ......

    uj5u.com 2020-09-10 02:04:30 more
  • 05HTML

    01HTML介紹 02頭部標簽講解03基礎標簽講解04表單標簽講解 HTML前段語言 js1.了解代碼2.根據代碼 懂得挖掘漏洞 (POST注入/XSS漏洞上傳)3.黑帽seo 白帽seo 客戶網站被黑帽植入劫持代碼如何處理4.熟悉html表單 <html><head><title>TDK標題,描述 ......

    uj5u.com 2020-09-10 02:04:36 more
最新发布
  • 2023年最新微信小程式抓包教程

    01 開門見山 隔一個月發一篇文章,不過分。 首先回顧一下《微信系結手機號資料庫被脫庫事件》,我也是第一時間得知了這個訊息,然后跟蹤了整件事情的經過。下面是這起事件的相關截圖以及近日流出的一萬條資料樣本: 個人認為這件事也沒什么,還不如關注一下之前45億快遞資料查詢渠道疑似在近日復活的訊息。 訊息是 ......

    uj5u.com 2023-04-20 08:48:24 more
  • web3 產品介紹:metamask 錢包 使用最多的瀏覽器插件錢包

    Metamask錢包是一種基于區塊鏈技術的數字貨幣錢包,它允許用戶在安全、便捷的環境下管理自己的加密資產。Metamask錢包是以太坊生態系統中最流行的錢包之一,它具有易于使用、安全性高和功能強大等優點。 本文將詳細介紹Metamask錢包的功能和使用方法。 一、 Metamask錢包的功能 數字資 ......

    uj5u.com 2023-04-20 08:47:46 more
  • vulnhub_Earth

    前言 靶機地址->>>vulnhub_Earth 攻擊機ip:192.168.20.121 靶機ip:192.168.20.122 參考文章 https://www.cnblogs.com/Jing-X/archive/2022/04/03/16097695.html https://www.cnb ......

    uj5u.com 2023-04-20 07:46:20 more
  • 從4k到42k,軟體測驗工程師的漲薪史,給我看哭了

    清明節一過,盲猜大家已經無心上班,在數著日子準備過五一,但一想到銀行卡里的余額……瞬間心情就不美麗了。最近,2023年高校畢業生就業調查顯示,本科畢業月平均起薪為5825元。調查一出,便有很多同學表示自己又被平均了。看著這一資料,不免讓人想到前不久中國青年報的一項調查:近六成大學生認為畢業10年內會 ......

    uj5u.com 2023-04-20 07:44:00 more
  • 最新版本 Stable Diffusion 開源 AI 繪畫工具之中文自動提詞篇

    🎈 標簽生成器 由于輸入正向提示詞 prompt 和反向提示詞 negative prompt 都是使用英文,所以對學習母語的我們非常不友好 使用網址:https://tinygeeker.github.io/p/ai-prompt-generator 這個網址是為了讓大家在使用 AI 繪畫的時候 ......

    uj5u.com 2023-04-20 07:43:36 more
  • 漫談前端自動化測驗演進之路及測驗工具分析

    隨著前端技術的不斷發展和應用程式的日益復雜,前端自動化測驗也在不斷演進。隨著 Web 應用程式變得越來越復雜,自動化測驗的需求也越來越高。如今,自動化測驗已經成為 Web 應用程式開發程序中不可或缺的一部分,它們可以幫助開發人員更快地發現和修復錯誤,提高應用程式的性能和可靠性。 ......

    uj5u.com 2023-04-20 07:43:16 more
  • CANN開發實踐:4個DVPP記憶體問題的典型案例解讀

    摘要:由于DVPP媒體資料處理功能對存放輸入、輸出資料的記憶體有更高的要求(例如,記憶體首地址128位元組對齊),因此需呼叫專用的記憶體申請介面,那么本期就分享幾個關于DVPP記憶體問題的典型案例,并給出原因分析及解決方法。 本文分享自華為云社區《FAQ_DVPP記憶體問題案例》,作者:昇騰CANN。 DVPP ......

    uj5u.com 2023-04-20 07:43:03 more
  • msf學習

    msf學習 以kali自帶的msf為例 一、msf核心模塊與功能 msf模塊都放在/usr/share/metasploit-framework/modules目錄下 1、auxiliary 輔助模塊,輔助滲透(埠掃描、登錄密碼爆破、漏洞驗證等) 2、encoders 編碼器模塊,主要包含各種編碼 ......

    uj5u.com 2023-04-20 07:42:59 more
  • Halcon軟體安裝與界面簡介

    1. 下載Halcon17版本到到本地 2. 雙擊安裝包后 3. 步驟如下 1.2 Halcon軟體安裝 界面分為四大塊 1. Halcon的五個助手 1) 影像采集助手:與相機連接,設定相機引數,采集影像 2) 標定助手:九點標定或是其它的標定,生成標定檔案及內參外參,可以將像素單位轉換為長度單位 ......

    uj5u.com 2023-04-20 07:42:17 more
  • 在MacOS下使用Unity3D開發游戲

    第一次發博客,先發一下我的游戲開發環境吧。 去年2月份買了一臺MacBookPro2021 M1pro(以下簡稱mbp),這一年來一直在用mbp開發游戲。我大致分享一下我的開發工具以及使用體驗。 1、Unity 官網鏈接: https://unity.cn/releases 我一般使用的Apple ......

    uj5u.com 2023-04-20 07:40:19 more