付浩,秦浩
(中國航空計算技術研究所,陜西西安,710068)
數碼相機軟件系統測試方法研究
付浩,秦浩
(中國航空計算技術研究所,陜西西安,710068)
數碼相機系統是航拍無人機的關鍵部件,其性能直接影響航拍無人機的性能。數碼相機軟件則是數碼相機系統的神經中樞,其質量直接關系航拍任務完成度。本文分析數碼相機系統的軟件特點,總結測試難點,提出了一種針對狀態組合數量巨大的軟件的測試設計方法。
數碼相機;軟件測試;系統測試;測試需求分析;測試設計;測試充分性分析
數碼相機系統是航拍無人機的關鍵部件,用來實時獲取選定目標的圖像、圖形數據,并能通過激光測距,實現對目標的快速定位。數碼相機系統作為該系統的核心,其性能和可靠性對整個航拍無人機的任務執行效率和穩定性至關重要。為了保證數碼相機系統控制軟件的質量和可靠性,降低軟件的出錯概率,需要對其進行充分、有效的測試。
由于在執行航拍任務的過程中對不同地區中目標的關注程度會有所不同,并且對同一地區中目標的關注程度也可能發生改變,故在執行任務的過程中數碼相機會進行多次系統工作狀態轉換以及拍攝模式的切換,任務的復雜性導致該軟件的復雜程度高,進而軟件測試難度大。本文以航拍無人機數碼相機軟件系統測試為基礎,在分析系統工作狀態轉換和拍攝模式組合的切換關系的基礎上進行測試設計,并分析該測試方法的充分性。通過采用這種測試方法,使具有復雜系統工作狀態和拍攝模式組合的數碼相機軟件系統測試的思路更清晰,測試的充分性也同時得以保證。
航拍無人機數碼相機系統具有復雜的系統工作狀態轉換以及拍攝模式的切換關系,而作為典型的嵌入式實時軟件,它必須能快速響應外部要求的系統工作狀態轉換和拍攝模式切換等激勵。
數碼相機系統的基本工作過程是,在系統啟動后,進入系統啟動狀態(此狀態為系統自檢狀態,在自檢完成前無法進入其他系統工作狀態)。在自檢完成后自動進入備份態,在備份態對系統控制人員根據航拍任務的實際情況發送的命令進行解析和執行,這些命令包括拍攝模式的切換和系統工作狀態轉換。
拍攝模式有5種:可見光/不可見光切換【T1】、正向/負向連續變焦切換【T2】、大/小視場切換【T3】、是/否激光測距切換【T4】、是/否緊急測距切換【T5】。
系統工作狀態有10種:系統啟動狀態【A0】、備份態【A1】、人工掃描態【A2】、自動掃描態【A3】、姿態穩定態【A4】、跟蹤態【A5】、搜索態【A6】、跟蹤/搜索態【A7】、鎖定態【A8】和回收態【A9】。
在整個任務過程中還要進行視頻圖像的壓縮和存儲,并反饋當前系統工作狀態。
數碼相機系統在各工作狀態下可實現在各種拍攝模式組合下進行航拍,因此數碼相機系統不僅能在不同系統工作狀態間轉換,還可在多種拍攝模式組合之間進行切換。
針對數碼相機系統工作狀態轉換需要特殊說明的是:(1)從系統啟動狀態A0只能進入備份態A1,無法進入其他任何狀態;(2)從任何狀態都無法再次進入系統啟動狀態A0;(3)在回收態A9不接收任何指令,無法進入任何狀態。故數碼相機系統控制軟件的狀態轉換序列包括75種,其轉換關系見圖1(其中A2、A3、A4、A5、A6、A7、A8任意兩個狀態間可進行直接切換,在圖中未畫出)。
數碼相機軟件作為數碼相機系統的神經中樞,其質量對完成航拍任務十分關鍵,軟件測試是衡量軟件質量水平最直接的辦法,也是軟件質量保證的關鍵步驟。其中,功能測試是最重要的工作內容之一,即對該軟件的10種系統工作狀態之間的轉換以及各種系統工作狀態下不同拍攝模式組合之間的切換進行完整的測試,才能達到對該軟件的功能進行充分測試的目的,這即為該數碼相機軟件系統測試的難點。本文就是闡述針對該難點的測試方法。

