第一篇:手機版本工程管理系統的測試總結
手機版本工程管理系統的測試總結
這次手機版工程管理系統的測試,對于我來說是一個比較新的項目,這個新不是指項目或業務,而是指一個全新的領域——手機測試。
在執行測試過程中,我不斷探索,查閱相關資料,最終總結出一套測試方法,如下:
一、獲取安裝包
獲取安裝的途徑有很多,最主要的有:WAP下載、PC下載再通過TF卡安裝、藍牙傳輸
二、安裝卸載 ? 程序安裝包:icon顯示正確,版本號顯示是否符合要求,安裝后是否顯示該軟件包大小。
? 程序安裝時:是否可以選擇覆蓋已有程序或不覆蓋已有程序,用戶選擇后,系統是否操作正確。
? 程序安裝位置:安裝到手機或 TF卡
? 程序安裝過程:提示信息正確性,意思明確
? 卸載結果:卸載成功、卸載干凈
三、UI測試 ?
?
?
? 分辨率:測試不同手機分辨率下客戶端軟件的顯示情況(圖片、文字內容等)前景色與背景色:查看是否協調統一 按鈕:與正在進行的操作無關的按鈕應該加于屏蔽 焦點與非焦點:控件的焦點與非焦點狀態的邊框要有明顯的區別。對于控件上的焦點掌握,在不同顏色下的邊框有著嚴格的要求。即在選中與未選中下,UI對于控件不同,這對于UI測試的要求更高。
? 長操作:長操作(下載,上傳,更新,登錄等)時,要有明確的動態指示logo或文字(例如:loading…等),表明操作正在進行中。手機訪問速度沒有PC快,對于手機小屏幕很容易失去耐心,簡短的提示就是為了讓用戶繼續停在當前頁面,同時友好的UI界面提示也顯得很重要。
? 提示說明:對于非法的輸入或操作應有足夠的提示說明,提示、警告或錯誤說明應該清楚、明了、恰當的跳出提示警告畫面,但沖擊力不能太強。
? 文字描述的準確性:a.文字描述與對應功能是否一致 ;b.錯別字。? 文字用語的一致統一:父窗口的選項與子窗口標題統一一致。
? 產品幫助文檔:a.與產品功能和截圖配套一致,當重新打包新系統時,及時更新產品幫組文檔; b.文檔格式; c.幫助中應該提供技術支持方式,一旦用戶難于解決可以方便尋求新的幫助方式。
? 版權和商標:產品的版權和商標的logo和文字申明(一般在啟動界面或者軟件
產品的“關于”選項里面);涉及公司的形象和品牌,一定要規范標準化。
? 自定義界面給用戶提供自定義界面風格,由用戶自己選擇顏色和字體。滿足不同
用戶習慣,同時滿足用戶對于一些顏色偏差(如色弱用戶)。
四、功能測試
測試軟件的基本功能測試,如:打開、退出、登錄、注銷、更新、跳轉、返回、搜索、幫助、等等。? 登錄功能
1、登錄系統時,是否進行了用戶名和密碼正確性的檢驗。
2、用戶名和密碼輸入內容的限制。用戶名和密碼只支持小寫字母a~z,數字0~9的輸入,或者字母及數字組合。
3、勾選記住密碼,系統是否能如實操作。
? 注銷功能
1、點擊主頁面的退出按鈕即退出系統登錄狀態,點擊時,系統是否給予確認提示。
2、或者點擊手機上的返回鍵,系統是否給予正確響應。
? 返回功能
1、點擊返回時,系統是否返回到當前操作的上一個操作頁面。
五、業務相關測試
測試軟件的業務流程。
1、用戶具有的數據權限在手機版工程管理系統中是否如實體現。
2、用戶在PC機上對工程管理系統的操作,是否及時體現到了手機版本的工程管理系統,如:更改密碼,對權限范圍內的信息增刪改等。
六、性能測試
目前手機所具有的功能比較簡單,所以只通過安裝了一個流程監控軟件來監視其持續操作時,占用的流量情況。
次數相關的性能測試是測試終端重復穩定地進行某項功能的能力,主要是對成功率的測試。重復操作包括很多對象被多次創建和釋放,因此可能會發現潛在的內存泄漏等問題。
如果功能眾多情況時,需要重新安排優先級進行選取;優先級選取標準: ?基本功能優先:主要指模塊的主要功能,如:登錄、注銷、搜索等。
?內存使用較大的操作優先:考慮到測試目的主要是檢測內存泄漏問題,故應該選擇內存使用率較大的項目進行測試,如:對搜索結果進行翻頁操作、查看合同清單詳情等等。
? 并發測試:主要是測試終端同時進行多項業務時表現出的處理能力。如:把程序置
于后臺運行,同時去對另外一個程序進行操作
? 負載測試:系統配置不變的條件下,在一定時間內,終端在高負載情況下的性能行
為表現。
? 內存高負載測試:主要測試在內存在高負荷狀態下的性能行為表現。主要是將時間
相關、次數相關、并發業務融合到一起進行測試,查看程序是否正常。
七、交互測試
網絡交互:移動(cmnet、cmwap)、聯通(uninet、uniwap)、WIFI
手機交互:CALL、SMS、MMS、響鈴等
異常交互:斷網、斷電
八、用戶體驗性測試
易用性、使用習慣、操作感受
第二篇:手機通訊錄管理系統
#include
char name[20];
char tel[12];
char kind;
char email[50];public:
Information(){}
Information(char N[],char T[],char K,char E[])
{
strcpy(name,N);
strcpy(tel,T);
kind=K;
strcpy(email,E);
}
friend void main();};void main(){
cout<<“☆★☆★☆★☆★☆★☆”< cout<<“ 菜單 n”; cout<<“---------------------”< cout<<“1 信息錄入n”<<“2 按姓名查找n”<<“3 修改n”<<“6 刪除n”<<“0 退出n”; cout<<“請選擇: ”; char p;char w; Information *s[16]; ofstream *file[16]; ofstream *file2[30]; int i=0; int j2=0; int j=0; bool flag2=0; do { cin>>p; if((p>='0'&&p<='8')) flag2=1; 按類別查找n“<<”4 插入n“<<”5 else cout<<“指令錯誤!請重新輸入:”< }while(flag2==0); do{ switch(p) { case '1': { char c; char name[20];char tel[12];char kind;char email[50]; do{ bbb: cout<<“請輸入姓名”< cin>>name; cout<<“請輸入電話號碼:”< cin>>tel; eee: cout<<“請輸入類別(A辦公類B個人類C商務類):”< cin>>kind; if(kind!='A'&&kind!='B'&&kind!='C') { cout<<“類別錯誤,請重輸”; goto eee; } cout<<“請輸入電子郵箱:”< cin>>email; file[j]=new ofstream(“d: ongxunlu.txt”,ios::ate); *file[j]<<“姓名”< j++; s[i]=new Information(name,tel,kind,email); for(int y=0;y { if(strcmp(s[y]->tel,s[i]->tel)==0) {cout<<“輸入重復電話號碼,請重輸!”< goto bbb;} } for(int u=0;u { if(strcmp(s[u]->name,s[i]->name)==0) { cout<<“輸入重名,請重輸!”< goto bbb; }} i++;if(i==15){ cout<<“內存已滿,無法錄入!”< break; } cout<<“數據錄入成功,想繼續錄入嗎(y/n)”< cin>>c; flag2=0; do { if(c!='y'&&c!='n') { cout<<“指令錯誤!請重新輸入!”< cin>>c; } else flag2=1; }while(flag2==0); }while(c=='y'); break; } case '2': { char n[20];int j=0;char c; do{ int flag=0; cout<<“請輸入你要查詢的人員姓名”< cin>>n; for(int j=0;j { if(strcmp(n,(*s[j]).name)==0) { flag=1; cout<<“您要查詢的是:”<<(*s[j]).name< cout<<“電話號碼 ”<<(*s[j]).tel< } } if(flag==0) cout<<“對不起!您要查詢的人不存在!”< cout<<“您想繼續查詢嗎?(y/n)”< cin>>c; if(c!='y'&&c!='n') { cout<<“指令錯誤!請重新輸入!”< cin>>c; } } while(c=='y'); break; } case '3': { char k;int j=0;char c; do{ int flag=0; cout<<“請輸入你要查詢的類別”< cin>>k; for(int j=0;j { if(k==(*s[j]).kind) { flag=1; cout<<“您要查詢的是:”<<(*s[j]).name< cout<<“電話號碼 ”<<(*s[j]).tel< } } if(flag==0) cout<<“對不起!您要查詢的不存在!”< cout<<“您想繼續查詢嗎?(y/n)”< cin>>c; if(c!='y'&&c!='n') { cout<<“指令錯誤!請重新輸入!”< cin>>c; } } while(c=='y'); break; } case '4': { char name[20];char tel[12];char kind;char email[50]; char c;int j=0; do { aaa: cout<<“請輸入您要插入的人的姓名:”< cin>>name; cout<<“請輸入電話號碼:”< cin>>tel; cout<<“請輸入類別(A辦公類B個人類C商務類):”< fff: cin>>kind; if(kind!='A'&&kind!='B'&&kind!='C') {cout<<“類別錯誤,請重輸”; goto fff;} cout<<“請輸入電子郵箱:”< cin>>email; file[j]=new ofstream(“d: ongxunlu”,ios::ate); *file[j]<<“姓名”< j++; s[i]=new Information(name,tel,kind,email); for(int y=0;y { if(strcmp(s[y]->tel,s[i]->tel)==0) {cout<<“輸入重復電話號碼,請重輸!”< goto aaa;}} for(int u=0;u { if(strcmp(s[u]->name,s[i]->name)==0) {cout<<“輸入重名,請重輸!”< goto aaa;}} i++; if(i==15||i==16) {cout<<“內存已滿,無法錄入!”< cout<<“數據錄入成功,想繼續錄入嗎(y/n)”< cin>>c; if(c!='y'&&c!='n') { cout<<“指令錯誤!請重新輸入!”< cin>>c; } }while(c=='y');qqq: break; } case '5': { char name[20];flag2=0; char c; do { cout<<“請輸入您要修改的人的姓名:”< cin>>name; for(int h=0;h { if(strcmp(name,s[h]->name)==0) { flag2=1; cout<<“請輸入新的電話號碼:”< cin>>s[h]->tel; cout<<“請輸入新的類別(A辦公類B個人類C商務類):”< cin>>s[h]->kind; 箱:“< } } cout<<”請輸入新的電子郵cin>>s[h]->email; cout<<“數據修改成功!”; if(flag2==0) { cout<<“您要修改的人本來就不存在!請檢查重新輸入!”< } cout<<“想繼續修改嗎(y/n)”< if(c!='y'&&c!='n'){ “< } case '6': { 存在!請檢查輸入的正確性!”; “< cout<<”指令錯誤!請重新輸入! cin>>c; } }while(c=='y');break;char name[20];bool flag3=0;char c;do{ cout<<“請輸入您要刪除的人的姓名:”< cin>>name; for(int h=0;h { if(strcmp(name,s[h]->name)==0) { flag3=1; i--; do{ s[h]=s[h+1]; h++; }while(h<=i); } } if(flag3==0) cout<<“您要求刪除的對象本來就不 cout<<”要繼續刪除嗎?(y/n)“< cin>>c; if(c!='y'&&c!='n') { cout<<”指令錯誤!請重新輸入! cin>>c; } }while(c=='y'); break; } case '0': { exit(0);break; }} cout<<“您想繼續進行其他操作嗎?(y/n)”< bool flag4=0; do { cin>>w; if(w!='y'&&w!='n') cout<<“指令錯誤!請重新輸入!”< else flag4=1; }while(flag4==0); if(w=='y') { cout<<“※※※※※※※※※※n”<<“2 按姓名查找n”<<“3 按類別查找n”<<“4 插入n”<<“5 修改n”<<“6 刪除n”<<“0 退出n”; cin>>p;} else exit(0);}while(w=='y');for(int x=0;x delete s[x]; cout<<“delete all members!”< } 手機游戲測試總結 1.在模擬器上圖像處理速度較快,不會出現移動的圖像變模糊的現象,由于手機的分辨率較低,有可能出現移動物體變模糊不能清晰辨認的情況,這時應該讓開發人員適當調慢移動的速度; 2.主界面和幫助界面之間連續若干次切換,可能會出現圖像重疊現象,原因是手機的CPU處理速度跟不上刷新速度,而主界面的圖片資源一直沒有釋放,可用測試工具Grinder測出來; 3.是否正確處理來電、斷電等突發情況,音效、游戲進度有無做相應處理; 4.模擬網絡不通的情況。斷開網絡連接,測試軟件的內存是否有正確釋放; 5. 手機測試心得 時間過的真快,一晃自己已經工作一年多了。通過這段時間的學習,對手機測試工作有了一定的認識和理解,自己也從一個嘗試學習的軟件測試實習生升任為軟件測試工程師。總結了一下一年多自己的心得體會。 軟件測試是一個提升產品質量的必要條件,也是提高產品質量的最直接最有效的手段。軟件測試漸漸成為軟件行業最關鍵和重視的一個環節,所以做軟件測試還是很有前途的。要成為一名合格的測試人員在測試過程中首要條件是測試人員要勤奮并富有耐心、善于學習、思考和發現問題,細心能夠有條理的總結問題,這樣才能有機會成為出色的測試人員。下面是我列出的我比較容易犯的錯誤: 1.認真細致的依據test case進行測試,不要以為test case比較簡單,不能找出問題,test case是手機最基本功能的測試點,只有掌握了手機最基本的功能,從而認真思考各功能點的銜接性,拓展測試思路,才能更全面的找到bug; 2.提交bug時要盡量以最簡單的方式重現bug步驟,語句簡單易懂。注意錯別字; 3.測試人員要及時的關注和跟進開發的進程,每個新版本要著重測試開發修改和增加的功能,因為開發修改或增加一個功能可能會引發許多新問題; 4.不要以為智能機只是比功能機多增加了幾個功能模塊而已; 5.擴展測試思路,多嘗試些不同的操作,軟件測試需要以站在真實用戶的位置考慮,比如變態測試、無聊測試等; 6.學習與軟件測試相關的知識。學習手機操作系統的知識有助于你發現缺陷,定位問題更加準確; 7.進行手機測試時要有明確的測試范圍和測試目的,不能漫無目的,看見模塊就測試,當產生焦躁的情緒,就很難發現問題了; 8.測試時一般都會有很多問題,需要耐心和嚴謹,不能因為難度大步驟繁瑣或測試環境部署麻煩而偷工減料,導致漏測; 9.測試人員要學會控制情緒; 10.測試人員要善于和開發溝通,需要給出較有力的依據證明這個問題是個BUG,在提交概率性bug時最好是能提供log等; 軟件測試最主要的是測試人員的態度和理想,軟件測試這個行業的前途是光明的,要使自己熱愛測試的工作,在工作中善于總結。 軟件測試并不單純只是為了找BUG,而是為了保證軟件的質量問題,不能把BUG數作為衡量一個測試人員的尺度,提交的bug能修復軟件最多漏洞的測試人員才是好的最出色的軟件測試。 手機測試的經驗總結 查看(35)/ 評論(0)/ 評分(0 / 0) 1.在提交高通前務必要檢查文檔與實際程序的功能表現是否相同,比如說,游戲增加了密技功能,在文檔中就要有相應的說明。 2.在模擬器上圖像處理速度較快,所以不會出現游戲中移動的圖像變模糊的現象,但是由于手機的分辨率相對低,所以一般在模擬器顯示正常的速度,到了手機就應該讓開發人員適當調慢,否則將會出現移動物體變模糊不能清晰辨認的情況。 3.有些游戲使用了很多的圖片資源,當在兩個界面之間(例如在主菜單界面和幫助界面之間,主界面菜單是由許多圖片組成的,幫助界面是一個html文件的瀏覽顯示),連續按若干次使其在兩個界面之間連續切換,會出現圖像重疊現象,其原因是手機的CPU處理速度跟不上刷新速度,而且主界面的圖片資源一直沒有釋放,導致圖像的殘留。一般可模擬Grinder把這些類似的問題測出來。 4.是否正確處理來電。如果沒有適當正確的來電處理,有些來電會使游戲畫面變亂,有些直接退出,甚至死機。Brew程序員往往會在來電處理后的恢復中忘了對游戲音樂的處理,比如說原先選擇了關閉音樂的,來電處理后音樂又自動開始播放了。有時候需要模擬兩個或以上的連續的來電以發掘程序深層的邏輯錯誤,這些錯誤大多是來電處理后的恢復過程的錯誤。另外短信,電量不足等一些事件警告的出現也有可能導致程序出錯,也要作出相應的處理。 5.注意確保游戲說明和幫助的完整清晰,檢查系統提示信息,確保在游戲中出現的文字的正確拼寫,沒有錯別字。要盡量用敬稱“您”而不用“你”。 6.標題,菜單等的文字顯示要盡量用小字體,盡量縮短文字,能用簡短文字說明清楚的就不要用長句,例如“按2,4鍵可以左右移動圖片”就可改成“按2,4鍵左右移動圖片”,或者甚至改成“按2,4鍵移動圖片”。因為不同的手機顯示屏幕寬度不一樣,在一款手機上顯示正確不代表在其他款式都能正確顯示,然而用小字體,短句子就能適應大多數手機的屏幕寬度。 7.線程的處理,有些游戲設有多個線程,如果沒有處理好線程的調用釋放問題的話,就很可能出現線程爭用的問題。例如一個寵物游戲,寵物死亡后,會調用一個新的線程循環播放哀吊音樂,有些程序員由于粗心大意忘記了釋放這個線程,當重新開始游戲時,就會出現這個線程播放的音樂與游戲過程的背景音樂交替播放的情況。 8.文件處理。當涉及文件讀寫操作的時候,要特別注意測試文件操作帶來的內存問題。比如說,有些游戲需要用文件記錄游戲最高分或分值等,要注意測試第一次運行程序時的退出操作(此時沒有最高分記錄或其他分值記錄),程序是否申請了文件指針或文件資源而沒有釋放。如果是的話,則會導致退出時的內存錯誤。另外對于Brew,應用程序的文件包中不得包含零字節的文件,每個文件至少有一個字節,同時還要求不能包含無用的文件或文件夾,目的是節省手機上有限的存儲資源。9.顏色的搭配,有些背景色跟文字或圖片的顏色搭配在模擬器可以較清晰的顯示出來,但是到了手機由于其分辨率問題就不那么明顯了。顏色搭配要以清晰美觀為基礎,還要適當考慮游戲的種類,用戶心理等問題。 10.用模擬器模擬網絡不通的情況。目的是測試軟件的網絡連接,網絡資源請求,緩沖區存儲等模塊的性能,看看內存是否有正確釋放等。可以通過斷開網絡連接的方法模擬手機網絡不通的情況,具體就是把本地連接的狀態設成禁用或者直接拔掉網絡連接線。 11.數據請求或傳輸等需時較多的過程要確保有提示界面,最好有動畫顯示數據在傳輸過程中,請用戶耐心等待。另外要注意在這個過程中對重復按鍵予以忽略,因為等待時間過長或響應遲鈍時,用戶趨向于重復按手機按鈕。 12.不要忽略了對后臺數據正確性的測試。輸入特殊字符或異常字符,看后臺有沒有相應的容錯處理(當然這些也可由手機端處理)。多個客戶端同時發出請求,測試后臺的多線程處理能力,看能同時處理多少用戶的同時請求,平均響應時間是多少,是否在可接受范圍內。 13.來電,短信,電量不足等一些事件警告的出現也有可能導致程序出錯,也要作出相應的處理。有些網絡程序由于設置了數據通訊時不處理來電,這時候就要在低電量情況下測試,用電量不足的警告事件來觸發程序的suspend和resume處理事件,看是否做了恰當的處理。以上經驗同樣適合開發人員參考,以便盡量避免類似問題的出現。第三篇:手機游戲測試總結
第四篇:手機測試心得總結
第五篇:手機游戲測試總結