真人一对一直播,chinese极品人妻videos,青草社区,亚洲影院丰满少妇中文字幕无码

0
首頁 精品范文 集成測試

集成測試

時間:2022-02-16 19:34:36

開篇:寫作不僅是一種記錄,更是一種創造,它讓我們能夠捕捉那些稍縱即逝的靈感,將它們永久地定格在紙上。下面是小編精心整理的12篇集成測試,希望這些內容能成為您創作過程中的良師益友,陪伴您不斷探索和進步。

集成測試

第1篇

【關鍵詞】持續集成;集成測試

首先,持續集成和集成測試還是有很大區別,持續集成強調的是自動化的編譯構建,部署,自動化的冒煙測試,保證開發過程的產出隨時都可以構建一個冒煙測試通過的可用版本。而集成測試則涉及到嚴格的測試策略,測試方案,集成測試順序,各個集成功能點的覆蓋,詳細的功能性測試等。集成測試不僅僅是接口測試,更重要的是以接口質量為前提的跨組件功能性測試。

1.為什么要集成測試

集成測試,也叫組裝測試或聯合測試。在單元測試的基礎上,將所有模塊按照設計要求組裝成為子系統或系統,進行集成測試。實踐表明,一些模塊雖然能夠單獨地工作,但并不能保證連接起來也能正常的工作。程序在某些局部反映不出來的問題,在全局上很可能暴露出來,影響功能的實現。

理論上凡是兩個單元(如函數單元)的組合測試都可以叫做集成測試。實際操作中,通常集成測試的對象為模塊級的集成和子系統間的集成,其中子系統集成測試稱為組件測試。

在單元測試和系統測試間起到承上啟下的作用,既能發現大量單元測試階段不易發現的接口類錯誤,又可以保證在進入系統測試前及早發現錯誤,減少損失。

對系統而言,接口錯誤是最常見的錯誤,單元測試通常是單人執行,而集成測試通常是多人執行或第三方執行。集成測試通過模塊間的交互作用和不同人的理解和交流,更容易發現實現上、理解上的不一致和差錯。

2.集成測試什么時候開始

在開始體系結構設計的時候開始;

在進入詳細設計之前完成集成測試方案;

在進入系統測試之前結束集成測試。

3.集成測試原則

集成測試是產品研發中的重要工作,需要為其分配足夠的資源和時間。

集成測試需要經過嚴密的計劃,并嚴格按計劃執行。

應采取增量式的分步集成方式,逐步進行軟件部件的集成和測試。

應重視測試自動化技術的引入與應用,不斷提高集成測試效率。

應該注意測試用例的積累和管理,方便進行回歸并進行測試用例補充。

4.集成測試需要關注以下問題:

4.1 集成測試的可迭代性

在整個軟件開發都可迭代的模式下,要意識到集成測試過程本身也是可以迭代的。大型產品集成不應該等待到真正各個子系統或業務模塊都開發好才開始集成測試。功能開發的迭代直接驅動集成測試過程也是迭代,同時在每個集成測試周期中最好又分為幾個關鍵點,首先是服務模擬器,其次是替換掉模擬器聯調通組件接口,再次測試接口服務中詳細實現。

4.2 集成測試的順序問題

我一直認為這是集成測試中非常關鍵的一個內容,集成順序的確定涉及到前期大量的組件間依賴關系分析,業務功能點和接口對應關系分析等。特別是發展到現在,我們發現很多時候組件間不再是以前單純的單向依賴關系,由于接口服務注冊在總線上,導致多個組件間可以相互依賴,所以前面簡單的組件依賴分析已經不適用,替代的方法是基于跨組件的流程協同分析,以核心流程驅動組件間的組裝順序。

同時,對于傳統的自頂向下集成和自底向上集成方法往往都不能完全覆蓋。很多時候采用的都會是混合集成的策略。一個是為了及早的看到集成的效果我們期望從頂向下,但是卻需要大量的模擬器和stub樁模塊。另外一個是為了減少模擬器,我們從最底層向上集成,但是往往卻將風險延遲到最后發現。

4.3 測試全流程的問題

在每個組件或模塊的單元測試階段更加容易實現每日構建和持續集成,持續集成完后應該對每個獨立模塊進行詳細測試,但是測試需要依賴一定的模擬器。在集成測試環境則進入到集成流水線,集成流水線的準入應該是每個組件在單元測試環境都完全測試通過,集成流水線根據組件的集成需求來規劃具體的測試計劃和測試方案。集成測試過程仍然應該首先是冒煙測試進行準入驗證,然后是接口測試,然后是詳細功能測試,最終交付到驗收。

5.集成測試方法

5.1 非遞增式集成測試

所有軟件模塊完后單元測試后一次集成。

優點:測試過程中基本不需要設計開發測試工具。

不足:對于復雜系統,當出現問題時故障定位困難,和系統測試接近,難以體現和發揮集成測試的優勢。

5.2 遞增式集成測試

逐漸集成,由小到大,邊集成邊測試,測完一部分,再連接一部分。

在復雜系統中,劃分的軟件單元較多,通常是不會一次集成的。

軟件集成的精細度取決于集成策略。通常的做法是先模塊間的集成,再部件間的集成。

優點:測試層次清晰,出現問題能夠快速定位。

缺點:需要開發測試驅動和樁。

5.3 集成測試實現

集成測試在實現方式上和單元測試是一樣的,需要根據測試需求設計實現相應的測試驅動和測試樁,同時也可以借助一些工具進行輔助測試。

對我們的系統而言,相對于單元測試,適用的商用集成測試選擇面更窄。

實際工作中,各項目開發的模擬工具即屬于集成測試工具,但在系統化、靈活性、通用性上尚欠缺,缺乏系統全面的設計。

現有的模擬工具在測試自動化上也需改進,如實現測試數據的自動生成、測試用例的自動運行、測試結果的自動保存和比較等。

所有的軟件項目都不能擺脫系統集成這個階段。不管采用什么開發模式,具體的開發工作總得從一個一個的軟件單元做起,軟件單元只有經過集成才能形成一個有機的整體。具體的集成過程可能是顯性的也可能是隱性的。只要有集成,總是會出現一些常見問題,工程實踐中集成測試,幾乎不存在軟件單元組裝過程中不出任何問題的情況。

參考文獻

[1]李天日,林寧,高林.基于國產基礎軟件應用系統的性能測試與優化研究[J].微型機與應用,2010(11).

[2]謝謙,高林,楊建軍.國產基礎軟件標準化與研發、測試、應用[J].信息技術與標準化,2008(06).

[3][美]Paul C Jorgensen.軟件測試[M].韓柯,杜旭濤,譯.機械工業出版社(2版),2002.

第2篇

作為NVIDIA支持Intel平臺的新一代整合芯片組,Geforce9系列芯片組的名字最近一段時間經常被玩家們掛在嘴邊。這是因為,采用這款最新芯片組的主板,不但擁有穩定可靠的數據處理能力,而且其在板載顯示核心的性能方面,也具備了超越此前整合主板自帶板載顯示核心的最高水平。伴隨著10月中下旬,頭一批采用Geforce9系列芯片組主板的面市,Geforce9系列主板終于向期盼已久的玩家們走來了。

為了考察這種主板的性能,尤其是其整合的顯示性能到底怎樣。我們特意對一款極具代表性的Geforce9系列主板進行了測試。

這款名為P5N7A-VM的主板,出自主板大廠華碩之手。不但做工細膩,而且性能穩定。作為頭一批采用Geforce9系列芯片組主板的領軍產品,目前它已經成為了很多玩家心中喜愛的寵物。

需要在此指出的是:Geforce9系列芯片組擁有兩個不同的版本,它們分別采用GeForce9300和GeForce9400的顯示核心。其中,GeForce9400的顯示核心擁有更高的Croe和shader頻率。不過,在目前面市的這幾款產品中,均采用了相對較弱的GeForce9300顯示核心。但同時,令玩家們感到欣慰的是:無論是GeForce9300顯示核心還是GeForce9400顯示核心,它們與目前OEM的同型號獨立顯卡的產品規格是基本一致的。除了具備比前一代GeForce8200/8300顯示核心多出一倍的16個流處理器外,GeForce9300/9400還完全支持AVC和VC-1的硬件解碼技術。簡單的說,除了顯存規格與獨立顯卡不同外,MCP7A芯片組所采用的顯示核心與相應規格獨立顯卡中的顯示核心是基本相同的。

圖注:GeForce9400核心與GeForce9300核心的參數對照。從中我們不難看出:兩者的差別,主要在Core/ShaderClock一個項目上。GeForce9400核心的標稱參數要略高于GeForce9300核心。

與多數評測中使用經濟型平臺不同,這一次為了全面的考量這塊主板的顯示效能和數據處理能力,我們使用了IntelCore2QuadQ6600的高端CPU。這樣做不但可以將主板的性能充分的發揮出來,同時對于考察主板與Intel高端CPU中,新功能的兼容性也很有幫助。在測試系統中,我們分別還使用了主流的Kingston2GBDDR2-800的內存和希捷的320G硬盤。此外,在本次測試的過程中,我們使用了主流的WindowsVista32位版本的操作系統。測試分為權威3D軟件測試、主流游戲測試和針對主板性能的基本測試三個部分,用以分別考察這款主板的板載顯示性能和主板自身數據傳輸的處理能力。為了確保成績準確,我們在搭建測試平臺時,只安裝了主板自帶光盤中的驅動程序。同時,測試系統除安裝有測試用的軟件工具及游戲外,沒有安裝任何其他的優化軟件和功能性應用軟件。僅從安裝操作系統上看,這款Geforce9系列的主板就表現出了良好的兼容性能。安裝過程非常順利,而且主板自帶的安裝光盤中,還設計有華碩獨有的節能控制軟件。這個軟件的操作非常的簡單,但可以根據系統的工作情況,對主板的能耗進行全面的控制。

接下來,就讓我們看一下這塊主板中的顯示核心在權威測試軟件中的具體表現吧。

第3篇

關鍵詞:半實物仿真;虛擬儀器;Labview;高速磁浮;仿真測試

中圖分類號:TP391.9 文獻標識碼:A文章編號:1009-3044(2010)22-6290-02

Study on Test Platform Integrated Simulation System for High-Speed Maglev

XIONG Zhi-jie

(Department of Software Engineering, Tongji University, Shanghai 201804, China)

Abstract: Based on the performance study and combined with the HIL simulation and virtual instruments technology, it is proposed a method for hybrid test of integrated simulation system for High-Speed Maglev. The test device is designed, which could reproduce the various running status of the Maglev system in the laboratory and carry out an integration testing on the system based on the manual testing data and the automatic testing case. The test device has been applied on Tongji University, with excellent results.

Key words: HIL simulation; virtual instrument; Labview; high-speed maglev; simulation testing

1 概述

半實物仿真又稱硬件在回路仿真(Hardware-In-the-Loop Simulation,HILS),是指在條件允許的情況下盡可能在仿真回路中接入實物。以實體取代相應部分的數學模型,這樣更接近實際情況,從而得到更確切的信息。這種仿真實驗將對象實體的動態特性通過建立數學模型、編程,在計算機上運行。由于在回路中接入實物,因此對仿真過程有“實時實地”的要求。即半實物仿真不僅需要實時運行,還要在相應的模擬環境下運行。

隨著經濟的發展和人口規模的不斷擴大,城市交通問題日趨嚴峻,已經成為世界范圍內重點研究解決的問題。而高速磁浮交通因為其客運量大、周轉量大、速度極快、安全性能高、受干擾小等優點,已經成為城市交通問題的首選方案。