圖1 數碼相機系統工作狀態轉換關系圖
依據被測軟件需求,從測試的角度出發,確定被測軟件的測試屬性,明確被測系統的輸入輸出及其映射關系,建立被測軟件系統測試需求。該軟件系統測試應覆蓋圖1中給出的工作狀態轉換關系的全部75種狀態轉換序列,且每個狀態轉換序列還需覆蓋各狀態轉換時所有可能的拍攝模式組合的切換情況。另外,測試中還要覆蓋到狀態轉換中禁止切換的狀態轉換序列(如無法從回收態轉入備份態等25種序列)。

表1 數碼相機系統工作模式
基于上述測試需求分析,對數碼相機系統的測試用例設計從由當前工作模式變換到后續工作模式的思路來進行考慮。
在對測試難點進行詳細分析后,在測試設計中首先將系統工作狀態轉換和拍攝模式組合的切換分成兩個方面進行考慮:①系統工作狀態的轉換方面,其測試設計策略是考察所有能夠轉換的情況和所有不能轉換的情況,即要考察所有系統工作狀態轉換的全組合。②拍攝模式組合的切換方面,在分析軟件特點后發現5類拍攝模式的切換沒有關聯關系,并且在軟件實現上是從各自不同的接口進行輸入,故可將5類拍攝模式的切換分別進行考察,這樣就將拍攝模式組合后進行切換轉化為單個拍攝模式各自的切換,無需再考慮它們組合后再切換的情況。
基于以上策略,對整個軟件系統工作狀態轉換和拍攝模式組合切換的測試已經分解成2部分。(1)系統工作狀態的轉換,(2)5種拍攝模式的切換。對系統工作狀態轉換的測試用例設計按照系統工作狀態轉換的全組合進行,參照表2進行測試用例設計,需設計(10×10)=100個測試用例。由于對拍攝模式組合的切換已經轉化為對每個拍攝模式的切換,而每個拍攝模式只包含2種選擇,故只需對每個拍攝模式設計這2個測試用例來測試該條件下的2種模式的切換即可,共需設計2×5=10個測試用例。

表2 工作狀態轉換測試表
以上測試方法將整個軟件按功能進行分解后測試,大大地減少了測試工作量:由于每次工作模式轉換要考慮系統工作狀態和拍攝模式組合,而系統工作狀態又包含10種可能的選擇,拍攝模式包含5類,每類拍攝模式有兩種選擇,故拍攝模式組合有25種,即每個系統工作狀態下都有25種拍攝模式組合情況,組合后的“工作狀態&拍攝模式”有10*25種。如果將系統工作狀態轉換和拍攝模式組合切換綜合后進行全組合的測試,需要(10*25)2=102400個測試用例,這樣的測試工作量是令人難以接受的。在采用功能分解后,只需設計110個測試用例即可。
使用了功能分解的方法后,需要判別測試用例集是否足夠充分。在系統工作狀態轉換上,由于是進行了系統工作狀態轉換的全組合測試,從而保證了系統工作狀態轉換方面的測試充分性。在拍攝模式組合切換上,由于5種拍攝模式之間并沒有相互關聯關系,故單獨對各拍攝模式的切換進行測試也保證了拍攝模式組合后再切換方面的測試充分性。這樣就保證了整個系統測試的充分性。
針對軟件特點進行功能分解,然后對各功能獨立進行測試的方法對數碼相機軟件進行測試,在保證了測試充分性的前提下,大大降低了測試工作量,提高軟件測試效率。該方法能夠應用于狀態組合數量巨大軟件的測試工作,是一種實用、有效的軟件測試方法。
[1]周偉明.軟件測試實踐[M].電子工業出版社.2008.
[2]郁蓮.軟件測試方法與實踐[M].北京:清華大學出版社,2008.
[3]高猛.實時嵌入式軟件系統測試需求建模研究.航天控制[J],2010,28(5):64-69.
A System Testing Method for Software Embedded in Digital Camera System
Fu Hao,Qin Hao
(Aeronautic Computing Technique Research Institute,Xi’an Shaanxi,710068)
Digital Camera System(DCS) is an important part in the pilotless aircraft, and its performance directly affects the capability of the aircraft As the nerve center of the DCS, the quality of software embedded in DCS directly affects the total performance of the aircraft. This paper analyzes the characteristics of the software, summarizes the difficulties of software testing,give a test design method aimed to the software which has a great amount of states combination
digital camera system;software testing;system testing;test requirements analysis;test design;test adequacy analysis