⑴ APP完整測試流程
app主要核ui與實際設計的效果圖是否一致;交互方面的問題建議,可以先與產品經理確認,確認通過後,才開始讓開發實施更改或優化
根據軟體說明或用戶需求驗證App的各個功能實現,實際測試過程一般都是根據功能測試用例來執行。測試覆蓋率基本上都是有測試用例主導,也就是說在功能測試部分,是檢驗測試用例是否有效以及完整的,也就導致另外一個問題,測試用例怎麼寫的問題。
模擬用戶真實使用app是會遇到的中斷情況進行測試.如: 網路的斷網, 切換網路, 斷電,來電話/簡訊,聽音樂,切換到其他app, 打開其他app 的通知等
新舊版本的在功能,邏輯層面的兼容測試, 同一個app 在不同系統版本運行,以及不同機型之間的適配測試兼容測試:介面的兼容性測試能夠保證大部分的功能完善;app在不同系統版本上保證運行適配性: 屏幕,系統版本等(系統位數一定要考慮)該部分通過第三方的雲平台進行
可測試的方面- 安裝和啟動時間- CPU的佔用- 內存的佔用- 流量的耗用- 電量的耗用- 後端,測試App中的各類操作是否滿足用戶響應時間要求,主要是測試點在網速方面,2g,3g,wifi, 4g一定要覆蓋到- 後端 有網路並發
在各種邊界壓力情況下(如電池、存儲、網速等),驗證App是否能正確響應
反復/長期操作下,系統資源是否佔用異常;Android 可是使用adb命令
壓力測試主要集中在後端,前端的壓力測試目前測的較少
App安全測試大概劃分為以下幾類:
從數據的本地存儲到數據的傳輸、處理以及遠程訪問等各個環節,基於相應的安全標准/行業標准評估App的安全特性;
借鑒在Web App和網路安全測試的一些成功經驗在智能終端App測試中進行裁減或適配;
檢測App的用戶授權級別,數據泄漏,非法授權訪問等;
對App的輸入有效性校驗、認證、授權、敏感數據存儲、數據加密等方面進行檢測,以期發現潛在的安全問題;
基於各種通信協議或相應的行業安全標准檢視App是否滿足相應的要求。
這個簡單的說就是站在用戶的角度上進行使用app,學習成本低,易上手等,可以進行用戶盲測,根據用戶反饋的意見進行修改。測試人員可以通過與其他競爭品進行對比, 或者根據較大廠商app的交互習慣進行比較。
一般這部分建議使用自動化測試, 如果沒有自動化測試,可以根據以下幾方面進行測試:
線上測試是產品上線之後一定要完成的,這部分可以根據場景化進行回歸測試,其中網路環境要全部覆蓋一遍
⑵ WebUI 自動化測試的經典設計模式:PO
先來看下未使用 PO(PageObject) 設計模式下的代碼,以網頁版網路登錄為例來說明。
非 PO(PageObject) 模式下的代碼如下,所有內容全部寫在一個方法里。
存在的問題:
PO(PageObject) 模式優化後的代碼
1、WebUI 自動化需要的 driver 基礎操作
2、登錄頁面元素獲取
3、登錄邏輯業務的封裝
4、登錄測試用例將使用以上3個頁面對象
可以發現,使用 PO(PageObject) 模式優化後的代碼,有以下明顯優勢:
1)、將以下3個模塊進行了單獨封裝 【降低了模塊之間的耦合度,使層次更加清晰合理,便於後期維護與復用】:
2)、如果前端頁面有 定位元素的 type 或 value 發生變化時,只需要修改 elements.py 文件中元素信息即可 ,不需要在測試業務模塊中進行修改。
⑶ UI設計師的職能有哪些
下面看看UI設計師的崗位職責: 1.制定MRD(Market Requirements Document).
市場需求文檔。獲得項目發起部門的認同後,產品進入實施,需要先出MRD,具體來說要有更細致的市場與競爭對手分析,通過哪些功能來實現商業目的,功能/非功能需求分哪幾塊,功能的優先順序等等。實際工作中,這個階段PD可能的產出物有Mind Manager的思維圖,Excel的Feature List等。 2.制定PRD(Proct Requirements Document).
產品需求文檔。進步一細化,這部分是PM寫得最多的內容,也就是傳統意義上的需求分析,我們這里主要指UC(use case)文檔。主要內容有,功能使用的具體描述(每個UC一般有用例簡述、行為者、前置條件、後置條件、UI描述、流程/子流程/分支流程,等幾大 塊),Visio做的功能點業務流程,界面的說明,demo等。Demo方面,可能dreamweaver、ps甚至畫圖板簡單畫一下,有時候也會有 UI/UE支持,出高保真的demo,開發將來可以直接用的那種。 3.用戶分析報告
搜集相關資料分析目標用戶的使用特徵、情感、習慣、心裡、需求等,提出用戶研究報告和可用性設計建議。這部分工作也可和團隊配合完成。時間與項目需求允許的情況下,更可以制定實景用戶分析。 4.產品架構設計
這里涉及到比較多的界面交互與流程的設計,根據可用性分析結果制定交互方式、操作與跳轉流程、結構、布局、信息和其他元素。 以上是UI設計師需要掌握跟進的,從這里開始就真的是你的任務了5.產品原型設計
就是將頁面模塊、元素進行粗放式的排版和布局,深入一些,還會加入一些交互性的元素,使其更加具體、形象和生動。整個系統的流程設計也是UI設計師的,為此你要經常瀏覽大量的網站,親身體驗,積累經典的,很具親和力的、友好的系統流程,你要考慮到整個系統的任何一個最 終環節。這才是UI設計師工作量最大,難度最高的部分。比如說,用戶注冊流程,成功了去哪,失敗了去哪,成功了後續有幾個流程,每個流程還包含哪些對象等等等等 6.界面UI設計
如果很傾向於圖形界面設計,這兒是你最喜歡的部分。但一定要結合循環討論過的分析結果做設計,否則你的作品很難被人信服。色調、風格、界面、窗口、圖標、皮膚的表現是本環節的關鍵。 7.界面輸出
這方面主要由頁面工程師與前端程序員配合,將界面代碼化。作為UI設計師,最能符合你的設計的基礎作品,當然還是出自你自己的雙手,為此你要懂得切圖,做靜態頁,那麼SHTML和樣式表還有為了實現你那偉大設計的種種特效的JS代碼,你能不會么??你可以不去親自做,但你一定要有一個規范設計,你的施工隊必須在你的培訓和領導下完全符合規范的去操作,就像架構師一樣。 8.分析使用者報告,做出完善調整.
多部門共同參與的,包括可用性的循環研究、用戶體驗回饋、測試回饋。同時,UI人員也應該把一些可行性建議進行完善。很多設計師做了東西不喜歡改,這是一個大忌。 9.整個項目的SEO優化設計。
但就目前許多公司而言,拿到UI設計師手裡的,就是一份什麼說明都沒有的VISO圖,這給許多UI設計師造成一種錯覺,覺得我只需要做效果圖就可以了,對於 其他環節一概不理,導致了在設計產品界面的時候,因為掌握的信息不足,設計出來的界面全憑個人喜好,但是當面對用戶的時候,卻是一點競爭力都沒有.我認為UI設計師在項目初始,就應該加入其中.包括了解項目的市場定位,盈利模式,競爭對手等等,而通過分析競爭對手用戶界面,可以給UI設計師一個初步的 圖形概念,而通過參與用戶調研,用戶分析能夠獲取到用戶特徵,年齡,需求,喜好等方面的信息,這些方面的信息,在風格定位,把握上起到至關重要的作用.通 過了解產品架構,知道什麼功能應該做,什麼功能應該突出,在參與了以上工作的制定後,相信許多UI設計師對自己所要設計的產品,已經是信心十足了吧.後期 在通過分析使用者報告,用戶反饋等方面信息,做出界面上的調整,這樣一來,一個完善的產品就可以面市了,而這個產品,再也不是一個全憑UI設計師個人喜好 所設計出來的產品了..
那麼作為UI設計師都需要具備什麼樣的能力呢? UI設計從工作內容上來說分為3個方向。它主要是由UI研究的3個因素決定的,其分別是研究工具,研究人與界面的關系,研究人。 研究界面----圖形設計師Graphic UI designer國內目前大部分UI工作者都是從事這個行業。也有人稱之為美工,但實際上不是單純意義上的美術工人,而是軟體產品的產品外形設計師。
這些設計師大多是美術院校畢業的,其中大部分是有美術設計教育背景,例如工業外形設計,裝潢設計,信息多媒體設計等。研究人與界面的關系---交互設計師,interaction designer在圖形界面產生之前,長期以來UI設計師就是指交互設計師。交互設計師的工作內容就是設計軟體的操作流程,樹狀結構,軟體的結構與操作規范(spec)等。一個軟體產品在編碼之前需要作的就是交互設計,並且確立交互模型,交互規范。交互設計師一般都是軟體工程師背景居多。 研究人----用戶測試/研究工程師User experience engineer任何的產品為了保證質量都需要測試,軟體的編碼需要測試,自然UI設計也需要被測試。這個測試和編碼沒有任何關系,主要是測試交互設計的合理性以及圖形設 計的美觀性。測試方法一般都是採用焦點小組,用目標用戶問卷的形式來衡量UI設計的合理性。這個職位很重要,如果沒有這個職位,UI設計的好壞只能憑借設 計師的經驗或者領導的審美來評判,這樣就會給企業帶來嚴重的風險性。 用戶研究工程師一般是心理學人文學背景比較合適。
綜上所述UI設計師就是:軟體圖形設計師、交互設計師和用戶研究工程師。這一職位的真正含義:ui設計師絕不是美工(或者說絕不是僅僅做「美化」工作而已),ui設計師是一個技術崗位而非藝術崗位,如果考察一名ui設計師的能力素質模型,那麼他應該同時具備4個維度的能力:
1、 溝通和文檔撰寫能力:如果說ui是人與機器交互的橋梁和紐帶,那麼ui設計師就是軟體設計開發人員和最終用戶時間交互的橋梁和紐帶,如果ui設計師不能具 備很好的溝通和理解能力,不能撰寫出優秀的指導性原則和規范,那麼,他將無法體現出自己對於開發人員和客戶的雙重價值,也無法完成他的本職工作。
2、 過硬的技術能力:你可以不會寫java,但你絕對不可以不清楚java是什麼,他能夠實現什麼。即使你不能寫代碼,但你起碼要懂得如何去「實現」。舉個例子,你要做一個grid控制項,首先,你應該清楚,到底有哪幾種數據格式,以及其存儲方式:既可以通過html的mark來獲取數據,亦可以通過json對 象或array,又或者是xml甚至於字元串。其次,你要知道在server端實現和在client端實現到底哪個更適合當前的環境。這些都要依靠過硬對 技術和豐富的經驗,不懂技術的ui設計師,既做不出合理的設計,也不可能和開發人員做到有效的溝通。簡言之,ui設計師起碼要精通主流的表現層開發技術 (如果是做web表現層,一般需要精通html、css、java script 、xml技術,甚至jsp、java也要達到工作層),對於市面主流的設計 模式,技術路線以及開源框架都要有足夠的了解。可以說,ui設計師在技術素質能力方面,要盡可能的朝著「表現層架構師」的方向去努力。 3、圖形設計能力和原型開發:ui設計師一生中從事的最多的工作應該就是圖形和 原型設計,那麼,首先說說什麼是原型設計。原型法是迭代式開發中設計階段常用的手段,原型設計應該貫穿需求、概要設計和詳細設計這三個階段。開發原型的目 的是,把設計轉為用戶可以看懂的「界面語言」,同時也對開發人員起到一定的指導作用(甚至可以作為開發的一部分)。用戶界面原型更顯示的價值體現就是,它可以幫助軟體設計人員提早發現設計各個階段的缺陷,在開發前解決這些潛在的問題,大幅降低軟體開發的風險和成本。這與傳統的瀑布式開發有了本質的區別,目前國內大多數公司仍然採用的是瀑布式開發方式,並且將ui設計放在開發階段的後期來進行。這不僅使ui設計師無法充分發揮自己所長,只能做做「美化工作」 亡羊補牢,更使得開發出的產品往往存在致命的設計缺陷而無法滿足客戶需求。所以,各公司中的「美工」是軟體開發方法的落後和不完善早就的,而非「美工」或 ui設計師這個職業本身。我們再來說一下圖形設計能力,其實,ui設計師只是個泛稱,在ui設計行業內部,還大致分為以下幾種角色:可用性和交互設計師、 視覺企劃、用戶體驗研究人員、圖形用戶界面設計師等。大家通常理解的ui設計師,其實是gui設計師(例如國內的rokey,他就是一名非常優秀的gui 設計師,目前供職於microsoft),gui設計師的主要工作就是視覺定位以及創作。稍後的章節會詳細介紹gui設計師的職責以及日常工作。如果ui 設計師不具備過硬的圖形創作能力,那麼,他根本無法表達他心目中的美,也就無從談起「交流」了。圖形設計能力,是每一名ui設計師最初具備的,最基礎的能力。也是最能夠衡量一名ui設計師能力水平的部分。
4、人因學理論和認知心理學:這個概念雖然有些大,但卻是每一名ui設計師在事業穩固後畢生都要努力去探索的領域、可以說,設計的根本就是「人」,做人本 的界面,自然需要了解人,了解人的行為。例如,你不可能設計這樣一個界面,在同一時間同一個界面上的不同位置顯示兩條重要的提示信息——因為,人,在同一 時間的關注點只能由一個,這是生理決定的,而不是某個人的主觀臆斷。再舉個例子,為什麼windows每次一次版本升級或多或少都會找到以前的影子,你可 能會說,這是microsoft的設計風格。不,那不是風格,而是一種習慣,以前是microsoft的習慣,現在,你用了windows,那麼,你也有 了這種習慣。apple和microsoft的操作系統孰優孰劣?答丅案是,隨你喜歡。是啊,多麼簡單的一個道理——喜歡,喜歡是一種習慣,你又如何能篤 定你認為的「正確」的設計恰好是人們所喜歡的呢?這里可以稍帶提一下extjs,ext的風格,簡言之,就是桌面應用的傳統交互風格(wmip),而web的風格是什麼?如果要我來說,我更傾向於web是一本翻開的雜志,一片展現設計師才華的熱土,為什麼這樣說呢?因為web的不確定和開放性。以我的經驗而言,webui設計,是所有軟體ui設計領域中最困難的,也是限制最多的(往往這些限制還存在不確定性),一名優秀的 webui設計師,即使轉而做桌面程序ui設計或移動設備界面設計,也是相對比較容易成功的。因此,作為webui設計師,排斥桌面ui風格是可以理解的,正是源自於他的習慣,他的「喜歡」。 5、具備高層次的審美能力,空間思維能力,邏輯能力以及一定的文學修養,保持一顆年輕的心,不要掉入自己挖的模式里,創意永不枯竭。 至此,大家應該大概了解了什麼是ui設計和ui設計師這兩個名字的內在含義。關於「美工」的問題,也應該有了自己的結論,我就不再做解釋了。再說一個題外 話:ui設計師在我目前供職的公司的職位體系中是比較高的技術職位,相當於高級軟體工程師,需要有3年以上行業經驗方能勝任;而資深ui設計師是與軟體設 計師平級的,他們共同的上層職位是架構師。這跟某些公司所招收的「美工」是有很大區別的。 給大家點信心,看看國內UI設計師的前景 UI設計在中國的現狀 目前在國內UI還是一個相對陌生的詞,即便是洛可可設計也在UI設計的道路上不斷探索客戶及用戶的需求。我們經常看到一些招聘廣告寫著:招聘界面美工、界 面美術設計師等等。這表明在國內對UI的理解還停留在美術設計方面,認為UI的工作只是描邊畫線,缺乏對用戶交互的重要性的理解;另一方面在軟體開發過程 中還存在重技術而不重應用的現象。許多商家認為軟體產品的核心是技術,而UI僅僅是次要的輔助,這點在人員的比例與待遇上可以表現出來。 但這不是UI設計真正的價值體現,只是UI設計發展的一個必經過程。我們以物質產品手機行業為例,手機剛剛進入市場的時候不但價格貴的驚人,而且除了通 話以外沒有什麼其他功能。由於當時的主導是技術,所以大家都把精力放在信號、待機時間、壽命等方面,對於產品的造型,使用的合理性很少關心。事過境遷,如 今技術已經完全的達到用戶的需求,於是商家為了創造賣點,提高爭力,非常重視產品的外觀設計,除此之外還頻頻推出簡訊,彩屏,和鉉,彩信,攝像頭等等。這 樣一來產品的美觀、個性、易用、易學、人性化等等都成了產品的賣點。軟體產品與物質產品的發展是相同的。過去由於計算機硬體的限制,編碼設計成為軟體開發 的代名詞,美觀親和的圖形化界面與合理易用的交互方式都沒有得到充分的重視,實際上這個時期的軟體叫作軟體程序,而不是軟體產品。 現今隨著計算機硬體的飛速發展,過去的軟體程序已經不能適應用戶的要求。軟體產品在激烈的市場競爭中,僅僅有強大的功能是遠遠不夠的,不足以戰勝強勁的對 手。幸運的是在國內一些高瞻遠矚的民族企業已經開始意識到UI給軟體產品帶來的巨大賣點了,例如金山公司的影霸、詞霸、毒霸、網標,由於重視UI的開發與 地位,才使得金山產品在同類軟體產品中首屈一指。聯想軟體的UI部門積極開展用戶研究與使用性測試,將易用與美觀相結合,推出的雙模式電腦、幸福系列等成 功UI範例,為聯想贏得全球消費 PC第三的稱號等等、等等.實踐證明,各商家要在產品美觀和易用設計方面很小投入,將會有很大產出。其投入產出比,要比在功能領先性開發上的投入大得多。 我們不得不承認現階段中國在很多領域都與西方發達國家有相當大的差距,如何趕上並超過他們是我們這代人肩負的歷史使命。軟體產品領域不象物質產品那樣存在 工藝、材料上的限制,軟體產品核心問題就是人。提高軟體UI設計師個人能力減小人員上的差距是中國UI發展首要關鍵的問題。目前國內各院校還沒有設立相對健全的UI設計專業,所以提高UI設計師能力關鍵在於提供一個良好的學習與交流的資源環境。國內已經有很多交流設計網站,介紹工業設計、平面設計、服裝設計、繪畫藝術、多媒體flash等,但是UI設計一直沒有受到應有的關注,僅僅被放在數碼設計或者平面網頁設計的一個欄目里,這僅有的資源對培養優秀的設計師是不夠的,必須有一個信息快捷、資源豐富、設計水平一流、專業權威的UI設計學習與交流的地方才能適應日益發展的UI 設計師們的需求。
⑷ uiautomationviewer怎麼啟動
1.你的第一個UIAutomation測試腳本UIAutomation的功能測試代碼是用Javascript編寫的。UIAutomation和Accessibility有著直接的關系,你將用到通過標簽和值的訪問性來獲得UI元素,同時完成相應的交互操作。下面讓我們來編寫我們的第一段測試代碼。使用iOS模擬器1.下載示例應用程序TestAutomation.xcodeproj,並打開它。這個項目是一個很簡單的包含2個tab的tabbar應用程序。2.確保選中如下圖所示的「TestAutomation>iPhone5.0Simulator」模式(或許你已經切換成5.1了,因此它可能是iPhone5.1模擬器)。3.啟動Instruments(Proct>Profile),或者通過⌘I。4.選擇左邊的iOSSimulator,然後再選擇Automation模板,然後點擊「Profile」。5.Instruments就已經啟動好後,然後直接開始錄制了。這里先停止錄制,(紅包按鈕或者⌘R)。6.在左邊的Scripts窗口,點擊「Add>Create」創建新的腳本。7.在腳本編輯器里,輸入下面的代碼vartarget=UIATarget.localTarget();varapp=target.frontMostApp();varwindow=app.mainWindow();target.logElementTree();clip_image007[4]8.重新運行這段腳本⌘R(不需要保存)。腳本跑起來後,你可以在日誌打完後停止它。clip_image009[4]贊一個!我們就這樣完成了我們的第一個UIAutomation測試用例。使用iOS設備你除了將你的測試用例運行模擬器上,也可以將它運行在一個真實的設備上。不過,自動化測試用例只能運行在支持多任務的:iPhone3GS,iPad,iOS>4.0等設備上。遺憾的是不管iPhone3G的系統版本是什麼,都不支持。下面是如何操作:1.通過USB介面連接上你的iPhone。2.選擇「TestAutomation>iOSDevice」模式。3.確保Developperprofile設置成Release模式(而不是Ad-HocDistributionprofile)。默認情況下,profiling是設置成Release模式的(因為沒有必要將profile設置成Debug模式)。4.啟動測試5.後面的步驟請參考前面模擬器部分。2.處理UIAElement和元素可訪問性(Accessibility)UIAElement層次結構Accessibility和UIAutomation有密切的聯系:如果一個控制項的Accessibility是可以被訪問的,你就可以設置和讀取它的值,作相關的操作,而當一個控制項的Accessibility不可見時,你就沒有法通過automation訪問它。你可以通過InterfaceBuilder,或者通過在程序里設置isAccessibilityElement屬性的方式來設置一個控制項的Accessibility或者可被自動化。當你設置containerview(即:一個視圖包含其它的UIKit元素)的accessibility時,你必須注意。你設置了整個View的accessibility將會「隱藏」它的子視圖的accessibility,例如:在示例項目中,你不能將outlet視圖設置成可訪問的,否則它所有的子控制項將都不可以訪問了。在任何時候,logElementTree都是你忠實的朋友:它將當前界面的所有可被訪問的元素都列印在日誌里。每一個可以被訪問的UIKit控制項都可以用一個Javascript對象來描述,它就是一個UIAElement。UIAElement有幾個屬性:name,value,elements,parent。你的主窗口包含很多的控制項,它們是以UIKit層次的方式定義的,這些UIKit層次結構對應的是UIAElement的層次樹。例如:前面的測試代碼中,通過調用logElementTree,我們可以得到如下面所示的樹結構:+-UIATarget:name:iPhoneSimulatorrect:{{0,0},{320,480}}|+-UIAApplication:name:TestAutomationrect:{{0,20},{320,460}}||+-UIAWindow:rect:{{0,0},{320,480}}|||+-UIAStaticText:name:FirstViewvalue:FirstViewrect:{{54,52},{212,43}}|||+-UIATextField:name:UserTextvalue:TapSomeTextHere!rect:{{20,179},{280,31}}|||+-UIAStaticText:name:Thetextis:value:Thetextis:rect:{{20,231},{112,21}}|||+-UIAStaticText:value:rect:{{145,231},{155,21}}|||+-UIATabBar:rect:{{0,431},{320,49}}||||+-UIAImage:rect:{{0,431},{320,49}}||||+-UIAButton:name:Firstvalue:1rect:{{2,432},{156,48}}||||+-UIAButton:name:Secondrect:{{162,432},{156,48}}clip_image001[6]你可以通過下面的代碼來訪問文本框:vartextField=UIATarget.localTarget().frontMostApp().mainWindow().textFields()[0];你可以選擇通過從0開始的索引或者這個元素的名稱來訪問這個元素,例如:你也可以通過下面的代碼來訪問文本控制項。vartextField=UIATarget.localTarget().frontMostApp().mainWindow().textFields()["UserText"];後一種方式更加清晰明了,應該多使用。你可以通過InterfaceBuilder設置UIAElement的name屬性,clip_image002[6]或者通過編寫代碼的方式:myTextField.accessibilityEnabled=YES;myTextField.accessibilityLabel=@"UserText";你現在可以看到,通過accessibility屬性可以被UIAutomation用來找到不同的控制項。這非常的清晰,因為,第一,你只要學習一個測試框架;第二,通過編寫自動化測試代碼,你同時還可以保證你的程序是可以被訪問的。因此,每一個UIAElement對象的子控制項可以通過下面的方法進行訪問:buttons(),images(),scrollViews(),textFields(),webViews(),segmentedControls(),sliders(),staticTexts(),switches(),tabBar(),tableViews(),textViews(),toolbar(),toolbars()等等……你可以通過如下代碼在tabbar上訪問第一個tab:vartabBar=UIATarget.localTarget().frontMostApp().tabBar();vartabButton=tabBar.buttons()["First"];UIAElement結構層次非常的重要,你以後會常常用到它。而且你還要記住,你可以在隨時通過調用UIAAplication的logElementTree來獲得它的結構。UIATarget.localTarget().frontMostApp().logElementTree();在模擬器上,你還可以激活Accessibility的檢測器。啟動模擬器,找到「Settings>General>Accessibility>AccessibilityInspector」,然後將它設為「打開」狀態。這個彩色的小框框就是Accessibility檢測器了。當它來的時候,Accessibility就被關閉了,當它的時候,Accessibility就是打開的。你只要點擊上面的箭頭按鈕就可以激活或者屏蔽Accessibility。現在,打開我們的示常式序,激活檢測器。然後,點擊文本框,檢查UIAElement的name和value屬性(其實就是accessibilityLabel和accessibilityValue對應的NSObject類型的值)。這個檢測器可以幫助你調試和編寫你的測試代碼。模擬用戶操作讓我們更進一步,模擬一些用戶的交互操作。你可以簡單地調用按鈕的tap()來作一個點擊操作:vartabBar=UIATarget.localTarget().frontMostApp().tabBar();vartabButton=tabBar.buttons()["First"];//Tapthetabbar!tabButton.tap();你還可以調用UIAButtons的doubleTap(),twoFingerTap()。如果你不想操作具體的某個元素,你也可以直接根據屏幕上指定的坐標點進行操作,你可以這么用:UIATarget.localTarget().tap({x:100,y:200});UIATarget.localTarget().doubleTap({x:100,y:200});UIATarget.localTarget().twoFingerTap({x:100,y:200});UIATarget.localTarget().pinchOpenFromToForDuration({x:20,y:200},{x:300,y:200},2);UIATarget.localTarget().pinchCloseFromToForDuration({x:20,y:200},{x:300,y:200},2);拖拽與劃動:UIATarget.localTarget().dragFromToForDuration({x:160,y:200},{x:160,y:400},1);UIATarget.localTarget().flickFromTo({x:160,y:200},{x:160,y:400});注意,當你指定操作的時間間隔的時候,它是有特定的范圍的,即:拖拽操作的時間間隔必須大於或者等於0.5秒,小於60秒。現在,讓我們來練習一下:停止Instruments(⌘R)在Scripts窗口裡,移除當前的腳本點擊「Add>Import」然後選擇TestAutomation/TestUI/Test-1.js(將下面的代碼保存到這個路徑)點擊錄制按鈕(⌘R)然後看看將會發生什麼…下面是Test-1.js代碼:vartestName="Test1";vartarget=UIATarget.localTarget();varapp=target.frontMostApp();varwindow=app.mainWindow();UIALogger.logStart(testName);app.logElementTree();//--selecttheelementsUIALogger.logMessage("Selectthefirsttab");vartabBar=app.tabBar();varselectedTabName=tabBar.selectedButton().name();if(selectedTabName!="First"){tabBar.buttons()["First"].tap();}//--taponthetextfielsUIALogger.logMessage("Taponthetextfieldnow");varrecipeName="UnusuallyLongNameforaRecipe";window.textFields()[0].setValue(recipeName);target.delay(2);//--taponthetextfielsUIALogger.logMessage("Dismissthekeyboard");app.logElementTree();app.keyboard().buttons()["return"].tap();vartextValue=window.staticTexts()["RecipeName"].value();if(textValue===recipeName){UIALogger.logPass(testName);}else{UIALogger.logFail(testName);}這段腳本先啟動待測程序,然後,如果第一個tab沒有被選的話就切換到第一個tab,並將上面的文本框的值設成「UnusuallyLongNameforaRecipe」,接著虛擬鍵盤。這里有一些新的方法值得注意的:UIATarget的delay(NumbertimeInterval)方法允許你在兩個操作之間做一些等待,UIALogger的logMessage(Stringmessage)方法用來將你想列印的信息輸出到日誌上去,UIALogger的logPass(Stringmessage)方法指明你的測試腳本已經成功的完成測試了。你還知道了如何訪問鍵盤上的按鈕,然後作點擊操作:app.keyboard().buttons()["return"].tap();
⑸ 2019最好用的自動化測試工具Top 10,果斷收藏
這個時候總是無奈的說:
你應該學習Python 或是Java
你應該掌握Selenium
又或者你需要學會jmeter,嗯,可能LoadRunner你應該學習
也許SoapUI是個不錯的選擇,或者你可是試試PostMan
......
其實這些都不是我真正的答案,我想說:只專注於一種編程語言或一種工具可能限制你的發揮,尤其可能限制了你在工作中提供的價值。如果你提供的價值在逐步退化,那麼你的舞台可能突然謝幕,你的職業停滯不前,受到限制。
所以,什麼最重要?當然是能力了!
下面我就介紹下2019最好用的10個自動化測試工具,希望可以充實你的知識庫,打開你的職業發展舞台!
在自動化測試領域,自動化工具的核心地位毋庸置疑。我總結了最頂尖的自動化測試工具,這些工具可以幫助組織更好地定位自己,跟上軟體測試的趨勢。這份清單包含了開源和商業的自動化測試解決方案。
Selenium:WebUI自動化測試
Selenium是網頁應用中最流行的開源自動化測試框架。起源於2000年,10多年來不斷地完善,Selenium成為許多Web自動化測試人員的選擇,尤其是那些有高級編程和腳本技能的人。Selenium也成為了其他開源自動化測試工具比如Katalon Studio,Watir,Protractor和Robot Framework的核心框架。
Selenium 支持多系統環境(Windows,Mac,Linux)以及多種瀏覽器(Chrome,FireFox,IE以及無頭瀏覽器(沒有界面))。它的腳本可以由各種各樣的編程語言編寫,比如 Java,Groovy,Python,C#,PHP,Ruby 以及 Perl。
因為Selenium的靈活性,測試人員可以寫各種復雜的、高級的測試腳本來應對各種復雜的問題,它需要高級的編程技能和付出來構建滿足自己需求的自動化測試框架和庫。
Appium:APP UI自動化測試
Appium是一個移動端自動化測試開源工具,支持iOS和Android平台,支持Python、Java等語言,即同一套Java或Python腳本可以同時運行在iOS和Android平台,Appium 是一個C/S架構,核心是一個Web伺服器,它提供了一套REST的介面。當收到客戶端的連接後,就會監聽到命令,然後在移動設備上執行這些命令,最後將執行結果放在HTTP響應中返還給客戶端。
Jmeter:介面測試,性能測試
JMeter是一個開源的Java桌面應用程序,主要用於web應用程序的負載測試。它還支持單元測試和有限的功能測試。
它有很多好的特性,比如動態報告、可移植性、強大的測試IDE等,並且支持不同類型的應用程序、協議、shell腳本、Java對象和資料庫。
Postman:介面測試
Postman 提供功能強大的Web API和HTTP請求的調試,它能夠發送任何類型的HTTP請求 (GET, POST, PUT, DELETE…),並且能附帶任何數量的參數和Headers。不僅如此,它還提供測試數據和環境配置數據的導入導出,付費的Post Cloud用戶還能夠創建自己的 Team Library用來團隊協作式的測試,並能夠將自己的測試收藏夾和用例數據分享給團隊。
SoapUI:介面測試
SoapUI是一個非常流行的用於SOAP和REST的開源API測試自動化框架。它還支持功能測試、性能測試、數據驅動測試和測試報告。
Monkey:穩定性測試
軟體附帶在sdk中,適用於android和ios,通過adb shell,生成用戶或系統的偽隨機事件。壓力測試結果:崩潰crash,無響應anr,基本命令:adb shell monkey 1000。
Robot Framework:Web UI自動化測試,介面測試
Robot Framework是一個開源自動化框架,它實現了用於驗收測試和驗收測試驅動開發(ATDD)的關鍵字驅動方法。Robot Framework為不同的測試自動化需求提供框架。但是,通過使用Python和Java實現其他測試庫,可以進一步擴展其測試功能。Selenium WebDriver是Robot Framework中常用的外部庫。
測試工程師可以利用Robot Framework作為自動化框架,不僅可以進行Web測試,還可以用於Android和iOS測試自動化。對於熟悉關鍵字驅動測試的測試人員,可以輕松學習Robot Framework。
QTP:Web UI自動化測試
QTP是一種自動測試工具。使用 QTP 的目的是想用它來執行重復的手動測試,主要是用於回歸測試和測試同一軟體的新版本。因此你在測試前要考慮好如何對應用程序進行測試,例如要測試那些功能、操作步驟、輸入數據和期望的輸出數據等。
QTP針對的是GUI應用程序,包括傳統的Windows應用程序,以及現在越來越流行的Web應用。它可以覆蓋絕大多數的軟體開發技術,簡單高效,並具備測試用例可重用的特點。其中包括:創建測試、插入檢查點、檢驗數據、增強測試、運行測試、分析結果和維護測試等方面。
LoadRunner:性能測試
LoadRunner,是一種預測系統行為和性能的負載測試工具。通過以模擬上千萬用戶實施並發負載及實時性能監測的方式來確認和查找問題,LoadRunner能夠對整個企業架構進行測試。
企業使用LoadRunner能最大限度地縮短測試時間,優化性能和加速應用系統的發布周期。LoadRunner可適用於各種體系架構的自動負載測試,能預測系統行為並評估系統性能。
Jenkins:持續集成
自動化構建編譯,部署,任務執行,測試報告,郵件通知等。
使用開源測試工具有很多好處,尤其是無直接的購買成本,而且可定製,但也有一定的局限性。尤其是缺乏專業的技術支持,有限的許可支持以及腳本維護有時會成為一個挑戰性的工作。
為了選擇正確的自動化測試工具,你應該確保該工具是處於活躍維護狀態的,並且與你所在企業業務、團隊、技能匹配,並且是團隊里有相應的專家。
因此在選擇工具之前,你必須仔細研究,以便該工具能夠滿足你的測需求,並且能幫助你更好的執行測試。
⑹ 軟體測試開發工程師 應該學習什麼
一個有競爭力的測試人員要具有下面三個方面的素質:
計算機專業技能
計算機領域的專業技能是測試工程師應該必備的一項素質,是做好測試工作的前提條件。盡管沒有任何IT背景的人也可以從事測試工作,但是一名要想獲得更大發展空間或者持久競爭力的測試工程師,則計算機專業技能是必不可少的。計算機專業技能主要包含三個方面:
測試專業技能
現在軟體測試已經成為一個很有潛力的專業。要想成為一名優秀的測試工程師,首先應該具有扎實的專業基礎,這也是本書的編寫目的之一。因此,測試工程師應該努力學習測試專業知識,告別簡單的「點擊」之類的測試工作,讓測試工作以自己的專業知識為依託。
測試專業知識很多,本書內容主要以測試人員應該掌握的基礎專業技能為主。測試專業技能涉及的范圍很廣:既包括黑盒測試、白盒測試、測試用例設計等基礎測試技術,也包括單元測試、功能測試、集成測試、系統測試、性能測試等測試方法,還包括基礎的測試流程管理、缺陷管理、自動化測試技術等知識。
軟體編程技能
「測試人員是否需要編程?」可以說是測試人員最常提出的問題之一。實際上,由於在我國開發人員待遇普遍高於測試人員,因此能寫代碼的幾乎都去做開發了,而很多人則是因為做不了開發或者不能從事其它工作才「被迫」從事測試工作。最終的結果則是很多測試人員只能從事相對簡單的功能測試,能力強一點的則可以藉助測試工具進行簡單的自動化測試(主要錄制、修改、回放測試腳本)。
軟體編程技能實際應該是測試人員的必備技能之一,在微軟,很多測試人員都擁有多年的開發經驗。因此,測試人員要想得到較好的職業發展,必須能夠編寫程序。只有能給編寫程序,才可以勝任諸如單元測試、集成測試、性能測試等難度較大的測試工作。
此外,對軟體測試人員的編程技能要求也有別於開發人員:測試人員編寫的程序應著眼於運行正確,同時兼顧高效率,尤其體現在與性能測試相關的測試代碼編寫上。因此測試人員要具備一定的演算法設計能力。依據作者的經驗,測試工程師至少應該掌握Java、C#、C++之類的一門語言以及相應的開發工具。
網路、操作系統、資料庫、中間件等知識:
與開發人員相比,測試人員掌握的知識具有「博而不精」的特點,「藝多不壓身」是個非常形象的比喻。由於測試中經常需要配置、調試各種測試環境,而且在性能測試中還要對各種系統平台進行分析與調優,因此測試人員需要掌握更多網路、操作系統、資料庫等知識。
在網路方面,測試人員應該掌握基本的網路協議以及網路工作原理,尤其要掌握一些網路環境的配置,這些都是測試工作中經常遇到的知識。
操作系統和中間件方面,應該掌握基本的使用以及安裝、配置等。例如很多應用系統都是基於Unix、linux來運行的,這就要求測試人員掌握基本的操作命令以及相關的工具軟體。而WebLogic、Websphere等中間件的安裝、配置很多時候也需要掌握一些。
資料庫知識則是更應該掌握技能,現在的應用系統幾乎離不開資料庫。因此不但要掌握基本的安裝、配置,還要掌握sql。測試人員至少應該掌握Mysql、MS Sqlserver、Oracle等常見資料庫的使用。
作為一名測試人員,盡管不能精通所有的知識,但要想做好測試工作,應該盡可能地去學習更多的與測試工作相關的知識
軟體測試工程師-IT就業新亮點,
根據有關職位統計資料顯示,在國外大多數軟體公司,1個軟體開發工程師就需要輔有2個軟體測試工程師。目前,軟體測試自動化技術在我國則剛剛被少數業內專家所認知,而這方面的專業技術人員在國內更是鳳毛麟角。根據對近期網路招聘IT人才情況的了解,許多正在招聘軟體測試工程師的企業很少能夠在招聘會上順利招到合適的人才。
隨著中國IT行業的發展,產品的質量控制與質量管理正逐漸成為企業生存與發展的核心。從軟體、硬體到系統集成,幾乎每個中大型IT企業的產品在發布前都需要大量的質量控制、測試和文檔工作,而這些工作必須依靠擁有嫻熟技術的專業軟體人才來完成。而軟體測試工程師就是其中之一。
據了解,由於軟體測試工程師處於重要崗位,所以必須具有電子、電機類相關專業知識背景,並且還應有兩年以上的實際操作經驗。他們應熟悉中國和國際軟體測試標准,熟練掌握和操作國際流行的系列軟體測試工具,能夠承擔比較復雜的軟體分析、測試、品質管理等任務,並能獨立擔任測試、品質管理部門的負責人。一般情況,軟體測試工程師可分為測試工程師、高級測試工程師和資深測試工程師三個等級。
在具體工作過程中,測試工程師的工作是利用測試工具按照測試方案和流程對產品進行功能和性能測試,甚至根據需要編寫不同的測試工具,設計和維護測試系統,對測試方案可能出現的問題進行分析和評估。對軟體測試工程師而言,必須具有高度的工作責任心和自信心。任何嚴格的測試必須是一種實事求是的測試,因為它關繫到一個產品的質量問題,而測試工程師則是產品出貨前的把關人,所以,沒有專業的技術水準是無法勝任這項工作的。同時,由於測試工作一般由多個測試工程師共同完成,並且測試部門一般要與其他部門的人員進行較多的溝通,所以要求測試工程師不但要有較強的技術能力而且要有較強的溝通能力。
⑺ 怎樣開始入門學習軟體測試
初級階段
初級階段需要掌握四個方面的內容:
一、軟體測試的基礎知識,編寫測試用例的方法及測試流程
二、掌握禪道、SVN等必要工具,及缺陷定義和測試計劃編寫方法
三、web測試與app測試的方式方法與協議
四、介面測試postman工具的操作使用,前端基礎知識H5及CSS
中級階段
中級階段需要掌握六個方面的內容,從中級開始就是涉及到一些工具的使用
一、QTP自動化工具的環境搭建
二、loadrunner性能工具的環境搭建
三、jmeter性能工具的環境搭建及介面壓力測試
四、jmeter腳本增強,app/web性能測試
五、fiddler抓包工具的操作使用、Jenkins自動化部署工具
六、資料庫MySQL、SQL語句
高級階段
高級階段逆序喲啊具備一些分析和洞察力,如下:
一、業務分析能力
1.分析整體業務流程
不了解整個公司的業務,根本就沒辦法進行測試
2.分析被測業務數據
了解整個業務裡面所需的數據有哪些?哪些是需要用戶提供的?哪些是自己提供的?有哪些可以是假數據?有哪些必須是真數據?添加數據的時候可以用哪個庫?
明白了整個軟體的資料庫架構,才能知道哪一個數據是從哪一個表裡頭帶出來的,它的邏輯是什麼,有沒有連帶關系。
3.分析被測系統架構
用什麼語言開發的?用的是什麼伺服器?測試它的話需要用什麼樣的環境進行測試?整體的測試環境是什麼樣的?
如果缺少了,需要進行環境搭建,架構搭建。一般去一家新公司之後,架構是搭建好的,了解它即可,熟悉之前的這些老員工們使用什麼樣的架構發表去做的。
4.分析被測業務模塊
整個軟體有哪些模塊,比如說首頁面、注冊頁面、登錄頁面、會員頁面、商品詳情頁面、優惠券頁面等等
明白有多少個模塊需要測試,每個模塊之間的連帶關系,進而怎樣進行人員分工
5.分析測試所需資源
我需要幾台計算機,需要幾部手機,手機需要什麼樣的系統,什麼樣的型號。
比如測一個網站的性能的時候,電腦的配置達不到測試並發5000人的標准,要麼升級電腦的硬體配置,要麼多機聯合,多機聯合時需要幾台電腦,都需要提前籌劃。
6.分析測試完成目標
我的性能目標是什麼樣的?我的功能目標是什麼樣的?我要上線達到的上線標準是什麼樣的?性能目標,比如我要達到並發5000人的時候,CPU佔用率不能高於70%,內存佔用率不能高於60%,響應時間不能超過5秒功能目標,比如整體的業務流程都跑通,所有的分支流程都沒有問題,所有的介面都能夠互相調用,整體的UI界面沒有問題,兼容性沒有問題等
把這些問題都弄清楚,測試的思路會非常的清晰
⑻ 軟體測試用例怎麼寫才能更全面,才不會亂
你好,可以參考:
測試也很累的喔,還有你可以找找:史上最全測試用例設計方法
一、界面規范
1.是否整個軟體的欄位的字體、大小、顏色、排列一致
2.是否整個軟體的欄位後都有冒號(如果有,是否都屬於同一種字體)
二、用例編寫粒度准則
1.對於不作為一個完整業務流的操作,如增、刪、改等,每個操作(比如增加)作為一個用例。
2.對於完整的業務功能實現的操作,把實現一個業務功能的目的作為一個用例。
3.對於緊密關聯的業務功能,把關聯的業務功能實現作為一個用例。
4.對於異常情況下的操作,作為一個用例。
5.對於在異常情況下的操作的數據處理,作為一個用例。
⑼ 軟體測試難嗎,一般多久可以學會
軟體測試在IT技術行業里算是難度較小,尤其是功能測試階段,對代碼要求很低,但如果想有個好的發展,還是需要好好學習。具體的難度也是因人而異,基礎不同,專業不同學起來有快有慢,但是只要努力一般4-6個月都能夠學的會。
軟體測試課程:基礎部分包括前置基礎(DOS命令、HTML、CSS等)、Linux和資料庫(操作系統、MySQL高級、Redis資料庫等)、功能測試(測試用例設計、Web項目、APP項目測試等);中級部分包括Python編程(Python開發環境、面向對象、異常處理等)、Web自動化(Web自動化入門/基礎/高級、Unittest框架等)、移動自動化(Appium、常用API、Pytest等);高級部分包括介面自動化(JMeter、requests、mock等)、性能測試(測試方案、Vugen、Analysis等)、單元測試和shell編程(測試流程、測試報告、shell等)。
學習軟體測試推薦選擇達內教育,作為國內IT培訓的領導品牌,達內的每一名員工都以「幫助每一個學員成就夢想」為己任,為廣大學子提供更多IT行業高薪機會,同時也為中國IT行業的發展做出了巨大的貢獻。
想了解更多有關軟體測試的相關信息,推薦咨詢達內教育。達內教育集團歷時一年,耗資千萬,重磅推出「因材施教、分級培優」創新教學模式,同一課程方向,面向不同受眾群體,提供就業、培優、才高三個級別教學課程,達內「因材施教、分級培優「差異化教學模式,讓每一位來達內學習的學員都能找到適合自己的課程。