中國磁浮列車在上海從2000年開始建設到投入運營,發展至今已經有10年的歷史了,如果一直依靠國外廠家進行建設,不但在經濟上將難以承受,也對國內磁浮產業的發展不利。而且德國的測試技術是基于人工的手動測試,其操作難度大,同步性要求高,效率低下,已經無法滿足目前技術發展的需求。因此,吸收和消化國外先進技術,自主研制一套能對磁浮系統進行綜合測試和評價的裝置成為當務之急,也是為進一步建設磁浮打基礎。

2 系統簡介

高速磁浮半實物仿真集成實驗系統是一套以28km實際工程線路為應用背景,由核心控制系統、關鍵設備和仿真環境構成的半實物高速磁浮交通系統技術集成實驗系統,并對系統功能、性能、接口等相關集成技術進行實驗研究的系統。該集成實驗系統針對28km實際線路及一列車、二個分區和雙端供電等工況,實現對整個高速磁浮交通運行控制及牽引控制系統進行RAMS(可靠性、可用性、可維護性和安全性)設計、系統及部件功能規范、系統及部件接口和系統及部件性能的試驗,并對其進行環境故障注入條件下的系統功能和性能的測試和驗證。系統總體架構圖如圖1。

3 仿真測試原理

本測試系統是半實物仿真技術在高速磁浮交通和測試領域的應用,是一個半實物仿真測試系統。根據高速磁浮系統的工作原理及其各子系統結構,本仿真測試平臺作為整個半實物仿真系統上層的一個測試管理平臺,通過對系統所有仿真設備的狀態監控和故障注入、測試案例的操作實施,與半實物仿真系統中的仿真設備一起實現對系統主體設備運行控制系統和牽引控制系統的功能、性能、接口等的測試驗證。

從技術角度來說,就是以計算機為控制核心,包括高速數據采集卡、信號調理電路以及一整套的軟件系統,通過數據流監控、檢測、控制、管理整個被測系統,通過LabVIEW圖形界面監控被測系統所有需要監控的信號,通過收發數據包實現故障注入、案例測試,通過讀取測試結果數據判定被測系統的性能優略、部件是否正常。半實物仿真技術既考慮了高速磁浮系統的復雜性,又結合了軟件在測試方面的強大功能,實現了軟件和硬件的有機結合。

4 系統硬件實現

本系統是針對磁浮系統的動態特性(要求同步誤差小于0.2毫秒),并對其關鍵部件提供控制、監視、數據采集、顯示等功能的仿真測試平臺。從系統設計角度講,半實物仿真系統應當具有面向不同工業系統,不同控制規律的仿真能力;從軟件開發角度來講,它應當具有多變量、多參數的處理能力;同時作為半實物仿真的擴展,它能夠與其他硬件部件之間進行實時或非實時的通信。其核心硬件設備為兩臺IBM X系列服務器,一臺作為應用系統服務器,另一臺作為數據庫系統服務器,但每臺服務器都安裝應用系統和數據庫系統,構成服務器集群,兩臺服務器互為冗余,當一臺服務器出現故障,立即啟用另一臺服務器的備份功能,這樣系統就可以持續運行。仿真測試系統硬件框架圖如圖2。

5 軟件設計

軟件系統的開發平臺是windows2000 server操作系統和Labview虛擬儀器軟件開發環境,數據庫為Oracle。系統的軟件設計采用由上至下的設計方法和模塊化的設計思路,即首先根據測試系統的總體方案需求,確定軟件系統的總體框架;然后根據所需的不同功能劃分各種功能模塊,并分別設計實現各個功能模塊;最后再將各個功能模塊進行集成和調試,完成整個軟件系統的設計與實現。

首先,本系統采用J2EE架構,引入JSF 和 Hibernate框架,形成表示層、控制層、業務層、持久層和數據層五層的實施構架。

其次,根據案例測試方法的特點及要求,開發一個B/S構架的案例測試控制系統,案例測試人員通過瀏覽器登錄系統,然后在登錄后的界面上進行編制案例、保存案例、執行案例等操作。客戶端通過向服務器端發送請求,服務器根據相應請求,將該界面返回給測試人員,同時后臺與數據庫服務器相連,提供數據支持。測試系統主操作界面如圖3。

最后,根據手動測試方法的特點及要求,開發一個基于Labview的手動測試及數據監控子系統,在軟件編寫中,完成各子系統功能的程序,將其做成子模塊。當然每個模塊也可以由更小的模塊組成。車輛系統Labview程序框架圖如圖4所示。

6 動態測試

本系統運行時,通過主程序操作界面及Labview監控操作界面,向仿真測試系統發送控制指令,使高速磁浮半實物仿真集成系統再現列車正常運行時的牽引、供電、控制等工況,并及時采集并儲存各種實時數據,實現對系統中實物設備的檢測,通過被測系統向測試系統發送的工況信號與即成案例測試數據進行比對,判斷高速磁浮半實物仿真集成系統各模塊、各接口、各設備能夠正常工作。

7 結束語

高速磁浮半實物仿真集成系統測試時所運行的仿真環境與28km實際工程線路條件下的列車實際運行環境等效,測試結果與在線狀態時基本相符(局部實驗數據與預先計算數據有偏差,有待進一步研究實驗),這為高速磁浮的建設和運行提供了非常有用的資料。本測試系統已成功在同濟大學磁浮研究中心投入實驗。

通過對系統的仿真測試,可以方便地得到實物系統在不同環境下的仿真模型的運行狀態,測試結果可以為進一步的磁浮研究提供重要的數據來源,而且可以為滬杭磁浮建設提供重要的實驗數據。為今后中國高速磁浮的發展提供非常多的實驗數據。

參考文獻:

[1] 吳詳明.磁浮列車[M].上海:上海科學技術出版社,2003.

[2] Cem Kaner,Jack Falk,Hungary Quoc Nguyen.計算機軟件測試[M].北京:機械工業出版社,2004:40-100.

[3] Robert Edition.LabVIEW8 Student Edition[M].北京:電子工業出版社,2008:1-100.

[4] Mansoor S P,Jones D I,Bradley D A.HARDWARE-IN-THE-LOOP SIMULATION OF A PUMPED STORAGE HYDRO STATION[J].International Journal of Power and Energy Systems,2003,23(2).

[5] 程隆華,方海清.上海地鐵一號線車輛牽引(制動)數學仿真計算[J].上海鐵道學院學報,1999(15).

第4篇

【關鍵詞】集成電路;測試管理系統;開發;利用

伴隨著科學技術的不斷發展,半導體集成電路也出現了日新月異的變化,結構復雜、大規模、速度快、功能多的電路逐漸得到有效開發,半導體制造工藝技術逐漸完善,其中尤為特別的是數字電路變化。基于此種形勢下,對集成電路測試提出了更高的要求。在以往測試軟件編制中,程序主要以測試流程為導向,堅持自上至下原則進行排列,將程控指令、測試參數、測試結果等都納入文本測試軟件中,這種編程面向過程,語法規則特定。但工程師必須要具有一定的編程技能,由于編程過程復雜,自動化測試不具高效性、快速性和同步性。目前,伴隨著半導體技術的不斷進步,圖形化編程語言編程為工程師提供一個有效的可編程平臺。筆者主要綜合自身多年來在半導體企業從事集成電路測試工作實踐和管理經驗,深入探究集成電路測試系統管理及其開發應用,旨在實現集成電路測試精細化管理的要求和行業可持續發展。

1.集成電路測試設備及配件概述

1.1 集成電路測試設備功能分析

針對集成電路測試設備及功能而言,主要體現在四個方面:

(1)測試機。測試機主要參考因素包括硬件架構端子數、操作系統環境、時鐘速度、程序開發工具、應用程序等,早期測試機多以C、Pascal等程序語言為開發工具,目前VB應用廣泛,各種輔助應用程序為測試工程師提供了發展時機;

(2)晶圓針測機。目前,四寸至十二寸晶圓均經針測機在晶舟與測試機間進行存取,此種設備對機械自動化、結構精密度、運轉穩定度要求較高;

(3)器件分類機。分類機主要執行測試機與集成電路成品間的電性接觸,按照測試程序中定義結果進行分類;

(4)預燒爐。早期預燒爐主要提供預燒條件中所需電流、偏壓、波形電路機制,目前主要以封裝類型為依據來進行設計,對被測器件具有承載作用。

1.2 集成電路測試機原理

測試機多由高性能量測儀器構成,而測試系統屬于測試儀器與計算機控制的綜合體。計算機控制主要是經由測試程序執行指令集對測試硬件進行控制,最終由測試系統提供測試結果。為保證測試結果的一致性,必須要對測試系統進行定期校正處理,一般應用校正芯片對測量儀器精準性進行驗證。目前,多數測試系統可測試具有特定類別特征的集成電路,通用器件種類包括數字、內存、混合信號、模擬。一般而言,測試系統包括來源內存、捕捉內存、測試樣本或掃描向量內存、端子電路,而測試方法主要采用施加與測量模式,通過設置測量范圍、測量極限、設備性能參數而完成測試作業。

2.集成電路測試數據分析

為了開發集成電路測試管理系統,必須要詳細分析現有的產品管理過程與測試流程,從而優化系統功能與框架設計。首先,要對現有產品測試數據進行統計分析。一般而言,集成電路測試生產線上具有4個左右的測試平臺,每個測試平臺對不同產品、測試參數所提供的測試數據、時間不盡相同。通常狀況下,測試結果屬于生產過程總體情況的直接反映指標,優化測試參數,能獲取產品良率信息。在現階段,由于測試參數較多,且各個參數間能產生不同程度的交互效應,最終影響統計性質。目前,就測試統計工具分析方法而言,主要包括兩種:一是比較分析,二是相關性分析。譬如在不同條件下,可對每片晶片測試參數進行比較分析,觀察測試參數之間的差異性。同時,可將測試參數與WS數據、測試數據、iEMS數據進行相關性分析,尋找相關性誘因。以上兩種分析方法均在明確現有歷史數據對產品設備、生產狀況的影響下進行。應用現有數據預測產品特征,考慮到測試問題具有復雜性,工程師往往無法對測試結果的準確性進行優化判斷。

在實際分析過程中,可綜合多種統計手段來進行分類效果預測。具體而言,必須要注意四個問題:

(1)明確好壞組。基于掌握歷史測試數據的基礎上確定好壞組分組規則;

(2)對測試參數進行刪選。擇取與另一平臺測試數據具有相關性的測試參數,并進行集合,在此基礎上擇取好壞組間差異顯著的測試參數;

(3)對主成分進行綜合分析。針對具有差異性的測試參數而言,必須要作正交化處理,將測試參數間的交互作用及時消除;

(4)判別分析。對待預測晶圓至好壞兩組距離進行計算,應用具有統計學意義的Mahalanobis距離將常用遠近距離進行替代,并將其歸納到距離近的那組,實現分類目標。此流程可優化最終結果,同時在研究過程中還可運用判別分析、分析流程等篩選方法。

3.集成電路測試管理系統設計

3.1 集成電路測試系統數據庫概念與邏輯設計

針對集成電路測試系統數據庫概念設計而言,主要包括四類方法:一是自頂向下,二是自底向上,三是逐步擴張,四是混合策略。就測試管理開發而言,主要應用自底向上方法,即首先勾畫局部概念結構,并將各個局部進行集合,最終獲取全局概念結構。于構建概念模型前,必須要深入分析需求分析中形成的數據,把握數據實體屬性,構建實體間關系。在數據庫開發時期,開發環境擇取Web應用框架(Django),按照系統情況,于數據流圖中擇取適當數據流圖,每部分均與一個局部應用相對應,聯系各個局部數據流程圖,檢查概念模型圖設計的精準性。

