第一篇:CADCAE軟件集成心得
CAD/CAE軟件集成心得
經(jīng)過一個月的努力,現(xiàn)在已經(jīng)熟練掌握了Proe、ABAQUS、ADAMS、ANSYS(APDL)和ANSYSWorkbench封裝方法。從不熟悉ABAQUS和ADAMS的操作到基本熟悉它們的分析流程和軟件的主要文件(哪些是輸入文件,哪些是結(jié)果文件?),從不了解CAE軟件的腳本語言到上網(wǎng)查資料知道了如何將GUI操作錄制成腳本。經(jīng)歷了不知道自己的想法是否能行的通到知道自己的想法肯定能實現(xiàn)但是不知道怎么去做,再到實現(xiàn)自己的想法。而等我把它在電腦上運行成功后的那一刻,帶給我的興奮是不言而喻的,哈哈,買瓶啤酒慶祝慶祝。但是更多的時間在查資料,不斷思考,不斷修改參數(shù),狂點鼠標(biāo),現(xiàn)在右手指還有些痛。當(dāng)回過頭來總結(jié)的時候,覺得這個過程是多么的值得。
也許有人會問,關(guān)于這些CAD/CAE軟件的封裝在多學(xué)科優(yōu)化軟件中不是已經(jīng)有相關(guān)實例了嗎?沒錯,在ModelCenter中確實有這方面的實例,我也拿它的實例練習(xí)了,但是實例中提供的封裝步驟并不能滿足目前工程師的需要。隨著現(xiàn)在大型商業(yè)軟件的專業(yè)化,大多企業(yè)選擇CAD軟件(UG、Proe、Solidworks等)來建模,然后導(dǎo)入CAE軟件(ANSYS、ABAQUS、NASTRAN等)來分析,最后利用優(yōu)化軟件(Isight、ModelCenter、Optimus等)將CAD和CAE軟件集成,對現(xiàn)有設(shè)計方案進行優(yōu)化。軟件自帶實例中提供的封裝方法可優(yōu)化的幾何參數(shù)非常有限,而ModelCenter實例中所用的輸入文件是一個有限元文件,包含了節(jié)點和單元的信息,許多幾何參數(shù)無法從輸入文件中提取,除非在CAE軟件中參數(shù)化建模,當(dāng)模型復(fù)雜時,在CAE中建模是非常的麻煩。我們知道實際工程結(jié)構(gòu)的幾何模型往往比較復(fù)雜,所以只能走CAD/CAE集成這條路。先集成CAD軟件,把幾何模型作為輸出變量,然后利用編寫的腳本語言作為輸入文件集成CAE軟件,當(dāng)幾何參數(shù)改變時,CAE軟件會重新導(dǎo)入更新后的幾何模型。采用這個辦法就可以改變幾何模型中的任意幾何參數(shù)。以下就來介紹在CAD/CAE封裝集成過程中我認為的關(guān)鍵中的關(guān)鍵:
1、克服對陌生事物的恐懼感?;蛟S你跟我一樣只是以前聽說我這個軟件,沒關(guān)系,就算專業(yè)的CAE工程師也不可能熟悉所有的CAE軟件。先找個相應(yīng)軟件的實例跟著操作一遍,大致熟悉分析的流程,如何導(dǎo)入幾何模型,如何劃分網(wǎng)格,如何添加邊界條件以及保存文件。就像初次碰到陌生人一樣,每個人都會緊張,但是見面次數(shù)多了,聊的多了不就成熟人了嘛。
2、編寫腳本語言文件作為輸入文件。CAE軟件的操作有GUI(圖形用戶界面)和命令行兩種方式,我們封裝CAE軟件一般采用命令流文件,但我們大多用戶對GUI比較熟悉而對命令流比較陌生。沒關(guān)系!我們每一步的GUI操作,軟件都會幫我們記錄相應(yīng)的腳本,在此腳本文件的基礎(chǔ)上做適當(dāng)修改就可以當(dāng)做輸入文件了,例如,定義輸入變量,將關(guān)心的輸出變量值寫入結(jié)果文件,具體過程參考所要集成軟件的封裝教程。
3、批處理命令。批處理命令即軟件封裝時需要輸入的Run Command,起到調(diào)用軟件、執(zhí)行命令的目的。每個軟件都有自己的腳本語言,所以每個軟件的批處理命令都不盡相同,把它改成自己需要的。
4、多一次嘗試,也許興奮就在下一刻來臨。每當(dāng)軟件封裝測試失敗時總會感到沮喪,沒關(guān)系,把自己編寫的腳本一行一行的在軟件的Command Window中運行,檢查自己的腳本文件是否有錯誤。還需要注意的細節(jié),封裝CAD軟件時有重寫入一項勾上或者將幾何模型IGS格式作為CAD的輸出變量,再把它當(dāng)做CAE的讀入文件,要不然幾何參數(shù)再怎么變化,輸出變量也是毫無變化。
第二篇:軟件集成技術(shù)總結(jié)
軟件集成技術(shù)總結(jié) 軟件集成系統(tǒng)
主要功能是實現(xiàn)各種應(yīng)用軟件在本系統(tǒng)中的集成及調(diào)用,由于需要集成軟件的開發(fā)軟件,運行環(huán)境各有不同,所以在系統(tǒng)集成時調(diào)用的相關(guān)技術(shù)也不盡相同。本系統(tǒng)軟件的集成主要應(yīng)用了一下三種技術(shù):Java Applet技術(shù),Exe軟件的調(diào)用方法,Matlab軟件的調(diào)用方法。相關(guān)技術(shù) 2.1 Java Applet技術(shù)
Applet可以翻譯為小應(yīng)用程序,Java Applet就是用Java語言編寫的這樣的一些小應(yīng)用程序,它們可以直接嵌入到網(wǎng)頁或者其他特定的容器中,并能夠產(chǎn)生特殊的效果。
Applet必須運行于某個特定的“容器”,這個容器可以是瀏覽器本身,也可以是通過各種插件,或者包括支持Applet的移動設(shè)備在內(nèi)的其他各種程序來運行。與一般的Java應(yīng)用程序不同,Applet不是通過main方法來運行的。在運行時Applet通常會與用戶進行互動,顯示動態(tài)的畫面,并且還會遵循嚴格的安全檢查,阻止?jié)撛诘牟话踩蛩兀ɡ绺鶕?jù)安全策略,限Applet對客戶端文件系統(tǒng)的訪問)。
在Java Applet中,可以實現(xiàn)圖形繪制,字體和顏色控制,動畫和聲音的插入,人機交互及網(wǎng)絡(luò)交流等功能。Applet還提供了名為抽象窗口工具箱(Abstract Window Toolkit,AWT)的窗口環(huán)境開發(fā)工具。AWT利用用戶計算機的GUI元素,可以建立標(biāo)準的圖形用戶界面,如窗口、按鈕、滾動條等等。目前,在網(wǎng)絡(luò)上有非常多的Applet范例來生動地展現(xiàn)這些功能,讀者可以去調(diào)閱相應(yīng)的網(wǎng)頁以觀看它們的效果。
在Java Applet的生命周期中,共有四種狀態(tài)(初始態(tài)、運行態(tài)、停止態(tài)和消亡態(tài))和四個方法:init()、start()、stop()和destroy()。a init()當(dāng)創(chuàng)建Java Applet且第一次使用支持Java的瀏覽器載入時,就會執(zhí)行init()方法。在Java Applet生命周期中,該方法只執(zhí)行一次,因此可以利用這一點在init()方法中進行一些只需執(zhí)行一次的初始化操作,例如對變量的初始化等。b start()調(diào)用完init()方法后,系統(tǒng)將自動調(diào)用start()方法。當(dāng)用戶離開包含Applet的主頁后又再返回時,或者當(dāng)瀏覽器從圖標(biāo)狀態(tài)恢復(fù)為窗口時,系統(tǒng)都會自動再執(zhí)行一遍start()方法。
和init()方法不同,start()方法在Applet的生命周期中被多次調(diào)用,該方法是Applet的主體。在start()方法中,可以執(zhí)行一些任務(wù),或者是啟動相關(guān)的線程來執(zhí)行任務(wù),如循環(huán)播放歌曲等。c stop()和star()方法相對應(yīng),當(dāng)用戶離開Applet所在頁面或者是瀏覽器變成圖標(biāo)時,系統(tǒng)都會調(diào)用stop()方法,因此該方法也是可以被多次調(diào)用的。
stop()方法起到這樣的作用:當(dāng)用戶在當(dāng)前時刻并不十分關(guān)注Applet時,停止一些耗用資源的工作,這樣就可以提高系統(tǒng)的運行速度,而且系統(tǒng)會自動調(diào)用該方法,并不需要人為干預(yù)。倘若編寫的Applet中不涉及動畫等多媒體,一般不必重寫該方法。51Testing軟件測試網(wǎng) d destroy()當(dāng)用戶關(guān)閉瀏覽器時,系統(tǒng)就會調(diào)用destroy()方法,應(yīng)該注意stop()方法和destroy()方法的區(qū)別。
本系統(tǒng)中的Applet小程序調(diào)用流程:運行時,首先從服務(wù)器下載應(yīng)用程序的ZIP壓縮文件到本地,然后解壓到本地,并在在本地運行,在Applet關(guān)閉時,停止exe運行,并刪除已下載的ZIP文件和解壓后的文件夾。
2.2 EXE軟件的調(diào)用方法
使用Runtime.getRuntime().exec()方法可以在java程序里運行外部程序。
該方法有6個可訪問版本:
1.exec(String
command)
2.exec(String
command,String
envp[],F(xiàn)ile
dir)
3.exec(String
cmd,String
envp[])
4.exec(String
cmdarray[])
5.exec(String
cmdarray[],String
envp[])
6.exec(String
cmdarray[],String
envp[],F(xiàn)ile
dir)
一般的應(yīng)用程序可以直接使用第一版本,當(dāng)有環(huán)境變量傳遞的時候使用后面的版本。
其中2和6版本可以傳遞一個目錄,標(biāo)識當(dāng)前目錄,因為有些程序是使用相對目錄的,所以就要使用這個版本.當(dāng)要執(zhí)行批處理的時候,不能直接傳遞批處理的文件名,而要使用:
cmd.exe
/C
start
批處理文件名
使用dos命令(比如dir)時也要使用掉調(diào)用。
如果想與調(diào)用的程序進行交互,那么就要使用該方法的返回對象Process了,通過Process的getInputStream(),getOutputStream(),getErrorStream()方法可以得到輸入輸出流,然后通過InputStream可以得到程序?qū)刂婆_的輸出信息,通過OutputStream可以給程序輸入指令,這樣就達到了程序的交換功能。
使用Runtime類.
try {
Runtime rt = Runtime.getRuntime();
rt.exec(“C:WINDOWSNOTEPAD.exe”);
} catch(Throwable t){ System.out.print(t.getMessage());
} 2.3 Matlab軟件的調(diào)用方法
Matlab軟件的調(diào)用分為三個步驟:一是在java里面調(diào)用matlab,matlab2006b以后的版本中都提供了java 調(diào)用matlab的接口matlab build for java;二是將調(diào)用matlab程序的java程序轉(zhuǎn)換為exe程序;三是按照2.1所述的方法調(diào)用Matlab的exe程序。
關(guān)鍵技術(shù)是java調(diào)用matlab程序的方法,下面是一個相關(guān)的例子:(一)在MATLAB中編輯operation.m, %定義一個函數(shù)operation(a,b),求a與b的加減乘除運算,并返回結(jié)果
%函數(shù)定義function 輸出變量列表[s,m,...] 函數(shù)名(輸入變量列表)sum,sub,mul,div中
function [sum,sub,mul,div] = operation(a,b);sum = a + b;sub = a-b;mul = a * b;div = a / b;end(二)生成Java調(diào)用文件
Matlab命令中輸入deploytool,新建一個matlab builder ja文件,在operationclass中添加operation.m文件,點擊bulid the project,生成一個供java調(diào)用的文件夾結(jié)構(gòu)如下:
Operation-----|----distrib |
|-----operation.jar |
|-----readme.txt
|
-------src
|
|----operation
|
|----operationclass.java
|
|----operationMCRFactory.java
|----operationclassRemote.java
|
|----classes
|
|----operation
|
|----operation.ctf
|
|----operationclass$1.class
|----operationclass.class
|----operationclassRemote.class
|----operationMCRFactory.class |-------build.log |-------operation.ctf |-------operation.jar |-------mccExcludedFiles.log |-------readme.txt(三)Java中建立一個java project工程JavaTestMatlab,導(dǎo)入兩個庫文件javabuilder.jar(C:ProgramFilestoolboxjavabuilderjar)和operation.jar(D:My DocumentsMATLABoperationdistrib operation.jar),編寫java程序JavaTestMatlab.java程序如下: import operation.*;import java.util.Scanner;class JavaTestMatlab {
public static void main(String[] args)
{
Object result[] = null;
/* object是所有類的父類public Object[] operation(int nargout, Object...rhs)*/
operationclass myAdd = null;
/* Stores myadd class instance */
try
{
int a,b;
myAdd = new operationclass();
System.out.println(“從鍵盤輸入兩個操作數(shù):”);
System.out.print(“
輸入第一個操作數(shù):”);
Scanner scan = new Scanner(System.in);
//從控制臺讀入輸入的整數(shù)
a = scan.nextInt();
//從控制臺輸入第一個操作數(shù)
System.out.print(“
輸入第二個操作數(shù): ”);
b = scan.nextInt();
//從控制臺輸入第二個操作數(shù)
result = myAdd.operation(4,a,b);//operation(4,a,b)中第一個參數(shù)是返回值的個數(shù),a是第一個輸入?yún)?shù),b是第二個輸入?yún)?shù)
System.out.print(“The sum of ” + Integer.toString(a)+ “ and ” + Integer.toString(b)+ “ is: ”);
System.out.println(result[0]);
System.out.print(“The sub of ” + Integer.toString(a)+ “ and ” + Integer.toString(b)+ “ is: ”);
System.out.println(result[1]);
System.out.print(“The mul of ” + Integer.toString(a)+ “ and ” + Integer.toString(b)+ “ is: ”);
System.out.println(result[2]);
System.out.print(“The div of ” + Integer.toString(a)+ “ and ” + Integer.toString(b)+ “ is: ”);
System.out.println(result[3]);
}
catch(Exception e)
{
System.out.println(e);
}
} } 測試結(jié)果如下:
從鍵盤輸入兩個操作數(shù):
輸入第一個操作數(shù):55
輸入第二個操作數(shù): 22 The sum of 55 and 22 is: 77 The sub of 55 and 22 is: 33 The mul of 55 and 22 is: 1210 The div of 55 and 22 is: 3(四)錯誤調(diào)試
1.安裝matlab不完整,沒有toolboxjavabuilder下的文件 2.環(huán)境變量中classpath中添加兩個jar文件的路徑 已經(jīng)集成的軟件
ORDEM2000 空間碎片評估系統(tǒng)(DAS2.0)增阻型離軌氣動分析及優(yōu)化軟件 索型離軌技術(shù)模擬軟件TetherSim 衛(wèi)星壽命計算軟件 再入安全評估軟件
GEO衛(wèi)星離軌燃料估算軟件
第三篇:軟件設(shè)計師心得
計算機學(xué)習(xí)要經(jīng)歷一個從理論———實踐———理論的認識不斷深化的過程,下面談?wù)劚救送ㄟ^軟件設(shè)計師考試的一些體會。
軟件設(shè)計師考試大綱中計算機與軟件工程知識
(1)首先基礎(chǔ)知識中涉及到計算機硬件的內(nèi)容和多媒體知識以及語言知識問題,這是一個量的積累,最后實現(xiàn)質(zhì)的飛躍。
(2)數(shù)據(jù)結(jié)構(gòu)部分,這是首次學(xué)習(xí)線性表、數(shù)組、廣義表、樹、圖、查找算法和排序及算法的分析等。這部分的學(xué)習(xí),要吃透理論、適當(dāng)加大習(xí)題量、最好能結(jié)合上機,深化理解。數(shù)據(jù)結(jié)構(gòu)好比是武功中的內(nèi)功,數(shù)據(jù)結(jié)構(gòu)學(xué)習(xí)用了我一至二年的時間,以自學(xué)教材為主。吃透理論就是反復(fù)讀書,以一本書為主(目前清華大學(xué)嚴蔚敏老師的數(shù)據(jù)結(jié)構(gòu)是一個經(jīng)典),可能的話,再搜羅其他版本的教程,這樣可以互相印證,就同一問題,多看幾本書這一做法,也可推廣到其他學(xué)科的學(xué)習(xí)中。(軟考世界站長注:數(shù)據(jù)結(jié)構(gòu)是個難點,也是個重點,本人在幾家軟件公司應(yīng)聘時筆試都考了很多數(shù)據(jù)結(jié)構(gòu)的試題,東軟兩次筆試均有數(shù)據(jù)結(jié)構(gòu)題目,因此大家要啃下數(shù)據(jù)結(jié)構(gòu)這個硬骨頭!)
(3)操作系統(tǒng)知識,主要從資源管理的角度來分析系統(tǒng)功能的實現(xiàn)。假設(shè)你要設(shè)計一個新的操作系統(tǒng),如何實現(xiàn)它?操作系統(tǒng)理論就是向讀者逐步介紹和解釋。重點是五大管理職能的實現(xiàn)及其原理。
(4)計算機網(wǎng)絡(luò)中對ISO/OSIRM七層的劃分以及各種協(xié)議的功能。傳輸理論、互聯(lián)設(shè)備、Internet知識,除參考模型理論外,其他的比較比較凌亂。
(5)系統(tǒng)安全問題是目前社會關(guān)注的問題,也是應(yīng)用價值較高的知識,可結(jié)合現(xiàn)實中的相關(guān)問題來加深理解。
軟考中的信息化、標(biāo)準化知識是新增考點,是對基本素質(zhì)的考查,也要重視。(軟考世界站長注:大家看看教程,了解一下這些知識,考前強記一下就行了)
專業(yè)英語,不是軟件考試特有的,是專業(yè)知識英語水平,考前不需專業(yè)準備,平時有意識地上網(wǎng)讀點英文專業(yè)資料。(軟考世界站長注:本人英語不行,考程序員和軟設(shè)的時候幾乎是猜的,大家要努力學(xué)好英語哦?。?/p>
軟考的考試內(nèi)容既是大學(xué)計算機本科專業(yè)的必修課,同時又有著鮮明的側(cè)重點,這對于沒有經(jīng)過系統(tǒng)學(xué)習(xí)的朋友們來說,無疑是一次全面、深入學(xué)習(xí)的機會,無論是自學(xué)或是參加培訓(xùn),只要去學(xué)了就會對計算機有更深入全面的了解,而不只是停留在過去那些膚淺的認識上面。
以上是專業(yè)背景知識,是對軟件設(shè)計師基本素養(yǎng)的要求。
軟件設(shè)計師的專業(yè)能力
軟件設(shè)計師,關(guān)鍵是設(shè)計軟件的能力。考試大綱要求:要熟悉軟件工程、軟件過程改進和軟件開發(fā)項目管理的基礎(chǔ)知識;熟練掌握軟件設(shè)計的方法和技術(shù);掌握C程序設(shè)計語言及指定的四種面向?qū)ο笳Z言中的一種。這部分專業(yè)能力嚴重依賴工作實踐,要求有一定經(jīng)驗的積累,是具有工程師的實際工作能力和業(yè)務(wù)水平的體現(xiàn),但目前大量在校生參加考試,雖沒什么工作經(jīng)驗可言,但通過學(xué)習(xí)和借鑒,仍可以取人之長,補已之短。
這部分內(nèi)容主要體現(xiàn)在下午的考試題中,現(xiàn)就如何應(yīng)對下午的考試進行分析:在近幾次考試中,下午試題分五個題目,一個數(shù)據(jù)庫、一個程序填空題、一個面向?qū)ο蟮恼Z言題,另兩個題目分別為數(shù)據(jù)流圖、UML或流程圖等。
數(shù)據(jù)庫題目,要求補全SQL語言,這要求考生熟悉SQL的語言,無論對上午題目還是下午題目都很重要。這是學(xué)習(xí)和復(fù)習(xí)的一個重點。
數(shù)據(jù)流圖,DFD是一種分析系統(tǒng)數(shù)據(jù)流程的圖形,意在讓用戶理解系統(tǒng)的功能、輸入、輸出和數(shù)據(jù)存儲等。請認真弄清其應(yīng)用后,在畫出數(shù)據(jù)流圖的情況下,系統(tǒng)的功能也就確定了,再經(jīng)過細化,逐步向物理結(jié)構(gòu)邁進。考核時,試題多從父圖和子圖的平衡來分析。
這部分內(nèi)容,解題的關(guān)鍵是高度重視題目說明,務(wù)必正確、深入理解其內(nèi)容,必要時要讀幾遍,同時對于給出的圖表,也要務(wù)必看懂。這樣答題就輕松了,答案實際就蘊含在說明中。流程圖類題目,是大家再熟悉不過的了,它就一個具體問題的解題思路進行描述,是面向過程的。但所求問題是千差萬別的,因此應(yīng)理解思路,細心作答。
程序填空是答題形式最簡單同時也是難度最大的。為便于閱卷,這類題目以程序填空形式出現(xiàn),這不僅要求理解問題本質(zhì),同時也要弄清作者解題思路,這一點比自己獨立完成程序設(shè)計要難得多。依個人經(jīng)驗,首先要針對問題,設(shè)計自己的思路,解決問題,確定先后順序;然后試讀程序,如果思路大體一致,題就容易解決了,如果思路不一致,就要設(shè)法弄清每一段代碼的功能及其邏輯結(jié)構(gòu),進而弄清命題人的解題思路,再順勢解決問題。人們常講,答案就在題目中,這是對的。在分析問題過程中,找到所求答案。不過前提條件是考生要熟悉這種語言,又要明白解題思路,這樣才能正確作答。
近年來對于統(tǒng)一建模語言UML考查較多,已引起了考生的注意。它代表了軟件工程的發(fā)展趨勢,目前是可視化建模的事實上的工業(yè)標(biāo)準。人們對于圖的理解相對其他形式更容易一些,圖能更清晰地描述和說明問題的本質(zhì),因此,UML體現(xiàn)了這一特點。這類題目難度與數(shù)據(jù)流圖相似,自然解題思想也相同。從形式上看,數(shù)據(jù)流圖更樸實一些,UML類的題目則透出一種新穎、現(xiàn)代的氣息。
最后的題目面向?qū)ο笳Z言是一個選做題,給考生以自由,可以發(fā)揮個人的優(yōu)勢。命題已注意到不同語言的考查難度的一致性,要求考生就同一問題回答,實現(xiàn)了形式上的公平。應(yīng)考的核心問題
要高度重視近幾年的試題。試題是對考試大綱的外化,是對相應(yīng)知識的梳理,直接體現(xiàn)考查意圖。如能把歷年試題研究幾遍,通過考試不成問題。因此,一個高效的學(xué)習(xí)方法,就是先研究歷年考試題,通過做題,鞏固已有知識,強化能力。針對試題不同內(nèi)容,進行歸納總結(jié),找出自己的優(yōu)勢和不足,然后帶著問題去讀書,查找相關(guān)資料,做到有的放矢,針對性強。從應(yīng)考角度講,這種方法效率可能最高。
考試是對參考人的綜合性評測,每個考生只要答對60%的題目就能通過考試。考過了,意味著一個學(xué)習(xí)階段的終結(jié),另一個學(xué)習(xí)階段的開始,是對個人知識體系和實踐能力的檢測。
我的考試經(jīng)驗:考前集中學(xué)習(xí)是必要的,研究往年考題很重要,考試信心要增強。雖然軟考的通過率并不高,但要相信“天道酬勤”的道理。
另外,本人是在職學(xué)習(xí)計算機的,個人的經(jīng)歷不適用于在校生,但是學(xué)習(xí)過程是一致的。從無知到有知,從知之不多到形成一定的學(xué)科知識體系,通過實踐進一步強化能力,這一過程是不能逾越的。在校生基于自身條件、所處環(huán)境等因素,會更有優(yōu)勢。(這篇文章還不錯,基本上說到了軟件設(shè)計師的考試點,大家下午考試一定要拿下數(shù)據(jù)庫,數(shù)據(jù)流圖,UML這幾個重點?。?/p>
第四篇:軟件測試心得
《軟件測試心得體會》
軟件測試在整個軟件周期中的重要性。它存在于整個項目周期,在項目開始
下面簡單談?wù)勎业膸c體會:
體會一:
體會一:軟件測試在整個軟件周期中的重要性。
它存在于整個項目周期,在項目開始之初需求調(diào)研的時候就開始了,在形成需求規(guī)格說明書的時候就需要針對文檔進行測試。這個環(huán)節(jié)在后續(xù)整個項目中占了很大的比重,能主導(dǎo)整個項目的走向,成敗與否全在于開始階段的決策。
體會二:軟件測試的真正意義在于發(fā)現(xiàn)錯誤,而不在于驗證軟件是正確的。
再嚴密的測試也不能完全發(fā)現(xiàn)軟件當(dāng)中所有的錯誤,但是測試還是能發(fā)現(xiàn)大部分的錯誤,能確保軟件基本是可用的,所以在后續(xù)使用的過程中還需要加強快速響應(yīng)的環(huán)節(jié)。結(jié)合軟件測試的理論,故障暴露在最終客戶端之前及時主動的去發(fā)現(xiàn)并解決。這一點就需要加強研發(fā)隊伍的建設(shè)。
體會三:在系統(tǒng)性能測試方面需要重視。
經(jīng)過這次培訓(xùn)中多個案例的講解,讓我了解到系統(tǒng)在上線之后會有很多不能預(yù)知的性能問題,需要在上線之前實現(xiàn)進行模擬,以規(guī)避風(fēng)險,包括大數(shù)據(jù)量訪問,高并發(fā)數(shù)等等。當(dāng)然也有很多應(yīng)對手段,沒有哪種手段可稱為最完美,只有最合適的,需要靈活掌握,綜合運用以達到最優(yōu)程度,這是個很值得研究的領(lǐng)域。
下面是我的幾點想法:
想法一:加強系統(tǒng)上線前的性能測試。
目前我們在項目建設(shè)過程中對性能壓力測試的重視程度還不太高,廠家也很少有雇傭第三方的測試機構(gòu)。而是在現(xiàn)網(wǎng)進行試用,遇到問題再解決,可能會產(chǎn)生滯后問題,影響客戶使用。希望以后能在性能測試方面提高重視程度,加大人力投入,以保證系統(tǒng)上線后能夠穩(wěn)定運行。
想法二:適當(dāng)介入相關(guān)項目研發(fā)
對于快速響應(yīng)這塊,我們不能一味依賴廠家,而希望自己就能快速響應(yīng),及時將問題解決。這也是一個比較長遠的問題,需要加強研發(fā)力量的投入。
我個人是做開發(fā)出身,有此類經(jīng)驗,當(dāng)時是在客戶現(xiàn)場,因為了解系統(tǒng)內(nèi)部結(jié)構(gòu),能夠在第一時間排查解決客戶所反饋問題。
現(xiàn)在系統(tǒng)完全由廠家開發(fā),很難了解內(nèi)部結(jié)構(gòu),或許會造成后期維護困難。所以,是否應(yīng)該針對某些項目介入廠家研發(fā)工作,比如請廠家提供源代碼等相關(guān)要素,以增進維護人員對系統(tǒng)的了解。
最后再次感謝公司提供的平臺,感謝領(lǐng)導(dǎo)的信任,讓我有機會得到更深層次的學(xué)習(xí)以及展示自己能力的機會,我也會盡我所能來完善工作的系統(tǒng),提高整體工作效率,為南方電網(wǎng)的發(fā)展建設(shè)提供更堅實,優(yōu)秀的支撐服務(wù)平臺。
第五篇:軟件測試心得
軟件測試心得體會
軟件測試工作是一個系統(tǒng)而復(fù)雜的工程,軟件測試的目的就是確保軟件的質(zhì)量、確認軟件以正確的方式做了你所期望的事情,所以工作的主要任務(wù)是發(fā)現(xiàn)軟件的錯誤、有效定義和實現(xiàn)軟件成分由底層到高層的組裝過程、驗證軟件是否滿足規(guī)格書要求和系統(tǒng)定義文檔所規(guī)定的技術(shù)要求、為軟件質(zhì)量模型的建立提供依據(jù)。
而且軟件的測試不僅是要確保軟件的質(zhì)量,還要給開發(fā)人員提供信息,以方便其為風(fēng)險評估做相應(yīng)的準備,以及為其提供分析依據(jù),重要的是要貫穿在整個軟件開發(fā)的過程中,保證整個軟件開發(fā)的過程是高質(zhì)量的。
軟件測試對測試工程師來講,要求具備較強的專業(yè)知識,嚴謹細心耐心的測試態(tài)度,良好的反向思維、發(fā)散思維能力、溝通能力等等。
以下是就自己的個人工作經(jīng)歷談一些淺見:
1.標(biāo)準文檔的制定:
1.1.任何一個公司要讓自己的產(chǎn)品面市,都要有自己的一 套完整的品質(zhì)標(biāo)準,這個標(biāo)準一定是在符合國標(biāo)及客戶標(biāo)準的基礎(chǔ)上形成的企業(yè)標(biāo)準,系統(tǒng)而全面地描述一款產(chǎn)品的功能、性能、可靠性、健壯性、安規(guī)要求等一系列的產(chǎn)品標(biāo)準,并根據(jù)客戶特定要求相應(yīng)調(diào)整。
1.2.測試儀器的作業(yè)指導(dǎo)書(SOP)及保養(yǎng)說明等。定義儀器 的使用步驟、操作指南和保養(yǎng)細則等。
2.測試資料的歸檔:
標(biāo)準媒體文件、測試報告、BUG LIST庫(電子類問題、結(jié)構(gòu)類問題、軟件類問題:方案自存問題、品證測試問題、生產(chǎn)測試問題、客戶反饋問題、終端消費者反饋問題等)、認證測試文檔歸納總結(jié)(認證公司培訓(xùn)資料、認證過程中出現(xiàn)并改善的問題)、測試工程師經(jīng)驗分享、常見問題解答FAQ等。
3.功能測試:
3.1.這是軟件測試工作中最核心和最基本的一項測試,該測試的主要內(nèi)容是檢查軟件是否符合需求定義,并通過構(gòu)造正常的操作來檢查的動作是否正確;在這個測試里,正確性是最最重要的軟件質(zhì)量要素。
3.2.功能測試按照可見性可以分為兩類:顯性功能和隱性功能。
顯性功能:指在菜單里可以看得到的功能。隱性功能:指在菜單里看不到的功能。
例如,電話本的顯性功能有增加、編輯、刪除、撥打等,這些功能可以在電話本的菜單里面看得到,姓名列表排序則屬于一個隱性功能,因為在電話本的菜單里沒有這樣一個子菜單,但它卻是一個實實在在的功能。如以下這些隱性功能都測試中都需重點關(guān)注: a.電話本上下頁切換,是否有遺漏聯(lián)系人信息? b.是否支持手機內(nèi)存、SIM卡電話本的同時下載?還是支持從一種介質(zhì)里下載?
c.斷電后再上電,系統(tǒng)設(shè)置的時間是否有記憶功能? d.GPS信號正常時,導(dǎo)航地圖中時間是否有更新? e.TFT屏在Power off→on, ACC off→on時,屏的角度是否有記憶?
f.模擬導(dǎo)航時,是否有雙工功能?后臺源聲音輸出是否正常?
g.路試語音產(chǎn)品外置麥克風(fēng)使用效果時,考慮車速、風(fēng)聲、車內(nèi)講話噪聲、汽車底盤/發(fā)動機噪聲等對麥克風(fēng)錄音效果的影響,軟件多線程開啟時導(dǎo)致的資源占用/系統(tǒng)繁忙對后臺錄音系統(tǒng)的影響。(也可從結(jié)構(gòu)方面考慮:外置麥克風(fēng)型腔開孔的接觸面積,是否360度可旋轉(zhuǎn)等來增加錄音的路徑等。)
h.地圖上的POI信息通過后臺語音搜索獲取不到,解決措施:要求方案商訊飛完善后臺語音庫。
3.3.在實際的測試過程中,顯性功能通過菜單遍歷可以很容易地進行無遺漏的測試,但是隱性功能卻很容易為我們所忽略!一個有效的解決辦法是去檢查軟件的功能定義列表(Feature List),從這個列表里面找出那些隱性的功能。
3.4.制定測試用例時,要充分考慮各功能模塊軟件的顯性功能和隱性功能。
4.健壯性測試:
橘生淮南則為橘,生于淮北則為枳。是說明橘的健壯性太差。該成語充分說明了我們對產(chǎn)品進行健壯性測試的必要性。4.1.健壯性是指在異常情況下,軟件還能正常運行的能力。健壯性有兩層含義:一是容錯能力,二是恢復(fù)能力。健壯性測試主要包括:電子硬件健壯性(如:遙控距離測試、高低電壓適應(yīng)性測試、插拔電及開關(guān)機測試、靜電抗擾度測試、熱插拔測試)和機械健壯性(如:整機結(jié)構(gòu)設(shè)計基準測試、模擬運輸測試、常溫包裝跌落測試)。4.2.這項測試主要是檢查軟件對異常操作的容錯能力,異常操作通常要考慮異常輸入操作及異常條件兩個方面。例如:測試藍光媒體播放器時,反復(fù)把HDMI連接線拔掉,造成通信異常中斷,再接上復(fù)合視頻(CVBS)信號輸出,即由數(shù)字信號輸出轉(zhuǎn)為模擬信號輸出。恢復(fù)測試重點考察一下幾項:(1)系統(tǒng)能否重新運行;(2)有無重要的數(shù)據(jù)丟失;(3)是否毀壞了其它相關(guān)的軟件或硬件;(4)若軟件出現(xiàn)系統(tǒng)報錯,是否有自恢復(fù)能力。
4.3.軟件的很多功能的實現(xiàn)是有很多隱含的條件的,在健壯性測試中,要檢查當(dāng)這些條件不滿足的時候的反應(yīng)。例如:目前大多數(shù)3G智能手機,與各電信運營商形成利益捆綁,每款手機支持特定的電信運營商提供的通信服務(wù),其它運營商提供的服務(wù)則被拒之門外。當(dāng)使用移動SIM卡安裝在只支持聯(lián)通通信服務(wù)的3G手機上,關(guān)注該手機表現(xiàn):是否在執(zhí)行自動更新時重啟?還是執(zhí)行自動更新后提示不支持移動運營通信服務(wù):SIM card not supported, emergency calls only?
例如:在做完常溫包裝跌落測試后,再測試機芯的讀碟能力,讀取偏芯碟、面振碟、偏重心碟、刮痕碟、指紋碟等等碟片,與未做跌落測試前讀碟能力進行比較。如果讀碟能力比以前更差,則考慮改進措施:軟件適當(dāng)增加錄軌時間或機芯托盤加固等。
5.矩陣測試
5.1.矩陣測試是使處于一個特定的狀態(tài),然后構(gòu)造一個異步事件,檢查當(dāng)這個異步事件發(fā)生時軟件的性能。
5.2.根據(jù)事件的來源,異步事件分為外部事件和內(nèi)部事件
兩種。
外部事件舉例:藍牙模式下來短信、來電話、各種介質(zhì)(U盤、iPod、導(dǎo)航卡、收音天線)接入等。如接入導(dǎo)航盒后,導(dǎo)航不運行,看是否會對其它模式的運行產(chǎn)生影響?最近測試的Mazda J53R就是在接入導(dǎo)航盒后,產(chǎn)生系統(tǒng)不穩(wěn)定,長時間播放藍牙音樂、iPod曲目等會出現(xiàn)系統(tǒng)報錯。
內(nèi)部事件舉例:車載DVD藍牙自動連接、自動接聽、音樂下載流量使用提醒, 手機低電警告、自動關(guān)機等。如帶在線音樂功能的車載DVD,插上3G dongle時,下載歌曲時是否有流量提醒:該歌曲占用多少容量、目前已用多少流量、還剩余多少流量。
6.UI測試
好的UI設(shè)計不僅是讓軟件變得有個性有品味,還要讓軟件的操作變得舒適、簡單、自由、充分體現(xiàn)軟件的定位和特點。UI測試遵循的原則:
6.1.易用原則:如主菜單icon的排列布局:橫縱向、環(huán)形、橢圓形。
6.2.友好原則:歌曲列表中的drag bar是否太窄,導(dǎo)致不方便拖動?
6.3.求美原則:檢查在UI的布局里,各種要素是否能傳達一種美感,布局是否合理,色彩是否合諧。
如拖動列表的動態(tài)效果、刷新列表的沙漏效果等。6.4.一致性原則:同樣的一個功能的UI在不同的情景(scenario)所呈現(xiàn)的方式應(yīng)該保持一致。
例如:在設(shè)置菜單選擇DSP模式,退出后在各放音源下檢查DSP模式與設(shè)置菜單中是否一致;將系統(tǒng)語言改為英語等其它語言,播放界面及菜單等,拼寫是否正確,顯示是否一致、是否越界等。
6.5.普遍性原則:即遵循約定俗成的規(guī)定。藍牙icon一般遵照藍牙認證協(xié)會
標(biāo)識,如果自己另外搞一種icon設(shè)計,反而弄得不倫不類。
測試用戶界面的色彩搭配、整體布局、行距、對齊,樣式統(tǒng)一等等。還有就是一些控件是否合理,提示信息和頁面信息是否有語法錯誤等等一系列問題,都應(yīng)考慮進去。
7.用戶體驗:
用戶體驗:一種純主觀在用戶使用產(chǎn)品過程中建立起來的感受。對于一個界定明確的用戶群體來講,其用戶體驗的共性是能夠經(jīng)由良好設(shè)計實驗來認識到。例如:
7.1.自然往往和人的本性相關(guān)的。微信的搖一搖是個以“自然”為目標(biāo)的設(shè)計。設(shè)計“搖一搖”時,目標(biāo)是和人的“自然”或者說“本能”動作體驗做到一致。搖一搖的體驗包括:動作:搖動;視覺:屏幕裂開并合上來響應(yīng)動作; 聽覺:有吸引力的聲音來響應(yīng)動作;結(jié)果:從屏幕中央滑下的一張名片。整個界面沒有菜單和按鈕。但幾乎沒有比它更簡單的交互體驗了。聯(lián)想到車載DVD,如果能通過手勢識別來實現(xiàn)上、下頁菜單的切換也是不錯的選擇。
7.2.如Mazda J53R平臺藍牙電話本的下載,使用部分手機連接成功后下載時間超過2分鐘并提示Time out,且電話本條目數(shù)量也不多,約200條,從用戶角度來說此時長不合理且不易接受。例如建議軟件增加電話本保存在內(nèi)存中,需要調(diào)用時直接從主機菜單內(nèi)導(dǎo)出即可,這樣方便且快捷,而且下載時間快,不需再通過藍牙傳輸。7.3.主機主音量不變的情況下,通過切換模式,主觀感覺不同模式下聲音輸出幅度不一致,即不同模式間切換感覺聲音忽大忽小,這樣就會給用戶造成較差的聽覺感受。此時我們可通過增益平衡(Gain Balance)來分析各源間的信號輸出幅度:
a.將TCD-784碟第2曲1KHz 0dB信號作為標(biāo)準信號通過Line out輸出,再在信號發(fā)生器上定標(biāo)準輸出; b.調(diào)節(jié)信號發(fā)生器參數(shù)為頻率98.1MHz,調(diào)制率75KHz,信號強度66dB,比較與CD輸出時的幅度差別; c.調(diào)節(jié)信號發(fā)生器參數(shù)為頻率999KHz,調(diào)制率80%,信號強度80dB,比較與CD輸出時的幅度差別;
d.轉(zhuǎn)到AUX,將輸入設(shè)置為1KHz,500MV(-12dB), 比較與CD輸出時的幅度差別。
通過不同模式下的輸出幅度對比作為理論依據(jù)來改善, 如判定標(biāo)準0+/-3dB。
8.兼容性測試:
主要測試不同介質(zhì)對于被測設(shè)備的表現(xiàn)。包括:硬件兼容性測試(USB、SD、碟片、藍牙手機等兼容性測試)和軟件兼容性測試(音視頻、圖片、文本格式兼容性測試)。
如何在有限的成本和資源考慮下,針對此軟件產(chǎn)品規(guī)劃出適當(dāng)?shù)募嫒菪詼y試,是所有軟件測試技術(shù)人員關(guān)注的重點。8.1.評估軟件應(yīng)用環(huán)境,有針對性的制定測試計劃。做多少設(shè)備投資?投入多少人力?要測試多少兼容性測試完全會影響到軟件產(chǎn)品的最終成本。想要專心和投資在研發(fā)上,又想要節(jié)省成本的做好兼容性測試,只有評估軟件應(yīng)用環(huán)境,有針對性的制定兼容性測試計劃,才能兼顧成本和產(chǎn)品的兼容性質(zhì)量。
8.2.在多種平臺/應(yīng)用環(huán)境上測試一個軟件產(chǎn)品的開發(fā)成功,不僅僅是編寫完為使用者提供服務(wù)功能的程序而已,更重要的是能在用戶環(huán)境中可靠的運行。因此,軟件程序編寫工作的完成,其實只是完成了開發(fā)任務(wù)中的一半,對軟件進行模擬用戶環(huán)境進行兼容性測試其重要性不亞于對程序本身的開發(fā)。因此在不同平臺、不同版本軟件上做對比測試很有必要。
9.性能測試
性能測試通過自動化的測試工具模擬多種正常、峰值以及異常負載條件來對系統(tǒng)的各項性能指標(biāo)進行測試。負載測試和壓力測試都屬于性能測試,兩者可以結(jié)合進行。
9.1.測試通道延遲和極性(Channel Delay and Polarity),播放通道激勵信號bd_8ch_delaypol_21,使用AP2700 掃描到的曲線圖(如下),以此觀察通道的延遲和極性是否符合要求。
9.2.音視頻同步(A/V Synchronize),播放標(biāo)準AV測試信號,使用AV同步測試儀接受信號,測試儀的另一端連接PC。如Dolby Digital Plus判定標(biāo)準:視頻先于音頻10ms或視頻后于音頻15ms,為可接受范圍。
10.臨界測試
臨界測試,就是指數(shù)據(jù)在保存、刪除、傳送、發(fā)送時或者這些動作即將發(fā)生時,考察軟件對外部干擾事件的處理情況。如文本文件容量大于或等于設(shè)計容量,關(guān)注讀取時的表現(xiàn);藍牙通話/藍牙音樂關(guān)注傳輸距離臨界值附近的測試結(jié)果;藍牙連接成功立即斷開再連接等。如MTK平臺的某些機型在即將刪除一條短信息時收到一條新信息,但刪除的卻不是剛剛選定的那條信息,而是剛剛收到的這條新信息!
11.可靠性測試
11.1.可靠性是指在一定的環(huán)境下、在給定的時間里,軟件不發(fā)生故障的概率。
11.2.可靠性本來是硬件領(lǐng)域的術(shù)語,比如某個電子設(shè)備在剛開始工作時挺好的,但由于器件在工作中其物理性質(zhì)會發(fā)生變化(如發(fā)熱),慢慢地系統(tǒng)的功能或性能就會失常。
例如:高溫工作試驗:常溫下將產(chǎn)品置于恒溫恒濕試驗箱中,按實際裝車的狀態(tài)連接輸入設(shè)備,負載設(shè)備,電源,使樣機為POWER OFF狀態(tài),逐步升溫到+70℃,保持2小時后,使樣機為POWER ON標(biāo)準工作狀態(tài),分別設(shè)置為AM、FM電臺收音/DVD、CD、SD卡播放/藍牙/導(dǎo)航等工作模式下工作,若無電臺則接收AM/FM信號發(fā)生器輸出標(biāo)準信號,音量開關(guān)置1W輸出功率位置,試驗中經(jīng)常確認樣機工作是否正常。樣品工作72小時后,外觀、功能應(yīng)正常;試驗后在常溫下放置2小時以上,電性能指標(biāo)測試應(yīng)正常。
11.3.軟件在運行過程中不會發(fā)生像硬件那樣的物理變化,但是并不代表軟件現(xiàn)在運行是正確的,那它一輩子運行也是正確的,說不定哪一天它就不正常了。軟件中司空見慣的“內(nèi)存泄漏”與”誤差積累“等問題不是一時半會兒就能測試出來的,需要一個較長時間的觀察。例如:做完高溫試驗導(dǎo)致Flash壞塊、或丟代碼等,此時需要軟件對該模塊代碼做雙備份處理。
11.4.時隱時現(xiàn)的問題一般都屬于可靠性問題,糾錯的成本非常高。當(dāng)工程師十萬火急地感到問題現(xiàn)場時,問題消失了;等工程師離開后,問題又出現(xiàn)了,仿佛敵進我退一般!此種低概率現(xiàn)象一定要錄好Trace和Video。
12.黑盒測試模型
輸入黑盒輸出制約條件期望結(jié)果 12.1.黑盒測試不需要去關(guān)注軟件的整體架構(gòu)及其編碼細則,只需要通過構(gòu)造一些合理的輸入(操作),來觀察被測設(shè)備的實際結(jié)果或現(xiàn)象(輸出),從而判定是否存在問題,需求文檔是黑盒測試的主要依據(jù)。
12.2.在一個功能的實現(xiàn)過程中,可能存在這一些隱含的制約條件,它們影響著期望結(jié)果或者是輸出。
“牛吃的是草,擠出的是奶”,這個命題有一個制約條件,魯迅先生雖然沒有說明,但我們應(yīng)該明白,這里是特指母牛,你就是把公牛捏死了也擠不出奶來!12.3.問題就是輸出跟期望結(jié)果的差距,需要注意的是,當(dāng)立場不同時,對問題的定性也可能不一樣,開發(fā)人員站在研發(fā)的角度說這不是問題,測試人員站在質(zhì)量的角度說這是問題。
13.實用的黑盒技術(shù)
13.1.輸入的構(gòu)造通常會采用窮舉的思想,可是窮舉的空間如果非常大,那將使人十分的沮喪,還不如回家象張恒一樣數(shù)星星,說不定還能數(shù)出個天文學(xué)家來。有兩種手段可以有效地縮小窮舉空間:等價劃分和邊界值分析。13.2.等價劃分:等價區(qū)間的概念可以這樣表述,設(shè)(A,B)是命題f(x)的一個等價區(qū)間,在(A,B)中任意取值x1進行測試:
如果f(x1)錯誤,那么f(x)在整個區(qū)間(A,B)上都將出錯;
如果f(x1)正確,那么f(x)在整個區(qū)間(A,B)上都將正確。
等價劃分思想的關(guān)鍵是找到一個合適的標(biāo)準去劃分等價區(qū)間!
新中國成立不久,有一位外國記者問周恩來總理:總理先生,請問你們中國有幾個廁所?意思是新中國一窮二白,除了廁所多一點之外沒有什么別的財富。周恩來回答說:記者先生,我們中國只有兩個廁所,一個是男廁所,另一個是女廁所。這是周恩來總理等價劃分的高超藝術(shù)。
13.3.邊界值分析,“缺陷遺漏在角落里,聚集在邊界上”,邊界值分析是對等價劃分的一種有效補充。
14.測試計劃
制定一個完整、規(guī)范的測試計劃對每一個測試管理人員來說是非常重要的!測試計劃應(yīng)該至少包括如下之內(nèi)容: 14.1.概述(Overview): 文檔通常都是以概述開頭的,測試計劃在概述里應(yīng)該要寫明該測試是做什么的,把測試的范圍定下來,要測什么,不測什么。
14.2.測試目標(biāo)(Test Goals)和發(fā)布標(biāo)準(Release Criteria)一般說來,測試計劃以定要寫明測試的最終目標(biāo)(Test Goals),必須使自己和別人明白為什么必須做這個測試,該測試需要達到的目的是什么。
另外,測試計劃還需要明確定義發(fā)布標(biāo)準(Release Criteria)的范圍,如果有需要,可能還需要定義每一個發(fā)布標(biāo)準定義在DR2、DR3和DR4個階段的目標(biāo)。14.3.測試方法描述(Testing Approach/Description)從項目總體的角度定義軟件的測試方法,如我們在前面講過的單個功能測試、集成測試、系統(tǒng)測試,以及沒有講的附件測試、專項測試、外場測試(Field Trial)。14.4.測試進度表(Testing Schedule)定義在DR各個階段的詳細進度,該進度表依賴于項目總進度及軟件開發(fā)進度。14.5.測試資源(Testing Resource)。