研發質量管理 老生常談的軟體質量到底如何保證?

2021-10-12 09:28:54 字數 1913 閱讀 7293

軟體質量是軟體公司關注的核心指標之一,但是如何保證軟體質量確實是乙個頭疼的問題。每乙個軟體公司都有研發管理部門,一般他們的職責就是軟體開發過程管理和軟體質量保證,但是在不同的公司,這個部門的定位不同。有的公司研發管理部門是乙個代表管理層的監督和管理控制部門,他們制定各種看上去無懈可擊的考核和管理制度,要求開發人員嚴格按照流程進行軟體開發,並根據制度進行考核;有的公司研發管理部門是乙個服務部門,他們為研發部門提供開發環境,質量控制工具,流程控制模版,軟體開發license檢查等共享服務,但是不對研發進行管理和控制;也有的公司的研發管理部門承擔了管理和服務雙重角色。給研發管理部門賦予管理和控制角色的公司往往認為沒有規矩不成方圓,過程管理是質量保證的必要手段,依靠研發部門自己進行質量控制存在管理漏洞,特別是一些公司比較看重一些質量體系認證,希望通過認證在招投標的時候增加一些資質,但是這些質量體系認證往往都是在瀑布開發模型的基礎上定義的一些質量控制點和研發過程管理規範。另外一些公司則把研發管理部門定位為乙個服務部門,他們會提供qm進行質量管理的指導,根據po的請求,進行測試管理相關的質量標準設定,提供開源框架的license是否有智財權風險檢查,提供accessibility測試服務,security測試服務,開發伺服器的搭建,central的整合測試環境,**靜態掃瞄等質量管理服務,然後po根據自己產品的特性,選擇使用哪些服務進行質量控制,產品質量完全有po進行管理和控制。站在研發管理部門的角度,我們來看看下面幾個問題。

在ieee 1983 of ieee standard729 中對軟體缺陷下了乙個標準的定義:從產品內部看,軟體缺陷是軟體產品開發或維護過程中所存在的錯誤、毛病等各種問題。基於這個定義,過程管理希望通過管理規避開發維護過程中的錯誤導致的軟體質量問題,從而提高軟體質量。比如說需求定義不清楚導致的bug,可以通過需求文件評審來這樣的過程管理來保證質量的。軟體維護過程中,新人操作不當在軟體維護中帶來更大的錯誤也可以通過過程管理來避免。但是如果我們仔細分析我們的bug,發現多數的bug不是因為有需求文件上定義了的需求但是沒有實現引起的,或者是需求定義和實現不一致帶來的bug。絕大多數bug都是因為需求文件中無法窮盡的,或者需求定義認為自己也沒有想到的邊界條件導致的bug,這種bug再多的評審都是沒有用處的。過程控制同時也會帶來無謂的會議,文件,形式主義,並且降低了員工之間的信任。同時過程管理制定的那些剛性標準其實並不適合所有的專案,如何保持標準的柔性也是乙個難題。所以研發過程管理是一種手段,但是不是萬能的。個人比較認證研發過程管理必須轉變角色從管理者和監督者變成服務者,將質量的責任主體變成開發團隊。

scrum作為最流行的開發模型,能夠幫助公司提高產品質量嗎?答案也是否定的,不要指望採用了scrum產品的質量就可以提高。scrum把質量的控制權和責任主體留給了開發團隊,scrum並不能保證開發團隊能夠把質量控制的責任落實到位。所以開發模型只是一種工作方式,一種工作文化,軟體開發如何執行以及執行的效果還是要靠人的能力和態度。

一些公司有專門的測試人員,他們會根據產品經理的需求文件,設計測試用例並進行測試。這種配置如果測試人員和開發人員能力相當,能夠在理解需求的基礎上自己編寫**進行測試,就類似結對程式設計的思想,這樣的話確實是能夠保證質量的。但是如果測試人員只能進行功能測試,並不具備和開發人員相當的程式設計能力,則測試人員的測試覆蓋度是不夠的。現實是很多單獨設定測試部門的國內軟體公司,都是把一些不願意在coding上有所建樹的女生或者程式設計經驗不足的新員工安排到測試部門。在這個情況下,測試的效果是大打折扣的。反過來說,如果測試工程師和開發人員具備同等的開發能力,為什麼不能讓測試工程師和開發工程師一樣從事開發呢?所以傳統上那種只能進行功能測試的專職測試工程師只是滿足了瀑布模型的流程要求,對於提高軟體質量意義並不顯著。

我們可以看出,過程管理,開發模型和專職的測試工程師都不是最好的辦法。質量核心在人的技能,態度和團隊的文化,只要開發團隊的程式設計技能和程式設計經驗足夠,團隊具備質量意識,完全可以把質量交給po,並輔以需要的過程指導和工具服務,質量問題一定能過保證。

軟體質量管理

首先,總的了解一下,需要我們知道一些相關概念 然後是我們軟體質量該如何保證,有什麼措施 再者就是軟體的可靠性,即如何測量我們的這款軟體的 與否 最後就是我們軟體的不斷變更的相關管理。大家看圖 一,在軟體的相關概念這裡介紹三個 1,軟體質量的相關屬性 2,軟體質量的模型 3,軟體質量的度量。下邊看相關...

軟體質量管理

軟體設計的過程中,我們需要保證其質量,否則乙個特別好的軟體沒用兩天就壞了,是不是很可惜?下面我們來看一下如何檢測軟體的質量 保證 質量保證概念 主要任務 保證與檢驗 保證體系 保證的實施 質量設計 可靠性 軟體生存期與軟體壽命的關係 在軟體工程中常用的定義 軟體可靠性定義 測試中的可靠性分析 測試精...

軟體質量管理

軟體質量是指軟體產品中能滿足給定需求的各種特性的綜合。這些特性稱作質量特性,它包括功能性 可靠性 易使用性 時間經濟性 資源經濟性 可維護性和可移植性等。具體地說,軟體質量是軟體與明確敘述的功能和效能需求 文件中明確揩述的開發標準,以及任何專業開發的軟體產品都應該具有的隱含特徵相一致的程度。軟體質量...