概念結構屬于數據模型的基礎,為了達到測試管理系統要求,要將概念結構轉化為數據模型。在數據庫管理系統中,通常只支持網狀、關系、層次三種模型中的某一具體數據模型,導致各個數據庫管理系統硬件具有局限性。因此,在邏輯結構設計中,首先要對概念結構進行轉化,促使其常用網狀、層次模型,并基于特定數據庫系統輔助下,促使轉化為數據模型。同時,數據庫擇取MySQL,降低總體擁有成本。

3.2 集成電路測試系統數據庫物理設計

就集成電路測試系統數據庫物理設計而言,首先要明確數據庫物理結構,再對其進行綜合評價,其內容主要包括三個方面:

(1)數據儲存結構。在對數據存儲結構進行評價時,要將維護代價、存取時間、空間利用率作為考慮因素。一般而言,將冗余數據消除,能有效節約存儲空間,但易增大查詢代價,故要權衡利益,擇取折中方案。MySQL屬于關系型數據庫,聚簇功能強大,為了保證查詢速度,可將屬性上存在相同值的元組進行集中,存入物理塊中;

(2)數據存儲位置。在開展數據庫物理設計時,可將MySQL數據庫中的用戶表空間與系統文件相對應的數據存入磁盤驅動器中,以達索引與數據庫軟件、表分類存放目的。針對MySQL數據庫而言,可將不同用戶建立的表進行分類存放,可最大限度地優化數據庫;

(3)數據存取路徑。在關系數據庫中,要明確存取路徑,尋找索引構建方法。索引作為一種數據庫結構,主要包括三種形式:一是簇索引,二是表索引,三是位映射索引。在MySQL數據庫中,利用索引可提高聚集中數據與表檢索速度。科學應用索引,能降低磁盤I/O操作次數。

4.集成電路測試管理系統的實現與開發利用

4.1 集成電路測試數據輸入

在測試生產線上,由于每天都會出現大量的晶圓測試作業,故針對產品測試管理系統來講,必須要將晶圓信息輸入到相應數據庫中,便于后續功能操作的實現。在現有測試生產線上,一部分產品信息可實現自動輸入,譬如每片晶圓均存在自身產品批次與編號,于晶圓制造中可將此類信息標記在晶圓表面上,經由晶圓針測機自動識別裝置進行讀取。待讀取完畢后輸入到相關的測試結果中。而就其它無法自動輸入信息而言,譬如測試接口、針測卡、測試設備等信息,必須要進行手動輸入。

基于把控生產線實際狀況的基礎上,每名錄入員均需進行班組個人生產日報的錄入,工作量相對較大,同時考慮到系統實際需要,于每2小時需要進行一次數據錄入,故必須要重視錄入速度。當數據被錄入子菜單時,其每頁面設計必須要采用Django的第三方控件,利用其強大功能以達無鼠標操作目標。從本質上來講,輸入員將該子頁面打開后,僅有鍵盤可進行輸入操作,方便較為快捷,與用戶實際需求吻合。

4.2 集成電路測試結構文件上傳

針對集成電路測試管理系統而言,必須要將測試設備工作站所定義的測試結果文件輸入數據庫,最終才能構成數據分析報表。待晶圓測試完畢后,測試設備將構成晶圓測試結果的文件轉變成一個傳送信號,上傳到數據庫服務器,而服務器會依據文件發送信頭,最終接納測試結果文件。

針對測試管理系統為而言,為了確保其傳送速度,本文研究中實現了三個方面的優化處理:

(1)針對測試結果文件傳送而言,主要應用實時傳送原則,即傳送時機擇取為測試結果文件組成后,對以往分批次傳送方式進行了優化補充。從整體上來講,有助于預防文件過大而促使傳送速度滯后,對服務器正常運行具有一定的輔助作用;

(2)文件上傳后并未直接植入數據庫中,而是暫時存入原始數據暫存器中,有助于防止某些無效格式測試結果文件被上傳。譬如在測試中存在了人為中斷現象,而誘導某些測試數據最終轉變為冗余數據。經由原始數據暫存器剔除此類無效格式文件,能最大限度地確保數據庫文件的精準性。此外,經由原始數據暫存器對測試結果文件權限進行整合配置。譬如在存儲過程中可允許訪問統計結果,不允許訪問某些重要數據。從某種角度上來講,極大地提高了數據庫的安全性;

(3)針對測試管理系統開發而言,主要采用存儲過程進行統計,包括生產盤存月報、生產日報、周報、月報、季報、年報、設備異常報警率、生產良率表等。基于應用程序界面上,分開統計功能與查詢功能,應用統計功能對存儲過程進行調用,基于服務器端作用下對信息開展各類匯總作業,并錄入歷史存表中。而利用查詢功能自歷史表中對已計算數據進行調用,完善了系統性能,增強了查詢效率。

4.3 集成電路測試在線預警、測試數據查詢與分析

就集成電路測試在線預警功能模塊而言,主要因測試生產線工程師少,在測試過程中,無法及時發現出現的誤測或不良測試,為測試工程師及早發現問題提供了有力的幫助。而針對集成電路測試數據查詢而言,該模塊主要考慮到用戶對生產線實時數據具有查詢需求,涵蓋產品負責人、芯片產品、測試日期、測試站點等信息。同時,數據查詢模塊還可查詢各類良率分析報表,其中查詢功能與統計功能單獨使用,有助于用戶自主選擇,其查詢內容涵蓋測試平臺比較報表、良率分析年報、季報、月報、日報等。

5.結束語

綜上所述,本文主要以集成、高效、全方位、先進企業管理要求為出發點,進行集成電路測試管理系統開發設計,旨在提升集成電路企業管理水平,增強市場核心競爭力,對半導體測試行業中的企業生產管理系統具有至關重要的作用。在實際開發過程中,由于對現有測試生產線上出現的測試數據無法全面管理,故無法深入分析影響集成電路測試生產效率提高的因素,因此在前期做了大量設備與測試方法研究。在測試管理系統數據庫設計完成時,以前臺開發工具(Django)、后臺數據庫(MySQL)為導向,開發了與用戶操作需求的吻合的集成電路測試管理系統。在整體開發過程中,立足于數據庫并發控制、查詢優化等技術難題角度,確保了高效查詢速度與數據操作的完整性,最終集成電路測試管理系統實現了五個功能,包括測試數據錄入、測試結果文件上傳、產品測試在線預警、數據查詢與分析和測試運行相關報表生成,與企業信息化、自動化、精益化管理需求相一致,具有較大的應用前景。

參考文獻

[1]楊榮.面向模擬IC測試的高精度數字化儀的設計與實現[D].電子科技大學,2013.

[2]朱龍飛.混合集成電路測試系統上位機軟件設計[D].電子科技大學,2013.

[3]汪天偉.混合集成電路測試硬件電路測試板的設計[D].電子科技大學,2013.

[4]楊建軍.基于嵌入式技術的集成電路測試系統軟件設計[D].電子科技大學,2013.

[5]劉軍.漏電保護專用集成電路測試系統的設計與實現[D].電子科技大學,2013.

[6]竇艷杰.數字集成電路測試矢量輸入方法研究和軟件實現[D].電子科技大學,2012.

[7]周厚平.集成電路測試系統微小微電子參量校準技術研究[D].中國艦船研究院,2012.

[8]尹超平.基于VIIS-EM平臺的虛擬數字集成電路測試儀的研制[D].吉林大學,2013.

[9]盛諧輝.國家科技重大專項年度總結在京召開 于燮康獲得了“個人突出貢獻獎”長電科技、通富微電獲得了“應用工程優秀團隊獎”[J].半導體.光伏行業,2011(01):56-57.

[10]蔡瑞青.基于Ultra-FLEX測試系統的集成電路測試開發[J].電子與封裝,2013(08):20-21.

第5篇

關鍵詞:數字;集成電路;構成;系統;測試技術

高新技術的快速發展,帶來的是產品質量的提升和成本的降低。對于現階段的工作而言,測試的具體流程、測試的具體方法,都對產品的質量和成本產生了較大的影響。數字集成電路系統作為現階段的主流系統,其基本的構成涉及功能的實現,其測試技術的進步涉及產品的質量和生產效率。為此,在分析數字集成電路系統的過程中,需要在不同的模塊,投入相應的時間和精力,完成系統的階段性進步。在此,本文主要對數字集成電路系統的基本構成與測試技術展開討論。

1數字集成電路系統基本構成

數字集成電路系統在目前的應用是比較廣泛的,其在很多方面都具有較大的積極作用。隨著時間的推移,現有的數字集成電路系統,集合了過去的很多優點,在多方面均表現出了較大的積極作用。從構成來看,數字集成電路系統主要是將元器件以及連線,有效地集成于同一個半導體的芯片之上,從而完成的數字邏輯電路或者系統。在劃分數字集成電路系統的過程中,可根據數字集成電路中,包含的具體門電路、具體的器件數量,劃分為小規模的集成電路、中規模的集成電路、大規模的集成電路等。

數字集成電路系統在組成方面主要包括2個內容,分別為組合邏輯和寄存器(觸發器)。組合邏輯經過分析后,發現其是由基本門組成的一系列函數,在輸出的工作中,僅僅與當前的輸入具有密切的關聯。倘若表現為組合邏輯,那么在運行的過程中,就只能完成邏輯的運算。在時序電路方面,除了包含基本門之外,還包含存儲元件用例,保存過去的信息。因此,時序電路的穩態輸出,不僅僅與當前的輸入具有密切的關系,同時還與過去的輸入所形成的狀態具有比較密切的關系。在時序電路方面,其在有效完成邏輯運算的同時,還可以將具體的處理結果進行暫時的存儲,以此對下一次的運算提供便利。

2數字集成電路系統測試技術

對于數字集成電路系統而言,其在目前的發展中,除了基本構成不斷豐富外,測試技術也在很大程度上取得了提升。目前,數字集成電路系統的測試技術廣泛應用于各個領域,不僅獲得了較多的數據和資料,同時在多方面實現了數字系統本身的進步。

2.1功能測試

在數字集成電路系統的測試技術當中,功能測試是比較重要的組成部分,其在很多方面都具有較大的積極作用。從客觀的角度來分析,功能測試的實施,其目的在于驗證電路的設計和使用是否完成了預期的效果。功能測試在開展時,其基本過程如下:(1)從輸入端施加若干的激勵信號,也就是常說的測試圖形。(2)在操作當中,需要按照電路規定的具體頻率,有效地施加到被測試的器件當中,這一操作需要仔細進行,避免出現任何形式上的紕漏。(3)要根據兩者的相同情況、差異情況等,對具體的數據和信息進行分析,以此來更好地判定電路功能是否達到了正常的狀態。

測試圖形在應用過程中是檢驗器件功能的重要途徑,獲得了業內的高度認可。從理論上來分析,一個比較好的測試圖形,本身所具有的特點是非常突出的:(1)測試圖形必須具有較高的故障覆蓋率,這樣才能更好地測試不同類型的故障。(2)測試圖形必須具有較短的測試時間。以往的測試花費大量的精力和時間,得到的結果卻不精確。因此,針對測試圖形的測試時間,要求是比較嚴格的。(3)測試圖形必須針對被測器件的故障、工藝缺陷進行檢測,提高被測器件的功能測試準確度。

