網上書店黑盒測試 談談汽車軟體測試驗證

2021-10-14 07:33:47 字數 4432 閱讀 3208

隨著新車型的功能和需求在不斷增加,汽車上的電子控制器多達150個,到2023年,有專家預言汽車將擁有大約3億行軟體**。相比之下,今天的汽車有大約1億行**。從另乙個角度對比來看,一架客機估計有1500萬行**,一架現代戰鬥機約為2500萬行,大眾市場pc作業系統接近4000萬行。

作為整車廠都是-我們有乙個美麗的夢想——我的產品功能邏輯完美,效能出眾,系統穩定可靠,使用者體驗棒棒噠!可從現實情況來看,用一句話來形容:理想很完美,現實很殘酷。

整車廠裡乙個不公開的秘密,就是早期的使用者,準確點來說大約是新車投產6個月內,甚至是一年左右的時間,那些使用者實際上是擔當著o新車型乙個類似實驗的小白鼠角色—-雖然說起來有點扎心早期的使用者在率先體驗的同時,也有很大機率在經受著諸如黑屏,網路連線問題,行車輔助系統時不時的跳出一些警報給你一些驚喜.....,這些還算是可以接受的,但更有嚴重一些的,如車輛在路上拋錨,自動駕駛故障直接把車輛損毀,這些問題就不僅僅是體驗不好了,甚至是危及到生命了!雖然問題發生了我們可以找到很多理由—沒錯,從人的趨利避害的本性來講,我們更喜歡把這個責任推到其他地方去,比如開發設計的不合理,**商零件質量,使用者使用不當,環境太複雜等等。但從本質上來講,所有這些問題,整車廠的負責測試的團隊是脫不了干係的。

談到汽車測試,首先要搞清楚測試的質量目標是什麼,或者說,對於測試的物件要用什麼樣的指標來評估。汽車軟體測試所採用的評價模型實際上也是參照軟體行業的標準,用」iso/iec 9126 – 軟體質量模型」來評估汽車上的軟體質量的,這個標準後來在2023年被新的」iso/iec 25010-系統和軟體質量模型」 這個評估模型從6個方面(質量特徵)來對乙個軟體的質量進行評價:功能性,可靠性,易用性,效率性,維護性和可移植性,詳細的解讀大家可以在網上查詢相關資料。

所以這種情況下,汽車軟體測試至少要關注這些方面:

如大家所熟悉的,汽車電器系統/軟體的測試一般來說大致可分為3個測試層級: 單件測試,系統測試和整車測試。

如果再進一步細化,單件測試還可劃分成**測試,軟體單元測試以及整合測試。

在系統層級的測試可以從單一的子系統測試-如外部燈光系統測試-到包含多個子系統的功能域的測試,比如車身域測試,資訊娛樂域測試。

關於整車層面的測試,實際上,還可以細分為從研發部門的角度,進行的整車功能、屬性特徵,主觀評價等等方面的測試,以及從質量驗收或使用者角度,進行的質量驗收性測試。

除此之外,對於整車電器系統,還有些測試的內容時涵蓋了從單件到整車,如匯流排協議,網路通訊,網路管理,診斷刷寫等。

在這些測試中,一般來說單件測試的工作是由**商負責保障的,系統和整車整合的測試是作為整車廠所關注的。但隨著這些年的發展,一些整車廠也開始做起了單件的軟體開發,所以一些單件測試的能力也開始逐步建立了。

如前所提到的,測試存在多個層級,另一方面,我們知道還存在著各種型別的軟體測試,例如功能測試,非功能測試,自動化測試,敏捷測試及其子型別等。

我們在測試過程中都會遇到幾種型別的測試。我們可能聽過一些,也許已經做了一些工作,但並不是每個人都了解所有測試型別

每種測試都有其自身的功能,優點和缺點。下面就是關於在日常測試中通常使用的一些測試型別。

功能測試型別包括:

非功能測試型別包括:

上述軟體測試型別只是測試的一部分。實際上,在軟體行業,至少有超過100多種的測試型別。此外,並非每個的專案都使用所有測試型別。因此,上面也只羅列了一些比較常見的軟體測試型別。

同樣,不同的團隊對一些測試型別的描述和定義也是不同的,但對其本質或是基本的目的是一致的。隨著專案,需求和範圍的變化,這些測試型別,過程及其實現方法會不斷變化。

關於測試的方法和測試技術,是可以從很多方面去討論的。下面只是簡單的介紹一些概念和方法。

1. 從測試的是否關注軟體的內部結構的角度來看,可劃分為白盒測試,黑盒測試以及灰盒測試– 非黑即白是小孩子的思維,成年人的世界當然要成熟一些,所以我們不光有黑盒,白盒,還要摻雜著搞一下。

白盒測試是基於有關軟體/程式**內部邏輯的知識進行的測試,更多的時候是開發人員採用這種測試技術來檢查實際的**。測試的覆蓋範圍從**語句,分支,路徑,條件等方面,大概就是下面這個樣子.

關於白盒測試,作為主機廠的小夥伴們,是不是對這個有點懵逼?沒做過,啥子鬼東西?所以在通常情況下,白盒測試更多地發生在**商的單件層級。

