軟體套用
煙霧測試是一組用以確定系統處於穩定狀態、所有的主要功能都具備並且能夠在“ 正常 ”條件下運行的測試用例。煙霧測試不能由測試小組獨立來建立;它應該是通過聯合的方式,至少是在與開發員達成一致的情況下建立的。煙霧測試的目標是顯示穩定性、而不是發現系統的每個bug ,必須在系統測試環境中運行。煙霧測試的名稱可以理解為該種測試耗時短,僅用一袋煙功夫足夠了。也有人認為是形象地類比新電路板功基本功能檢查。任何新電路板焊好後,先通電檢查,如果存在設計缺陷,電路板可能會短路,板子煙霧了。煙霧測試的對象是每一個新編譯的需要正式測試的軟體版本,目的是確認軟體基本功能正常,可以進行後續的正式測試工作。煙霧測試的執行者是版本編譯人員。
在軟體工作組中,軟體在編寫過程中執行 Daily Build 和煙霧測試,如果無法成功編譯,或者編譯成功但是無法執行,則啟動小組討論直到修改完善錯誤為止。,內部需要編譯多個版本 (Builds) ,但是只有有限的幾個版本需要執行正式測試(根據項目開發計畫),這些需要執行的中間測試版本,在剛剛編譯出來後,軟體編譯人員需要進行基本性能確認測試,例如是否可以正確安裝 / 卸載,主要功能是否實現,是否存在嚴重當機或數據嚴重丟失等 Bug 。如果通過了該測試,則可以根據正式測試文檔進行正式測試。否則,就需要重新編譯版本,再次執行版本可接收確認測試,直到成功。
新版本的基本功能確認檢查的測試,有的公司成為版本健康檢查 (Build Sanity Check) 。對於編譯的本地化軟體新版本,除了進行上面提到的各種測試檢查,還要檢查是否在新的本地化版本中正確包含了全部應該本地化的檔案。可以通過採用檔案和目錄結構比較工具,首先比較源語言版本和本地化版本的檔案和目錄中的檔案數目、檔案名稱稱和檔案日期等,這個過程稱為版本鏡像檢查 (Build Image Check) 。其次,分別安裝源語言版本和本地化版本,比較安裝後的檔案和目錄結構中的檔案數目、檔案名稱稱和檔案日期等,這個過程稱為版本安裝檢查 (Build Installing Check) 。
微軟方針
建立每日組建每日組建會需要小組成員一起工作,也會鼓勵開發人員保持同步。如果新組建的反覆運算發生延遲,則延遲可能輕易地造成具有多個相依性的產品發生未同步的情形。遵循程式,每日建置以及煙霧測試任何已變更或新的二進位碼檔桉,可以確保得到更高的品質。
注意事項
請將每日組建設定為小組的最高優先順序。如果因為簽入的程式碼尚未經過煙霧測試,使得組建損毀了,開發人員和軟體測試人員就必須停止所有其他工作,直到問題解決為止。損毀組建應該不會受到太過嚴格的處罰,但是處罰會著重在要求小組將建置適當的每日組建做為第一優先任務。不需要執行詳盡的測試。執行煙霧測試的目的不在於,確保二進位檔桉為100%無錯誤,這會需要相當多的時間。請執行煙霧測試,以較高的層級驗證組建。您可以確保二進位檔案中的變更不會使一般組建不穩定,或是造成功能上的嚴重錯誤。
Web測試和負載測試
建置Web測試和負載測試時,建議在執行任何長時間且負載過重的測試之前,先執行煙霧測試。在Web測試和負載測試中,煙霧測試屬於簡短、負載較輕的測試。在針對測試進行效能或壓力測試(StressTesting)之前,請使用煙霧測試,驗證每個設定都已正確地設定,並且如預期般正常運作。
火災預警
基於煙霧檢測火災自動報警系統用MC14468離子型煙霧檢測報警器、單片機8051、nrf401單片射頻收發器構成火災自動報警系統。由於引入了無線通信技術和FSK(頻移鍵控)調製解調技術為核心nRF401射頻收發器,使系統性能大大提高,尤其是使系統報警更具實時性和可靠性。現代建築特點是樓層不斷加高,這主要是從緩解城市用地緊張角度出發,同時還便於集中供電、供熱、供氣,便於集中控制和管理。現在,不論是普通型(比如民用住宅)還是豪華型(比如高級賓館)高層建築,都日益重視防火和安全技術普及套用。因為其樓層多、人員密集,如果發生火災,疏散困難,撲救也困難,勢必造成嚴重人員傷亡和財產損失。為了保障高層建築安全可靠,必須設計出具有可靠性高、實時性火災自動報警與消防系統,其要求是:(1)當有火情發生時,能以最快速度檢測報警,並能檢測火情發生具體地點(特定地址編碼);(2)經查實確認後,能及時通報消防部門滅火;(3)系統本身應有自身故障檢測功能,如系統欠電壓報警和自檢功能等,保證自動報警系統功能完;(4)較高系統抗干擾能力,防止系統發生誤報警。目前,雖然已經有多種火災自動報警系統,但大多還屬於脫機方式,最終要靠人來聯繫消防部門,往往由於不能及時報警而造成重大損失。如果能夠以線上方式直接工作,將很大程度上減輕財產損失和人員傷亡。我們正是著眼於這一問題,力圖從根本上解決脫機信號傳輸方式存在問題,直接將信號通過無線傳輸技術傳送給主控室或消防部門,達到第一時間救火、滅火目。
系統總體結構本系統由兩部分組成:檢測發射部分和接受控制部分,其結構如圖1和圖2所示。二者均採用單片機控制,系統結構簡單,容易實現。由於採用了nRF401單片射頻收發器,從而達到了無線傳輸目,能迅速發出報警信號,方便及時控制火情。檢測發射端和接收控制端選用了目前市場上已經成熟高性能晶片,其外圍電路結構簡單,實現容易,可靠實用。系統由三大晶片互相配合構成,檢測裝置採用了Motorola公司生產具有聲光報警電路MC14468晶片,能實現多點並行檢測,配合外圍電路可構成多點菸霧報警系統,其套用電路如圖3所示。無線收發器採用美國Nordic公司最新推出基於無線通信nRF401型單片射頻收發器,它採用了無線通信和FSK(頻移鍵控)調製解調技術,工作頻率穩定且抗干擾能力強,不需要對數據進行編碼,外圍電路簡單,使用方便,其套用電路如圖4所示。由於採用低發射功率和高接收靈敏度設計方案,因此不受無線電管理條例限制,無須辦理許可證。nRF401引入是本系統突出特點之一,它極大提高了系統實時性,這對安全系統是相當重要。單片機採用8051,它不但是MC14468與nRF401之間橋樑,還起著控制各晶片時鐘周期相互配合作用,這也是相當重要一環。由於本系統整體結構簡單,軟體容易實現,因此不需要對8051進行特別擴展。發射部分
MC系列晶片MC14468為離子型煙霧檢測報警晶片,是目前市場上很流行集火災檢測與報警於一體智慧型感測器。當檢測到煙霧顆粒時,它能驅動其外圍連線壓電陶瓷蜂鳴器或壓電式揚聲器發出報警聲,與此同時,還驅動發光二極體(LED)以1Hz頻率閃爍發光,利用聲光報警達到煙霧報警最佳效果。
MC144681腳(檢測輸出端)直接聯接單片機INT0,當檢測到煙霧時,其輸出高電平通過INT0控制單片機內部定時器T0工作,定時90ms,T0溢出中斷,進入中斷服務程式,通過串口傳送數據(房間號或之前對該系統有意義編碼)給單片射頻收發器nRF401。在檢測到煙霧時,MC14468自身100mV滯後電壓會防止其他外界因素(如飛蟲)造成誤報警,輔以單片機產生90ms延時,更能提高系統可靠性。每次T0記時開始時,要由軟體重新置初值,從而不會由於90ms期間MC14468管腳1上信號消失或變低而導致下次運行出錯。nRF401串列口直接和單片機串列口連線(DIN接TXD,DOUT接RXD),TXEN端高/低電平由軟體設定,可實現nRF401發射模式與接收模式之間相互切換。當需要發射數據時,由晶振電路產生4MHz頻率作為其內部鎖相環基準頻率,經鎖相環和壓控震盪器進行N倍頻後,中心頻率f0成為433.92MHz或434.33MHz(雙頻道),調製後,f=f0±△f=f0±15kHz(該晶片調製度為±15kHz),最後經功率放大器放大後從PCB天線上發射出去。
接收部分
nRF401從PCB天線上接收到調頻信號時,單片機置TXEN端為低電平,功率放大器被關斷從而進入接收狀態。調頻信號依次經低噪聲放大器放大,經混頻器(其作用是抵消本機傳送器與接收器之間高頻干擾)變成中頻,再經帶通濾波器濾波和調製器解調後,成為數據輸出。這時單片機切換到發射模式,回送握手信號,nRF401把得到數據輸送給單片機,經處理後從P1口輸出到LED上顯示(火情來源地信息),同時驅動報警器報警。相比於檢測發射端電路,接收控制端電路更簡單。各管腳引線方法兩者基本相同,只是軟體實現稍有不同。它可直接採用多位LED顯示,不用擴展任何接口。
初始化主要是指對定時器工作方式暫存器、中斷允許暫存器、串口工作方式暫存器等設定。當檢測到有煙霧時,先由定時器T0定時90ms,在此期間,如一直能檢測到煙霧,確認有火情存在,T0溢出中斷,開始傳送數據(可以是火情地址編碼),經由nRF401PCB天線發射出去。INT0被設定為下降沿觸發,如果90ms期間MC14468管腳1信號消失或變低,都會引起外部INT0中斷,計數器重新置初值。當接收控制端接收到收據時,回送握手信號,以示傳送下一幀數據,同時控制壓電陶瓷蜂鳴器報警,並控制LED顯示數據;如沒接收到,即檢測發射端沒接收到應答信號,則重新傳送,直到接收到為止。TXEN端高/低電平由軟體設定,可實現nRF401發射模式與接收模式之間相互切換。程式主要採用彙編語言,運用自上而下設計思想,總體分為兩部分,如流程圖5所示。整個軟體系統有主程式和中斷程式、顯示程式、延時程式等子程式。主程式主要是對系統初始化以及檢測處理,中斷程式主要是傳送數據並通過nRF401發射出去,顯示模組實現功能是接收數據並送LED顯示,同時啟動報警,延時程式是為了nRF401發射模式與接收模式之間相互切換時序需要。
由MC14468、8051、nRF401三大晶片組成火災自動報警系統,具有功能強、靈活性高、可靠性、抗干擾能力強、實時性高等優點,系統整體結構簡單、容易實現、實用方便,符合安全系統要求。
軟體測試
軟體測試定義是:為了發現程式中的錯誤而執行程式的過程.它是幫助識別開發完成(中間或最終的版本)的計算機軟體(整體或部分)的正確度(correctness) 、完全度(completeness)和質量(quality)的軟體過程;是SQA(software quality assurance)的重要子域。希望在完成這個詞條的同時,與大家共同學習。 |