由此可見,在功能測試過程中,測試電路的具體質量,會與測試矢量的精度具有比較密切的關系。例如,組合電路測試生成算法,其主要包括窮舉法、代數法等等。可根據實際的需求,選擇合理的方法來完成。

2.2直流參數的測試

數字集成電路系統的測試技術還能夠針對較多的重要指標,完成相應的測試工作。直流參數的測試是目前比較關注的問題。從測試技術的角度來分析,直流測試是用來確定器件點參數的穩態,確保器件可以更加穩定的運行。從方法上來分析,直流參數的測試方法比較多樣化,目前常用的包括接觸測試、漏電電流測試、轉換電平測試等。

接觸測試在應用過程中,雖然操作比較簡單,但需要在細節上有所把握。例如,該測試在具體的應用當中,需要充分的保證測試的接口與器件可以正常的連接。同時,在測量輸入和輸出方面,應根據管腳保護二極管的具體壓降情況,觀察連接性是否達到了標準的要求。如果要求未滿足,則要重新連接。

漏電測試是一種比較特殊的測試方法,其在應用過程中表現出了很大的優異性。在實際的工作當中,漏電流的出現,主要是由于器件內部和輸入管腳之間出現了問題,多數情況下,二者的絕緣氧化膜在生產過程中,表現為特別薄的狀態,進而引起了類似短路的情況。最終,導致電流通過,形成漏電流。漏電測試的方法會針對該項參數的具體測試,以此來更好地對器件輸入、輸出的負載特性進行較好的分析,實現從源頭測試。

轉換電平測試在目前的應用中,隸屬于針對性較強的一類測試方法。轉換電平測試在應用當中,會通過反復的運行功能測試的方法,針對導致功能測試失效的臨界電壓值進行測試和分析,確定轉換電平。從技術上來分析,轉換電平測試的應用,在很多方面都充分反映了器件抗噪聲的能力水平,是一項非常重要的測試技術。

2.3交流參數的測試

數字集成電路系統在現階段的研究中,獲得了很多的積極成果,將成果廣泛應用,實現了測試技術的較大提升。交流參數的測試,是數字集成電路系統測試技術的重點表現,其在很多方面都是非常重要的一項指標。

從具體的測試層面來分析,交流參數的測試工作主要是測量器件晶體管轉換狀態時所表現出的時序關系。執行該項測試的目的在于,確保器件能夠在規定的時間內發生正常的狀態轉換。操作過程中,比較常用的交流測試方法、包括傳輸延時測試的方法、建立和保持時間測試的方法等。

3測試技術的應用

數字集成電路系統在基本構成獲得不斷的深化后,測試技術也獲得了較大的提升。二者互相輔助造成了良性循環,并且創造出了較大的價值。相對而言,測試技術在獲得了深化后,應在具體的應用上作出足夠的努力,僅僅在理論上進行研究,并不能創造太多的價值。我國目前對技術的研究是非常重視的,很多工作都達到了較為重要的階段。數字集成電路系統測試技術作為影響多領域發展的重點技術,必須得到廣泛的應用。

例如,現在使用的泰瑞達(Teradyne)公司生產的J750,HILEVEL生產的ETS770。這些都是非常先進的半導體自動測試系統。其中泰瑞達可為半導體電路提供測試解決方案,它擁有模擬、混合信號、存儲器及VLSI器件測試所有領域的測試設備。并且該機器是低成本高性能并行測試機,采用windows操作系統,人機界面友好、簡單;基于板卡的硬件架構,維護性好;配上MSO,基本能滿足SoC的測試需求,有著較高的測試性價比。而HILEVEL生產的ETS770的優點是器件可以通過測試小板很方便地與測試系統相連,并且可以實現對芯片進行快速的邏輯功能驗證,測試編程界面全為窗口式,快速簡捷,易于掌握。總之,每個測試系統都有各自的硬件配置和程序開發環境,需要測試工程師根據每個測試器件的邏輯結構和電特性制定合理的測試流程,最大限度地發揮每個測試系統的資源優勢。

由此可見,數字集成電路系統測試技術在應用層面,表現出了較大的積極作用,總體上創造出的價值是非常值得肯定的。今后,應該在多方面針對數字集成電路系統的基本構成,針對測試技術,開展深入的研究。一方面要不斷地健全數字集成電路系統的基本組成,豐富內容;另7y面需健全測試技術體系,從多個方面來提高技術的功能性和可操作性。

第6篇

關鍵詞:ISO 26262;汽車電子;測試

DOI:10.3969/j.issn.1005-5517.2013.4.005

ISO26262標準概述

功能安全標準(ISO26262)是從電子、電氣及可編程器件功能安全基本標準IEC61508派生出來的,主要定位在汽車行業定的電氣器件、電子設備、可編程電子器件等專門用于汽車領域的部件,旨在提高汽車電子、電氣產品功能安全的國際標準。

ISO26262從2005年11月起正式開始制定,經歷了大約6年左右的時間,已于2011年11月正式頒布,成為國際標準。中國也正在積極進行相應國標的制定。

ISO26262主要內容包括:

·提供了汽車生命周期(管理,研發,生產,運行,服務,拆解)和生命周期中必要的改裝活動。

·提供了決定風險等級的具體風險評估方法(汽車安全綜合等級,ASILs)。

·使用ASILs方法來確定獲得可接受的殘余風險的必要安全要求。

·提供了確保獲得足夠的和可接受的安全等級的有效性和確定性措施。

功能安全受研發過程(包括具體要求,設計,執行,整合,驗證,有效性和配置),生產過程和服務流程以及管理流程的影響。

安全事件總是和通常的功能和質量相關的研發活動及產品伴隨在一起。ISO26262強調了研發活動和產品的安全相關方面。

符合性要求

1)如果要宣稱符合ISO26262,那必須是符合其每個要求,除非有如下情況之一:

·根據ISO26262-2中,對不適用的要求進行安全行為的裁剪:

·針對不符合項,提出其說明理由,并對理由根據ISO26262-2進行評估:

2)所有安全行為的輸出物都在ISO26262中有明確的規定。

3)下文中出現的列舉各測試方法的表中,有不同的序號表示方法:

·連續的序號,比如1.2.3:所有的方法應被用于對應的ASIL等級,如果出現所列表中之外的方法背用于測試,則需要進行說明。

·可選的序號,比如1a,1b,1c:可以選擇某個或多個方法進行測試,并優先考慮更高推薦指數的方法。如果多個方法被組合選擇用于測試,則需要進行說明。

4)針對ASIL的各級,表中的每個方法都有對應推薦指數:

·“++”:最高的推薦指數

·“+”:建議使用

·“0”:不建議使用或不需使用

測試概述

ISO 26262-8中的第9節描述了“Verification”的目標、要求和建議、工作輸出等。Verification是用于確保實現與需求的一致性,在安全生命周期的幾個階段中都會用到。包括概念階段、產品開發階段、生成和運營階段。本文主要描述在產品開發階段中的測試環節中,需要用到的各種測試要求和建議。

測試計劃

1)在測試執行前,都需要建立測試計劃,其主要包括幾部分:

·測試范圍:用于測試的產品內容:

·測試方法:用于測試的各種方法:

·測試標準:測試通過或失敗的標準:

·測試環境:如果需要用到各種測試環境,比如仿真環境等,需要進行說明:

·測試工具:用到的各種測試工具:

·出現異常后的對策:

·回歸策略:在測試對象發生變更時,指定其如何進行回歸測試,比如全部回歸、部分回歸、和其他測試案例一起回歸等。

2)測試計劃的制定還需考慮到以下幾個方面:

·測試方法的完整性:

·測試對象的復雜度:

·測試經驗:

·測試技術的成熟性和風險。

測試規格

1)測試規格需要選擇和指定用于測試的方法,并包括測試案例、測試數據和測試對象。

2)每個測試案例需要包括:

·序號:唯一的ID

·測試對象的版本號

·測試對象的條件和配置:針對測試對象的不同配置,需要選擇合理的測試案例進行測試

·測試環境

·輸入值和順序

·期望行為:報刊輸出值、輸出范圍、功能表現等

3)測試案例需要根據測試方法來分類。針對每個測試方法,除了測試案例外,還需考慮以下幾方面:

·測試環境:

·相關性:

·測試資源。

測試執行和測試報告

4)按照上述章節中制定的測試計劃和測試規格,進行測試的執行。

5)針對測試結果,其測試報告需包括以下幾個方面:

·測試對象的ID:

·測試計劃和測試規格的引用:

·測試環境、測試工具、標定數據:

·測試結果和期望值的符合度:

·測試通過或失敗的結論,如果失敗,還需要指明失敗原因和修改建議:

·針對沒有執行的測試案例,說明原因。

ISO26262中的測試階段

ISO26262中涉及到測試的階段共包括“硬件集成和測試”、“軟件集成和測試”、“產品集成和測試”這三部分。下面章節分別介紹這三部分的要求和建議。

硬件集成和測試

ISO26262中“Part 5:ProductDevelopment:HardwareLevel”針對產品開發的硬件部分提出了專門的集成和測試要求和建議。

1 硬件集成和測試需要按照安全計劃和驗證要求來按計劃進行:

2 硬件集成和測試需要按照產品集成和測試計劃來進行:

3 針對變更,需要按照標準規定中的變更管理來對測試策略進行影響分析:

4 測試的設備可以按照國際標準(比如ISO17025)或公司標準來進行標定:

5 硬件集成測試的測試案例需要按照表1的方法進行設計:

6 針對硬件安全需求,硬件集成和測試需要對其安全機制實現的完整性和正確性進行驗證,其方法如表2所不。

7 硬件集成和測試需要按照表3的方法進行外部壓力環境下的魯棒性測試。

軟件集成和測試

軟件單元測試

軟件單元測試是在軟件開發過程中要進行的最低級別的測試活動,軟件的獨立單元將在與程序的其他部分相隔離的情況下進行測試。ISO26262中規定了其相對應的要求和建議:

1 軟件單元測試需按照“ISO26262-8節9中”的驗證要求來有計劃的定義和執行。軟件單元測試的對象是具體的軟件實現單元,在基于模型的軟件開發過程中,軟件單元測試的對象是其單元模型。

2 軟件單元測試需要按照表4中列的方法進行,以完成以下目標:

·檢查是否符合軟件單元設計的具體要求:

·檢查是否符合軟硬件接口要求:

·檢查功能是否正確實現:

·檢查是否有異常功能:

·檢查軟件實現的魯棒性,比如錯誤處理效率等:

·檢查功能所需資源的完整性。

3 軟件單元測試中的測試案例需要按照下表5中的方法進行分析設計。

4 軟件單元測試中,對于需求的覆蓋度、代碼的覆蓋度都需要進行衡量,具體方法如表6所示。如果覆蓋度不夠,還需要增加其他測試案例。

·代碼的覆蓋度都可以借助一些軟件工具來實現:

·如果是基于模型的開發,其軟件單元測試需要利用類似的模型的結構化覆蓋指標來衡量:

·如果通過代碼的打樁來進行測試覆蓋度的衡量,必須保證打樁的代碼和正常的代碼的執行功能是一致的:

·對于覆蓋度衡量目標,都需要給出一個合理理由來表示其不同的級別,對于無法覆蓋的代碼,可以通過檢查等其他方法來進行驗證。