黑盒測試是基於需求和功能進行的測試,主要在測試人員來設計和執行,測試關注的是測試的重點是整個系統的功能,當然,也可以是非功能性的方面。

黑盒測試在整個開發和測試生命週期中都會被採用,即在單元,整合,系統,驗收和回歸測試階段。

除了上述兩種測試方法外,還有一種介於白盒測試與黑盒測試的測試方法,即所謂的灰盒測試。灰盒測試同時關注輸出對於輸入的正確性和內部表現兩方面,但這種關注不像白盒測試那樣詳細和完整,只是通過一些表徵性的現象、事件、標誌來判斷內部的執行狀態。有時候雖然輸出的結果是正確的,但內部其實已經錯誤了,如果每次都通過白盒測試來操作,效率會很低,因此需要採取這樣靈活的測試方法

2.從測試執行過程是否有人工參與的角度來看,測試方法還可以分為自動化測試,手動測試以及半自動測試(也就是自動測試加手動測試)。

a.自動測試,就是將大量重複性的測試工作交由自動化,測試件去完成。通常就是使用自動化測試環境,編寫測試指令碼,模擬手動的測試步驟,利用軟體去控制完成全部的測試內容。這種測試方法更多的是應用在單件測試以及系統測試。

b.手動測試,就是由測試人員按照事先編寫的測試目錄,根據測試用例中描述的測試步驟和方法,手工的乙個乙個地執行測試,包括與被測試物件進行互動,觀察測試結果。手動測試的方法更多的是應用在系統測試以及整車測試方面,雖然這種測試方法比較原始,但是在主機廠中是非常重要而且必要採用的一種測試方法。

c.除此而外,還有一種所謂的半自動測試,這個有兩個含義,乙個是在自動測試過程中,有些場景需要手動輸入測試用例或選擇測試路徑,再由自動測試程式按照人工制定的要求完成自動測試。另乙個是在一些自動測試環境中,某些場景的測試用例無法用自動測試程式控制去完成,需要手動執行,比如一些需要互動的場景等。這種測試方法多應用在有多個系統互動或者功能域的測試環境。

軟體測試在軟體行業有乙個術語叫做「software testing life cycle(stlc)- 軟體測試生命週期」,其是乙個測試過程,按確定的順序進行的測試活動,以滿足測試質量的目標要求。軟體測試生命週期可劃分成若干個階段,在不同的公司,按照各自的實際情況,劃分成6-8個階段。儘管劃分的階段不盡相同,但其本質的要求還是相同的。

下面是乙個常見的測試階段劃分:

大體上,可以按照測試計畫、測試準備和測試實施三個階段來定義。

測試計畫,簡單的講,就是用來如何來進行專案開發中的測試活動的乙個規劃文件。測試計畫定義了專案範圍和測試重點。基本上,它涉及測試範圍,測試的內容,估計,計畫和資源管理,也包含了測試策略,風險管理等一系列內容。

測試的第二個階段是測試準備階段,這個階段主要是確定測試目錄,編寫測試用例和搭建測試環境。關於測試目錄,很多大公司是從測試系統中,在已有的測試用例庫中進行篩選,確定這個專案的測試目錄。但很多時候,也有一些公司是根據開發的文件編寫測試用例,形成測試目錄的。

關於測試環境的搭建,依據不同的測試型別,會涉及到了零件,線束,自動化裝置,程式指令碼,軟體,工具等方面,如下圖就是乙個大致的搭建過程。

在一些公司會有專門的支援團隊來做這項工作,不過也有的公司是由測試團隊來負責這項工作。在完成測試環境搭建後,就可以開始實施測試了。

測試的執行本身倒是很容易理解,作為測試的負責人,需要關注這幾個方面

測試的過程管理, 問題的發現,記錄,分析和解決。

測試的質量管理,測試報告,測試總結和回顧

一般來說,現在很多公司都會建立了專門的問題管理系統和測試管理系統,在這個環節來保障測試活動,確保最終的產品交付質量。

以上主要是對測試的評價指標,測試體系,測試型別,技術和方法以及整個測試階段進行了大體的介紹,希望對大家了解軟體測試內容有所幫助。

後續會結合測試的階段,對測試計畫,測試策略,測試環境搭建,測試執行以及一些工具軟體等方面再做一些討論。

網上書店系統

用到的技術 servlet jsp mysql 主要功能 前台 登入註冊 圖書管理 訂單管理 購物車模組 後台 書分類管理 圖書管理 上傳圖書,修改刪除圖書 訂單管理 遇到的問題 1,request.getsession setattribute cart bmw cart cart cart re...

網上書店需求分析

網上書店目錄 part one 系統分析 part two 需求分析 part three 系統管理流程及用例圖 part four 非功能性需求 一 系統分析 1 總體需求 建立對圖書提供全面管理的資訊系統 對所有的圖書 客戶提供全面管理 對圖書詳細資訊提供管理。2 功能需求 在internet,...

用python實現網上書店

需求 1 每個使用者的 購物車 cart 用合適的資料結構快取在記憶體中。2 對每個資料物件的訪問,合理設定並管理快取 使用獨立的模組讀寫資料庫 讓程式結構變得可管理 可維護。3 對每種商品,設定乙個庫存。下訂單就 假設不需要付款 完成需要減庫存。4 將 商品詳情 頁面的 當前庫存 採用 ajax ...