5 軟件單元測試需要盡可能的在真實的目標環境上執行,如果利用其他環境,則需要評估其與真實環境的差異、源代碼和目標代碼的差異,分析設計測試案例,以便在接下來的測試階段中得到執行。

·測試環境的不同,會導致源代碼或目標代碼的不一致,比如不同處理器的位數不一樣,會導致編譯后的目標代碼不一致。

·如果能利用目標環境中的相同處理器來運行軟件單元測試案例,那是最有效的,但如果不行,則可以用處理器模擬器來代替,否則軟件單元測試只能在開發系統中進行測試。

·軟件單元測試可以在不同的環境中執行,比如模型在環測試(MIL)、軟件在環測試(SIL)、處理器在環測試(PIL)、硬件在環測試(HIL)等。

·在基于模型的開發系統中,軟件單元測試可以在模型級別進行,但模型與代碼的執行比較測試必須要做,以保證模型與自動生成的代碼的結果一致性。

軟件集成和測試

軟件集成和測試主要對實現的各軟件模塊進行集成,并驗證其嵌入式軟件實現是否符合軟件架構設計。該階段的要求和建議如下:

1 軟件集成計劃應該描述層次化的集成單個軟件單元進軟件組件中,直到嵌入式軟件完全集成,并且應該考慮如下:

·軟件集成功能的相互關系:

·軟件集成和軟硬件集成的相互關系。

注意:對于基于模型的開發,可以先集成各模型,然后對集成好的模型進行自動代碼生成以完成整體軟件的集成。

2 軟件集成測試根據ISO26262-8:2011,第9節計劃,定義并且執行。軟件集成測試的測試對象是軟件組件。對于基于模型的開發,測試對象可以是和軟件組件相關的模型。

3 軟件集成測試需要按照表7的方法進行,以完成以下目標:

·檢查集成的軟件是否和軟件架構設計一致:

·檢查集成的軟件是否滿足軟硬件接口規格:

·驗證功能的正確性:

·檢查其魯棒性,比如錯誤檢測、錯誤處理機制的有效性:

·檢查是否有足夠的資源來支持。

4 測試案例需要按照表8中的方法進行分析設計。

5 對于軟件架構級別的需求測試覆蓋度,可以用來衡量測試的完整性,以及用于證明沒有設計之外的功能實現。如果有需要,可以增加新的測試案例,或者提供一個合理的理由說明。

6 為了評估測試案例的完整性,同時確保沒有多余的功能,根據表9列出的指標需要衡量出其結構覆蓋率。如果覆蓋率不夠高,要么需要添加額外的測試案例,或者提供一個合理的理由說明。例如,結構覆蓋率的分析可以用于發現測試案例的不足、無用代碼、無效代碼或者多余功能等。

·結構覆蓋率可以利用工具計算出來。

·如果是基于模型的開發,結構覆蓋率可以通過模型級別的模型結構覆蓋率來統一計算。

7 作為產品的一部分,嵌入式軟件需要被驗證其包含設計的所有功能。如果嵌入式軟件包含了設計之外的功能(比如用于調試的代碼),則這些功能需要被驗證是不影響軟件的安全需求的。如果這些設計之外的功能在真實產品中保證不會被激活執行,那也是符合這個要求的:否則刪除這些功能,也需要按照需求變更流程來統一處理。

8 軟件集成測試需要盡可能地在真實環境中運行,如果不行,則需要評估測試環境與真實環境的差異性,并針對這些差異,在后續的階段的真實環境的測試中設計專門的案例來執行。

·測試環境的不同,會導致源代碼或目標代碼的不一致,比如不同處理器的位數不一樣,會導致編譯后的目標代碼不一致。

·針對各種測試,需要建立合適的測試環境。比如目標處理器的測試環境、仿真處理器的測試環境、開發測試環境等。

·軟件集成測試可以利用模型在環測試(MIL)、軟件在環測試(SIL)、處理器在環測試(PIL)、硬件在環測試(HIL)等測試手段進行測試。

軟件安全需求驗證

本階段的目標是驗證嵌入式軟件符合軟件安全需求,其所規定的要求和建議如下:

1 軟件安全需求的驗證需要制定計劃,定義再執行。

2 為了驗證嵌入式軟件實現了軟件安全需求,表10列了所需的測試環境。注意:已有的測試案例,例如在軟件集成測試階段使用的可以重用。

3 對于軟件安全需求實現的測試需要在目標硬件平臺上完成。

4 軟件安全需求驗證的結果需要考慮下面這些因素來評估:

·和預期結果一致:

·軟件安全需求的覆蓋率:

第7篇

【關鍵詞】 Android 持續集成 自動化測試

隨著近年的移動互聯網發展,Android智能終端操作系統,逐漸成長為唯一能與iOS系統抗衡的對手,而其在用戶基數上還要超過iOS,因此也帶來了Android平臺的應用開發熱潮,其相關技術也成為熱門的發展方向。

作為Android平臺的軟件開發項目,有著傳統PC軟件開發項目的一些共性,又有身為移動端應用的自身特點。

一、應用軟件開發過程與自動化持續集成的關系

移動互聯網中的移動應用開發項目越來越多,而所有的項目都要經歷從產品需求、軟件開發到交付用戶使用這一工作流程,如圖1所示。從工作流程來看,軟件測試在移動應用軟件開發項目工作流程中的作用是不可或缺的,移動應用軟件開發項目交付用戶使用過程中必須經歷軟件系統測試。

我們實驗項目中的持續集成由監控的SVN代碼主干或分支的CI動作觸發,主要解決軟件開發到軟件系統測試之間的效率問題,追求的是開發人員和測試人員間近乎零時間開銷的交付,從而使軟件項目中最重要的兩個角色都能更專注自己的工作,從繁復的版本交付中出解放出來。

實現持續集成需要做的工作如下:1)統一代碼配置管理。本文的持續集成實踐,項目代碼管理使用的是Subversion開源版本控制系統。2)將開發代碼轉變為可用于測試的APP安裝包,主要包括開發Python腳本、編譯打包、簽名、構建安裝包這幾個重要環節。3)使用Android 提供的monkeyrunner 實現APP的自動化測試。4)使用Hudson 進行持續集成工作的管理。

二、持續集成的實現

2.1 Subversion的部署

SVN選擇Apache HTTP 服務器。規劃的SVN項目代碼的目錄結構如圖2所示。

其中:trunk分支為項目持續集成分支;tags 分支為項目版本的代碼里程碑分支;branches分支為各種驗證性及臨時代碼分支。

2.2 APP for Android 安裝包的構建

首先配置Android開發環境,選取適當的SDK版本;再.用Python腳本實現:1)為項目源代碼建立android工程目錄;2)用Ant編譯工程目錄,根據需要產生Debug 或Release 安裝包;3)為Release安裝包簽名;4)對最后的安裝包進行驗證,來執行自動化整合。

三、持續集成工具---Hudson的部署

先在Ubuntu安裝Hudson,然后在Hudson中根據項目需求建立工程:1)實現對項目SVN版本庫的監控,設置為開發人員代碼提交觸發,使每一次的功能提交,都會有對應的可狀態安裝包交付測試;2)在建立的工程項目中根據項目需求,調用自動化腳本組,實現不同的持續集成需求。

四、實踐結果

上述持續集成方案應用前后同工作量時間開銷對比如圖3所示。應用前使用手動操作集成,含有開發人員與測試人員溝通耗時、手動輸入命令耗時、編寫郵件耗時、記錄及存儲測試包耗時等碎片時間;應用后無碎片時間。實踐結果表明,該方法能夠有效提升測試工作效率,大幅度縮減測試時間,減少測試工作的重復勞動,更重要的是把開發人員從項目編譯到送交測試的活動中解放出來,使開發和測試人員更好的專注本職工作,提高了團隊的研發效率。

參 考 文 獻

[1] 宋春雨.Android平臺自動化測試的研究與實踐[D.北京:北京郵電大學,2012.

第8篇

測試測量儀器被廣泛應用于電子設備行業,其用戶也涵蓋了包括消費電子、汽車、國防、教育、政府、半島體制造、通信等諸多行業。目前全球測試測量市場可分為三個領域。即:通信測量市場、自動測試設備/半導體和通用測試設備市場。

通信測量是測試測量市場的重要組成部分,它又可細分為有線通信測試和無線通信測試。2005年該領域已有逾50億美元的市場收入,約占整個測試測量市場的37%。其中有線通信測試市場收入約30億美元,而無線通信則有26億美元的收入。近年來,3G標準在世界范圍內的推廣,特別是中國3G標準的推出及商業測試在中國的試水,為通信測試市場的增長提供了強勁而持久的拉力。賽迪顧問預測,未來3年內,通信測試市場領域將以5%的復合增長率增長。其中有線通信測試市場年均復合增長達到3%,而無線通信測試市場隨著3G標準的推廣受到多媒體通訊、網絡游戲、移動網絡、藍牙等多元化產品的帶動,其復合增長率預計達到8%。

自動測試(ATE)/半導體市場是一周期性領域。它會隨著半導體行業的變化而經歷周期性的市場好轉與惡化。ATE/半導體市場可細分為以下幾種類型:模擬/線性器件測試一其中,模擬測試用來特性化測試集成電路的模擬功能。線性器件測試則是用于測試線性集成電路。數字/邏輯測試一共享資源測試,每個管腳有獨立測試資源的測試系統。用來特性化測試集成電路的邏輯功能。存儲器測試-DRAM測試,閃存測試。這些類型的自動化測試設備主要用于驗證內存芯片。混合信號測試~這種類型的系統資源用來測試集成電路的模擬及數字功能。RF/微波測試一主要用于射頻集成電路的測試。SoC測試―是一種昂貴的混合信號集成電路測試系統,用來測試超大規模集成電路(VLSI)芯片,而VLSI芯片的集成度明顯高于傳統的混合信號芯片。

在自動測試/半導體領域,主要有以下廠商:Advantest(愛德萬)、Teradyne(泰瑞達)、Verigy、Credence(科利登)、LTX、Eagle、Youkogawa(橫河)。其中愛德萬是自動測試/半導體領域的領先者,主要做存儲測試。而泰瑞達則在SoC領域遙遙領先。

通用測試是一個相對廣泛的測試測量應用領域。其產品主要包括有示波器、頻譜分析儀、信號發生器、邏輯分析儀、任意波形發生器、萬用表、網絡分析儀等。在通用測試領域也不乏世界級的測試測量廠商。賽迪顧問研究數據顯示,2006年通用測試儀器市場TOP10廠商如表1所示。

從表1中可以看出,安捷倫占據了該領域的龍頭地位,而其它10強廠商也分別在各細分市場領域牢牢把握領先優勢。如泰克在示波器市場占據第一,而愛德萬則在存儲器試測市場具有傳統的優勢。從國別來看,通用測試市場主要被美國、日本、德國三國長期占據,而美國又在該領域占據了絕對的主導地位。

另外,如圖1所示,TOP10廠商占據了通用測試領域81%的市場份額。可見,在通用測試領域,市場集中度相對較高。這主要是由于該領域對產品研發技術要求較高,需要大量的人力、財力資源的投入,同時也受到技術持續創新能力,知識累積的限制,形成較高的行業進入壁壘。

圖2是通用測試市場按產品銷售份額的分布情況,從圖中可以看出,示波器、頻譜分析儀和信號發生器是通用測試儀器領域的主力產品,共占據了三分之二的市場份額。而示波器更是該領域的拳頭產品,僅此一類就占據了三分之一的份額。

賽迪顧問認為,受測試測量儀器數字化、智能化發展趨勢的影響,及近年來數字電視、消費電子等市場迅猛發展所起到的帶動作用,未來3年,通用測試市場將以4.6~5.3%的增長率穩步增長。

第9篇

艾科半導體的主要業務是集成電路測試服務及射頻測試設備的研發、生產及銷售業務。以2015年9月30日為評估基準日,艾科半導體100%股權評估值為10.80億元,增值率為181.16%。大港股份表示,本次交易完成后,上市公司將迅速切入集成電路測試服務領域,該業務將成為上市公司主要的營業收入和利潤來源之一。

不過,《證券市場周刊》記者發現,有兩家公司不僅是艾科半導體的前五大客戶,還多次出現在其前五大供應商名單中。而且,雙方彼此披露的采銷數據竟有數百萬元出入,艾科半導體銷售數據的真實性存疑。

2015年,A股同類上市公司業績多數出現不同程度下滑,艾科半導體業績承諾能否兌現有待時間檢驗。

一飾多角 采銷數據“掐架”

根據草案,2013年、2014年、2015年1-9月,艾科半導體分別向上海行森電子科技有限公司(下稱“行森電子”)采購商品1691萬元、1569萬元、928萬元,占比分別為26.21%、7.28%、7.67%;另外,2013年行森電子還為艾科半導體貢獻銷售收入1085萬元,占比為15.37%。

對此,艾科半導體解釋稱:2013年,艾科半導體向行森電子銷售一批貿易類測試設備,當時艾科半導體希望競標無錫實訓基地的設備采購訂單,但因不具備政府招投標的資質,因此與行森電子合作,由行森電子作為主體去投標,艾科半導體負責設備的采購;行森電子主要從事測試設備業務,是國際知名測試設備制造商泰瑞達和致茂在中國內地的商,具備參與政府采購招投標資質,為艾科半導體長期合作的設備供應商。

行森電子在工商信息系統中披露了2013年、2014年年報:2013年行森電子資產總額為2300萬元,所有者權益合計為96萬元,營業收入、凈利潤均為零;2014年資產總額為556萬元,所有者權益合計為94萬元,營業收入、凈利潤分別為30萬元、-6萬元。

由此可見,2013年、2014年行森電子披露的收入與艾科半導體對其的采購數據存在上千萬元的差異。

無獨有偶,北京信諾達泰斯特科技有限公司(下稱“信諾達”)及其控股子公司也分別出現在艾科半導體的前五大客戶、供應商名單中,但艾科半導體在草案中對兩者關系只字未提。此外,即便考慮增值稅因素,兩者公布的采銷數據也有數百萬元出入。

收購草案顯示,2013年艾科半導體向信諾達采購了1400萬元商品。Wind數據顯示,信達諾與艾科半導體業務相近,主要從事集成電路測試系統的研發設備研發、生產與銷售,為新三板掛牌公司。信諾達2013年年報顯示,2013年信諾達向艾科半導體銷售收入僅為838萬元,較艾科半導體披露的“1400萬元”少562萬元。

另外,2015年1-9月,艾科半導體第二大客戶杭州芯測科技有限公司(下稱“杭州芯測”)為信諾達持股95%的控股子公司。2015年1-9月,艾科半導體向杭州芯測的銷售(產品)金額為2376萬元,占比為15.07%。

業績承諾能否完成有待考證

不到三個月的時間,大港股份的業績發生驟變。

大港股份在1月15日2015年度業績預告修正公告,預計2015年“歸屬于上市公司股東的凈利潤”將虧損1500萬元-2000萬元;而其在2015年10月28日披露的三季報中曾預計“2015年度歸屬于上市公司股東的凈利潤變動區間為1926萬元-3082萬元,較上年同期下降20%-50%”。

而此次交易對手方王剛、艾柯賽爾承諾,艾科半導體2015-2017年實現的經審計扣非后凈利潤分別為6500萬元、8450萬元和10450萬元。按此承若,此次重組一旦完成,大港股份將輕松扭虧為盈。

大港股份表示,根據對國內集成電路行業市場發展的預測,在收購艾科半導體后,公司擬將集成電路測試業務作為主導產業進一步加大投資。因此,公司將使用6.9億元本次募集的配套資金投資于艾科半導體的測試產能擴充項目。

據了解,艾科半導體“測試產能擴充項目”包括“鎮江市集成電路產業園建設項目”和“上海集成電路測試研發中心項目”,艾科半導體預計“鎮江市集成電路產業園建設項目”建成以后第二年將新增銷售收入10754萬元,實現凈利潤4605萬元;“上海集成電路測試研發中心項目”建成后預計1年達產,正式建成以后第二年的集成電路測試相關業務將會新增12945萬元銷售收入,凈利潤將達到5543萬元。

倘若按照艾科半導體的業績承諾計算增長率,2015-2017年,艾科半導體扣非后凈利潤將分別同比增長43.81%、30%、23.67%。艾科半導體表示,集成電路行業預計還將繼續保持持續增長的態勢,其測試服務廠商也將面臨良好的發展機遇,市場前景廣闊。

事實果真如此嗎?

《證券市場周刊》記者發現,晶方科技(603005.SH)、通富微電(002156.SZ)等同類上市公司2015年業績卻出現不同程度的大幅下滑。

其中,晶方科技主營業務為集成電路的封裝測試業務,是中國內地首家、全球第二大能為影像傳感芯片提供晶圓級芯片尺寸封裝(WLCSP)量產服務的專業封測服務商。晶方科技在1月15日的2015年度業績預減公告稱,經公司財務部門初步測算,預計2015年度實現歸屬于上市公司股東的凈利潤為10700萬-11700萬元,與上年同期(法定披露數據)相比減少約40%-45%。晶方科技解釋盈利預減的原因有:一是2015年全球PC、智能手機等市場增速放緩,行業整體需求疲軟,去庫存壓力較大,行業競爭日趨激烈,導致公司的利潤規模隨之下降;二是隨著公司新產品、新技術的投入,公司資產規模不斷擴大,機器設備陸續轉固,使得折舊等運營費用增加等等。

通富微電也是專業從事集成電路的封裝和測試,擁有年封裝15億塊集成電路、測試6億塊集成電路的生產能力,是中國國內目前規模最大、產品品種最多的集成電路封裝測試企業之一;主要客戶為世界半導體知名企業,摩托羅拉、西門子、東芝等世界排名前二十位的半導體企業有一半以上是公司客戶。此外,公司是中國電子信息百強企業,中國十大集成電路封裝測試企業,中國進出口額最大企業500強。

Wind數據顯示,通富微電營業收入增速已經連續六個季度環比下滑,營業收入增速已經由2014年第一季度的21.47%降至2015年第三季度的3.02%。尤其是,2015年前三季度通富微電營業利潤、歸屬于母公司股東的凈利潤(扣非后)分別同比下降了68.94%、63.50%。

在“經營風險”中,艾科半導體也提到,隨著近年來集成電路行業的快速發展,國內集成電路的設計商、制造商紛紛擴產,集成電路測試需求也不斷擴大,吸引了更多新的集成電路測試商進入該行業,市場競爭日趨激烈。

艾科半導體還表示,公司主要業務是向集成電路設計與制造企業提供測試服務,屬于集成電路測試企業,位于集成電路生產與應用的中間環節,與集成電路生產及應用環節緊密相連……如果集成電路應用行業或集成電路設計與制造行業的發展出現較大波動,將對集成電路測試行業帶來重大影響。因此,艾科半導體所處行業受半導體行業的景氣狀況影響較大。

中芯國際(0981.HK)是集成電路制造企業,是世界領先的集成電路晶圓代工企業之一,也是中國內地規模最大、技術最先進的集成電路晶圓代工企業。2012-2014年,中芯國際的營業收入分別為17.08億元、20.73億元、19.70億元,分別同比增長了28.10%、21.39%、

-4.95%。

第10篇

軟件測試即在規定的條件下對程序進行操作,以發現程序錯誤,衡量軟件質量,并對其是否能滿足設計要求進行評估的過程。

軟件測試分為:

單元測試:是對軟件組成單元進行測試,其目的是檢驗軟件基本組成單位的正確性,測試的對象是軟件設計的最小單位:模塊。

集成測試:將程序模塊采用適當的集成策略組裝起來,對系統的接口及集成后的功能進行正確性檢測的測試工作。其主要目的是檢查軟件單位之間的接口是否正確。

系統測試:主要包括功能測試、界面測試、可靠性測試、易用性測試、性能測試。 功能測試主要針對包括功能可用性、功能實現程度方面測試。

回歸測試:指在軟件維護階段,為了檢測代碼修改而引入的錯誤所進行的測試活動。

(來源:文章屋網 )

第11篇

J2EE技術提供了一個基于組件的、多層分布式計算平臺。在J2EE的應用系統的開發過程中,由于使用了中間件,開發人員可以把工作重點放在系統功能的建模、設計與實現上。此外,J2EE技術結合了軟件設計中的最佳實踐(best practices),如以架構為中心的軟件體系結構、基于組件的架構等等。這一切都對現有的軟件工程過程提出了新的挑戰。所以,裁剪RUP并且使其在J2EE項目中起更大的作用是非常有意義的。

本文講述了如何把RUP應用到小型項目團隊開發J2EE應用系統的過程中,并且結合J2EE技術的特點從項目管理、架構設計、開發和測試等方面重點闡明了對RUP的裁剪。

圖1 一個復雜的BUS的實現方法

項目管理

在RUP中,角色定義了個人或團隊的行為和職責,包括分析設計人員、編程人員、測試人員、項目管理人員和輔助人員,一個人可以同時擔當幾個角色.一個角色也可以由幾個人來共同承擔。針對J2EE系統的開發和維護,J2EE規范中也定義不同的角色,包括J2EE產品供應商、應用組件供應商、人員、系統管理員等等。

在實際的項目運行中.要根據軟件開發組織的實際情況來確定角色的定義和分配。項目經理是必不可少的一個角色,通常是一個人來擔任。項目經理代表整個項目與軟件客戶進行溝通和協商,并且制定軟件開發計劃等等。架構師也是一個必須的角色,通常由一名經驗豐富的軟件開發人員來擔任。

在項目運行的前期,架構師負責設計軟件架構和原型系統。在項目運行后期,架構師可以參與到具體的軟件開發中。SQA同樣是必不可少的,通常是一名經驗豐富的軟件開發人員來擔任。SQA在整個項目的運行過程中負責監督和改進軟件質量,包括制定系統測試方案、用戶接受測試方案等等。開發人員是組成團隊的主要力量,負責系統的設計、開發和測試。如果可能的話,團隊中必須設立業務分析員的角色,負責商業建模等,通常由有特定行業經驗的人來擔任。

迭代開發計劃

RUP的精髓之一迭代式的開發,它是基于Spiral模型翻的。整個軟件開發周期由很多個迭代組成,其中初始迭代最為重要。其它每個迭代都為了實現軟件的部分功能。在完成所有迭代后,軟件的所有功能都已實現并且通過測試。

圖2 基于Tier層的J2EE應用系統架構

初始迭代又叫作0迭代,它開始于項目的啟動。結束于RUP初始階段(inception phase)的完成。初始迭代在整個軟件項目中起著十分重要的作用,這是因為在這個迭代中,項目團隊和客戶必須對軟件項目的范圍、成本、進度和應用系統的邊界以及功能等達成一致的理解。

在初始迭代中,最重要的活動有明確項目的范圍、商業需求和提出至少一個可用的軟件架構方案。在明確項目范圍的過程中,項目經理就項目的邊界、產品、限制條件等與軟件客戶進行協商,從而達成一致認識。同時,在理解客戶需求的基礎上,項目經理或者業務分析員以需求說明書和功能說明書的形式把客戶的需求記錄下來。并且和客戶達成一致理解。在此基礎上,架構師提供至少一個合適的軟件架構方案,并且完成原型系統。原型系統的目的不但是為了驗證技術上的可行性,而且是為了給客戶一個感性的認識,更好地完善對需求的理解。

需求說明書從客戶的角度簡要地描述了系統要具備的功能,它包含了很多商業用例。通常情況下,需求說明書還不能夠全面地描述整個應用系統,所以軟件開發組織還要從不同角度來描述系統的功能和特征,這就是功能說明書。功能說明書中包含了很多系統用例。功能說明書和需求說明書必須征求客戶的意見,直到客戶滿意為止。

圖3 基于Layer的J2EE應用系統架構

迭代計劃是項目計劃的一部分,指如何把要實現的系統分解成更小的子系統和如何在不同迭代中(除初始迭代之外)劃分子系統,從而使每個迭代的目標明確,不同迭代之間的依賴關系達到最低。通常情況下,從邏輯上看,應用系統可以劃分成多個BUC,而每個BUC又可以進一步劃分成SUC;因此,可以從BUC的角度出發,根據相互之間的依賴程度來進行劃分,把依賴程度低的BUC劃分到不同的迭代中,從而確定每一個迭代的范圍。一個復雜的BUC可以把它分解成獨立的幾個小BUC在幾個迭代中來實現。(如圖1所示)

一個應用系統也是由很多組件組成的。一個或者幾個組件組合起來可以實現一個SUC或者一個BUC的要求。在設計迭代計劃的時候,要考慮到組件之間可能存在的約束關系。基于J2EE的應用系統是基于組件架構的,因此,最小化迭代之間的依賴是一個最重要的衡量標準。

采用這種迭代辦法后,每個迭代的范圍限制在一個或者幾個相互獨立的BUC中。這樣做的好處在于降低需求變化帶來的風險。

圖4 BUS的組成結構

風險管理

采用迭代式開發的一個很重要的原因是,項目的風險能夠在早期的幾個迭代中暴露出來。風險有兩個基本的屬性,一個是它發生的概率,還有一個是風險發生后對項目的影響。風險管理的目的是為了盡量降低風險發生時對項目的影響。

在風險管理中,首先要識別項目中存在的風險。其次根據風險發生的概率和風險發生后對項目的影響來分析存在的風險。通常采用量化風險的辦法。給概率和影響分別賦予一定的數值,經過分析,把概率的數值和影響的數值相乘后的結果風險量化后的值。接著,對于量化后值比較高的風險制定相應的風險規避計劃。在項目運行過程中,要不斷地監督風險的變化。

架構設計

RUP采用基于組件的軟件架構和以架構為中心的開發方式。J2EE技術強調基于組件的軟件架構,能夠很好地體現RUP的架構思想。根據3D方法可以把一個J2EE應用系統的架構從三維進行分析,分別是Tier、Layer和Systematic Quality。在設計系統架構的時候,可以從這三個角度考慮。

Tier

從Tier層的角度進行考慮,一個J2EE應用系統的架構可以分為以下幾個部分:客戶端層、表示層、業務邏輯層、集成層、資源層,如圖2所示。每層都是按系統中業務邏輯而劃分的,它具有唯一的職責。每層與相鄰層都是松散耦合的。

圖5 應用實例

在實現的時候,需要結合項目的具體情況而定。基于MVC設計模式的J2EE Web應用系統中,客戶一般訪問JSP。然后由Control層進行處理:如果需要進行復雜的業務邏輯處理并且已經有后臺實現,業務邏輯使用Facade模式進行封裝,形成統一的接口,業務邏輯層實現復雜的事務處理;如果需要訪問資源層,再經過DAO層訪問資源。

Layer

從Layer的角度進行考慮,一個J2EE應用系統的架構可以分為幾個部分:最下層為操作系統、Java虛擬機和網絡,它們負責系統的底層操作和網絡數據的傳輸;之上是J2EE服務層,一般由J2EE服務器(如WebSphere,WebLogic等)提供各種基礎服務,如事務的管理(JTS)、命名目錄服務(JNDI)、負載均衡(Load Balancing)、容錯(failover)、安全(security)等;其次是通用業務層,它一般完成與具體業務無關的基本操作,由通用的組件來實現,如數據庫處理組件、系統錯誤處理組件、字符處理和數值處理組件、日志(10g)處理、數據轉化和編碼維護等;最上層才是具體業務邏輯模塊,它完成具體的業務邏輯。(如圖3所示)

在實現的時候.底層一般是不需開發人員關心的操作系統和網絡環境,并且不同J2EE服務器廠商都提供了相應J2EE服務層, 開發人員需要關心上面兩層的實現。如果是J2EEWeb應用體系,應用服務層一般會使用Struts框架。log服務一般選擇log4j等。最上層才是具體業務模塊。

Systematic Quality

這是指在軟件架構中通過一定的辦法或者使用一定的工具來達到系統要求的QoS,一般指可擴展性、可移植性、可維護性、安全等等,而這些恰恰是J2EE架構本身所帶來的好處。

實現和測試

實現是軟件開發人員編寫代碼來完成每一個組件。測試是用來保證軟件質量的重要手段。采用RUP的軟件工程過程后,整個項目被劃分成不同的迭代。每個迭代(除了初始迭代)的范圍是一個或者多個獨立的BUC, 目標是編寫代碼實現BUC并且保證軟件的質量。

在實現和測試的時候,集成(integration)是很重要的。這是因為整個軟件開發過程分成多個迭代來完成,每個迭代(除初始迭代外)都是為了實現應用系統的一個部分。對于相鄰的兩個迭代。后者是在前者的基礎上進行開發的,是實現功能上的一個增量。因此,相鄰迭代之間需要功能上的集成。此外,每一個迭代都是由BUC組成的。從邏輯上來看,一個BUC是由一個或者多個SUC組成的。從實現上來看,每個SUC是由一個或者多個組件(component)組成的。因此,每一個迭代中都需要組件之間的集成,如圖4所示。

根據集成程度的不同,可以劃分幾個不同的開發集成和測試:

首先是SUC集成和單元測試。這個是粒度最小的集成,它把幾個不同的組件集成起來,實現同一個SUC。例如,SUC1是通過集成C1和C2來實現的。同時,在集成完成后,進行相應的單元測試。

其次是BUC集成和集成測試。BUC集成是把幾個相關的組件集成起來,來實現它的功能。圖4中BUC的實現需要集成4個組件。同時,在集成完成后進行相應的集成測試。

再次是迭代內集成和系統測試。迭代內集成從功能上來看,就是把這個迭代包含的所有BUC集成起來;從代碼上看,是把所有和BUC相關的組件集成起來。同時,在集成完成后進行系統測試。系統測試分兩步,首先是從功能上來測試每個BUC,其次是測試不同BUC之間的依賴和約束。

最后是迭代間集成和回歸測試。對于相鄰的兩個迭代,從功能上來看,后者是前者基礎上的一個增量。迭代間集成把這個增量準確地集成到應用系統上。同時,在集成完成后進行衰減測試。回歸測試不但要測試功能增量的正確性.而且要測試增量發生后系統原來功能的正確性。

實例研究

筆者在Trade Manager項目中運用了上述的方法。TradeManager是一個關于金融軟件研究的項目,開發基于J2EE技術的金融訂單管理系統。項目由12個人的團隊來進行開發。團隊成員分工明確,有項目經理、架構師、測試員和SQA等等。項目采用迭代式的開發方式。在初始迭代中,項目雙方對項目范圍、功能需求及架構達成一致,并簽字同意。整個開發分為三個迭代階段,根據功能點來劃分,每個迭代分別實現交易前、交易中和交易后的功能。每個迭代的開發時間在六個星期。

這個軟件采用J2EE 的架構,如圖5所示。其中UI和Delegate層在客戶端,采用Swing技術來實現。是一個典型的肥客戶端。Facade、Business Logic和DAO在J2EE服務器端,采用EJB技術來實現,它與客戶端的通訊是典型的RMI/IIOp協議,采用的服務器是WebSphere。后臺采用Oracle數據庫來存放各種系統數據。同時,采用SiteMinder來實現系統的認證和授權。用log4j來實現logging/auditing功能。由于采用WebSphere集群技術,系統的可擴展性和高可用性得到了保證。

第12篇

企業應用開發面臨的問題

企業應用是指服務于商業目的,處理企業業務信息、數據的軟件系統。雖然隨著網絡熱潮逐漸冷卻,企業開始謹慎考慮自己在應用系統開發方面的投入,但是畢竟企業的業務流程需要專門的信息系統處理,從而提高自動化程度、減少中間環節、加快信息處理速度。因此,目前國內的企業應用項目開發還是日益火爆,尤其在電子政務、CRM、SCM等領域更是如此。

但是,不論企業應用開發是采用自行開發或者委托系統集成商進行開發,都存在著下面一些情況:

大部分項目超時或者超出預算;

項目在部署以后BUG很多,而且修改的周期比較長;

對于系統集成商來說,下面的情況更是比較普遍:

沒有統一的FRAMEWORK,每個項目都會重新設計ARCHITECTURE;

項目開發過程的自動化程度和重復步驟不是很多,人為引入的BUG很多。

開放源碼項目現狀

開放源碼運動在90年代開始日益發展,目前已經成為軟件業內不可低估的一股勢力,比較著名的有Linux、Apache、Tomcat、MySQL等。目前,開放源碼的潮流已經超出了操作系統、數據庫管理系統和Web服務器等系統開發領域,開發在企業應用開發中尋找新的領地。尤其是對于企業應用開發的框架和CASE工具,開放源碼項目都有很優秀的解決方案。

國外開放源碼項目的集中地有 以及 ,其中,前者為大家奉獻了著名的Apache、Tomcat、Struts、Axis;而后者是最著名的開源項目中心。

同時,國內自90年代末開始也有很多人投入到開源項目的開發,比較集中的網址是 共創軟件聯盟( .cn) 等等,他們除了提供各種CASE工具以外,還有一些項目是專注于特定領域的解決方案開發,如CRM等。

開發源碼項目與工具的應用

對于目前企業應用開發競爭日益激烈,需求變更頻繁,各個系統集成商都面臨巨大的生存壓力。其中有兩個方面表現尤其突出:

沒有統一的軟件開發過程或者照搬重量級的軟件開發過程,例如RUP等,但是往往由于時間等壓力的影響,并不能切實執行;

大部分企業仍然沒有擺脫手工作坊期間的做法,每個項目或者產品由于管理人員或者團隊的不同,重新設計系統框架,浪費大量的時間在結構驗證與調整上。

企業應用系統的開發中,需求的變更是項目中唯一不變的東西,而且,為了保持開發的一致性和利益最大化,系統集成商需要與客戶保持長期的合作。因此,采取演進式敏捷軟件開發,可以更好的保證項目質量。在所有的敏捷軟件開發方法中,XP(極限編程)是目前應用最為廣泛的一種。它是一種高度動態的過程,它通過非常短的迭代周期來應對需求的變化;溝通、簡單、反饋和勇氣是它的四大核心價值。同時,它集中了業界的很多最佳實踐,目前已經有18條之多,XP強調通過嚴格執行全部的最佳實踐來獲得“極限”效果。

同時,出于復用和效率的考慮,尤其是對于系統集成商,企業應用系統應該具有自己的框架和結構。擁有具有良好性能、經過項目驗證的系統框架,結合有效的軟件開發過程,系統集成商可以快速、成功地開發企業應用系統。

為了更好的開發成功的系統,系統集成商們可以試著從以下兩個方面著手解決問題:

結合開源工具的支持,在組織內部實施“敏捷軟件開發方法”;

為核心業務領域建立靈活、有效的Framework;

由于目前很多企業應用是采用基于J2EE技術的網絡應用程序開發,因此,下面主要介紹基于Java的開源項目、工具的應用。

開源工具與XP

XP的12條最佳實踐,對于所有的企業應用開發商而言,由于組織和文化的不同,不可能全部應用,但是,下面幾個實踐是有條件逐步實施的:

代碼規范:CODE STANDARD

測試驅動開發:TEST-DRIVEN DEVELOPMENT

日構建:DAILY BUILDING

持續集成:CONTINUOUS INTEGRATION

小步:SMALL RELEASE

每日晨會:DAILY MEETING

每周40小時工作:40-HOURS A WEEK

其中,CODE STANDARD和TDD是CONTINUOUS INTEGRATION、DAILY BUILDING和SMALL RELEASE的基礎;而DAILY MEETING和40-HOURS A WORK是單獨的實踐過程,可以與其他的實踐想結合,增強項目小組的溝通,激發士氣。

需要說明的是以上最佳實踐并非XP所獨有,而是被最多的軟件開發方法所應用,其中日構建就在微軟的軟件開發方法中正式出現過。

代碼規范

雖然大部分的企業在一定程度上推行代碼標準與規范,而且對于使用Java的應用程序開發,也有Sun的推薦編碼規范,但是,實際的情況并不理想。

主要的原因在于:一方面,開發人員的習慣勢力很大;另一方面,代碼審查的力度不夠。如果能夠借助工具,從一定程度上幫助進行代碼標準的執行情況檢查,那么代碼審查就可以著重檢查程序的邏輯和性能等方面。

開源產品CheckStyle ( /projects/checkstyle) 可以幫助開發組織解決代碼標準審查問題。

目前的最新版本為3.0,它提供了兩種運行方式:一種是命令行;一種是與Ant結合(Ant自1.5以后提供的OPTIONAL TASKS中有對于CheckStyle的支持)。同時,SourceForge中有對于JBuilder等流行IDE的插件支持,可以定義 Global、Project級別上的屬性文件, 但是,目前只是支持2.42版本。

在3.x版本之前,CheckStyle的配置信息寫在Property File中;而在3.x之后,配置信息為XML文件,配置更加靈活。

3.0的版本中提供了針對Sun Code Conventions的特定Check File,可以參考使用。

建議執行情況:

手動執行:開發人員在IDE中手動觸發CheckStyle檢查或者代碼審查時由審查者手動執行;

自動執行:將CheckStyle與源碼控制系統(CVS)結合,在源碼Checkin的時候進行規則判斷,如果不符合,則不允許代碼進入系統。

測試驅動開發

測試先行或者測試驅動是XP的基本實踐之一,同時測試在軟件開發中的重要作用正越來越得到人們的重視。審查和測試作為系統確認和驗證的有效方式,是項目質量保證的重要措施。

下面按照一般的測試分類,介紹各個領域內的開源測試工具:

單元測試:JUnit ( )

JUnit是由 Erich Gamma 和 Kent Beck編寫的一個回歸測試框架(regression testing framework),用于Java開發人員編寫單元測試之用。下面介紹的開源測試工具,很多都是對于JUnit的擴展。

它目前的版本為3.7,為編寫單元測試提供了主要的接口。目前主流的IDE都提供了對于JUnit的支持。

XP強調測試先行,尤其重視單元測試。系統集成商需要通過軟件開發過程的執行,來強化JUnit的使用。

目前很多商業測試軟件都提供了與JUnit的聯合使用,例如獲得1999和2000年Jolt測試類工具亞軍和生產率大獎的Jtest (ParaSoft公司產品,內置200余條編碼規范,提供Java代碼靜態和動態檢查,同時還可以自動生成簡單的測試用例等等)就可以導入和導出 JUnit的測試用例。

集成與功能測試:HttpUnit ( ) & Cactus ( /cactus/)

HttpUnit是一套通過HTTP連接測試Web應用程序的Java類。在結合JUnit的情況下,HttpUnit可以作為一種創建測試程序的強大工具用來保證Web應用程序正常的端對端功能。

雖然JUnit自身就可以通過編寫單一類的測試程序對服務器端Java代碼進行測試,不過,有了HttpUnit的幫助,JUnit就可以擴展為模擬Web瀏覽器-Web服務器的工作方式對整個Web程序結構進行測試。

Cactus為我們提供了一種測試SERVLET等WEB組件的有效手段。它是JUnit的一個擴展,但是它又和JUnit有一些不同。Cactus的測試分為三種不同的測試類別,JspTestCase, ServletTestCase, FilterTestCase,而不是像JUnit就一種TestCase。Cactus的測試代碼有服務器端和客戶端兩個部分,他們協同工作。

一般意義上,可以采用Cactus作集成測試;而使用HttpUnit做功能測試。

雖然在集成與功能測試方面,有很多優秀的開源工具,但是在實際應用過程中,還是采用商業測試軟件的比較多,對于復雜應用更是如此。這是因為集成與功能測試大部分還是由專門的測試人員進行,而他們對于已有的商業軟件,例如Rational Robot、E-Test Suite、WinRunner等都比較熟悉,同時商業軟件也提供了更為強大的功能。

壓力與性能測試: JMeter ( /jmeter/)

由于企業應用越來越復雜,用戶數量也是越來越多,系統的性能參數以及眾多的非功能性需求在開發中獲得了越來越多的重視。因此,很多壓力與性能測試工具也開始出現,這其中有一定影響的是Apache Software Foundation的JMeter。

JMeter是100%的Java桌面應用,用來測試系統的負載與性能。它最開始設計是用來測試WEB應用,后來加以擴展,可以測試Http,FTP,支持JDBC的關系型數據庫的性能與壓力。

同時,JMeter提供一定的定制功能,系統集成商可以自行開發針對EJB、CORBA或者SOAP的插件。

壓力與性能測試方面,由于測試比較復雜,實際企業應用測試中,也是采用商業測試軟件比較多,例如LoadRunner、JProbe Suite以及與JBuilder8 同步的OptimizerIT;

日構建

在軟件開發的領域里有各種各樣的“最佳實踐”,它們經常被人們談起,但是似乎很少有真正得到實現的。

這些實踐最基本、最有價值的就是:都有一個完全自動化的創建、測試過程,讓開發團隊可以每天多次創建他們的軟件。

“日創建”也是人們經常討論的一個觀點,McConnell在他的《快速軟件開發》中將日創建作為一個最佳實踐來推薦,同時日創建也是微軟很出名的一項開發方法。但是,我們更支持XP社群的觀點:日創建只是最低要求。一個完全自動化的過程讓你可以每天完成多次創建,這是可以做到的,也是完全值得的。

Ant是Apache Jakarta的一個項目,是“不帶 make 缺點的 make”。Ant 正在成為開放源代碼世界中實際上的標準。原因很簡單:Ant 是使用 Java 語言編寫的,這種語言可以讓創建過程在多種平臺上使用。

Ant 目前的版本為1.5,它的執行是基于一個XML文件,配置文件由目標樹構成。每個目標都包含了要執行的任務,其中任務就是可以執行的代碼。在下面給出的例子中,mkdir 是目標 compile 的任務。mkdir 是建立在 Ant 中的一個任務,用于創建目錄。 Ant 帶有一套健全的內置任務,也可以通過擴展 Ant 任務類來添加自己的功能。

Ant內置了對于JUnit、CVS、ClearCase、Visual SourceSafe以及CheckStyle的支持,通過于系統定時功能,例如Windows的“任務計劃”或者Linux/Unix的“cron”,可以很方便的利用Ant來自動完成每日構建的工作。

持續集成

持續集成是XP的重要實踐之一,Martin Fowler在參考文獻[中有詳細的介紹,上述實踐都是它的基礎。

開源項目中有一個著名的工具是用來幫助實現持續集成的:CruiseControl,其次,目前還有一款商業軟件AntHill也為持續集成提供了很好的支持。

CruiseControl ( /)

CruiseControl是著名的ThoughtWorks公司的產品,目前它的源碼已經公開,它是一個持續集成的框架。它包含,但是并不局限于Email通知、Ant以及其他源碼控制工具。同時,它還提供了WEB界面來查看當前和已往Build的詳細信息。

AntHill ( /projects/anthill/)

AntHill 可以確保Build過程受控,同時,幫助組織內部的知識共享。它在每次Build之前從源碼控制系統 (CVS、VisualSourceSafe、ClearCase等) 中獲取最新的源碼,同時在 Build完成之后為源碼分配一個唯一的數字進行標定。同時,它還會在根據Build的情況,更新Intranet的信息。

小步

有了以上實踐的支持,小步就有了實現的可能。XP強調在非常短的周期內以遞增的方式新版本,從而可以很容易地估計每個迭代周期的進度,便于控制工作量和風險;同時,也可以及時處理用戶的反饋。

為了成功的進行應用系統的版本,需要SCM,尤其是源碼控制程序的配合。在開源項目中,CVS (Concurrent Version System) 是最著名的版本控制程序。

目前CVS的版本為1.5.11,它是一個將一組文件放在層次目錄樹中以保持同步的系統。人們可以從 CVS 服務器上更新他們的本地層次樹副本,并將修改的結果或新文件發回;或者刪除舊文件。CVS 基于客戶端/服務器的行為使得其可容納多用戶,構成網絡也很方便。

這一特性使得 CVS 成為位于不同地點的人同時處理數據文件(特別是程序的源代碼)時的首選。所有重要的免費軟件項目都使用 CVS 作為其程序員之間的中心點,以便能夠綜合各程序員的改進和更改。

基于多個操作系統的CVS的客戶端軟件也很多,其中以WinCVS最為著名。

開源項目與Framework:

目前,對于基于JavaEE的應用程序開發,有很多開源的Framework,例如Struts ( /struts/)、WebWork等,都提供了利用J2EE技術的優秀解決方案。其中,Struts是目前應用最為廣泛和獲得關注最多的框架之一。

Struts目前的版本為1.1,它是基于Model2的MVC實現框架。Struts的核心是基于Servlet、JavaBean、ResourceBundles和XML技術的控制層。

還有很多開源項目為Struts提供支持,例如:

配置文件GUI:Struts Console;

Code Generator:Easy Struts;

Unit-Test:StrutsTestCase;

獲得2002年JavaIDE大獎的JBuilder 8更是內置了對于Struts的支持,這也從另外一個側面體現了Struts的重要意義。

主站蜘蛛池模板: 饶河县| 黄大仙区| 太原市| 河北区| 兖州市| 海门市| 嘉峪关市| 静乐县| 晋江市| 辉县市| 永城市| 武穴市| 绥江县| 来安县| 建湖县| 彰武县| 黎城县| 高清| 墨玉县| 花莲县| 若羌县| 曲松县| 旺苍县| 肇州县| 富宁县| 新宁县| 德清县| 宁武县| 水城县| 麦盖提县| 尉犁县| 遂川县| 齐齐哈尔市| 长沙市| 阿城市| 吴旗县| 蓬莱市| 乐亭县| 新田县| 大埔区| 开封县|