常開發(fā)中,程序員可能對 Bug 并不陌生,如果僅僅依賴測試人員給出反饋,無疑隔靴撓癢。
一、軟件測試類型都有哪些?
1.按測試策略分類:
2.按測試階段分類:
3.其他常見測試方法:
二、Web 服務器指標
Web 服務器指標是衡量一個網(wǎng)站性能是否達標的準則。其實我們并不陌生,很多網(wǎng)站性能監(jiān)控系統(tǒng)都會包含如下的這些指標:
1.Avg Rps: 平均每秒鐘響應次數(shù)=總請求時間 / 秒數(shù);
2.Successful Rounds:成功的請求;
3.Failed Rounds :失敗的請求;
4.Successful Hits :成功的點擊次數(shù);
5.Failed Hits :失敗的點擊次數(shù);
6.Hits Per Second :每秒點擊次數(shù);
7.Successful Hits Per Second :每秒成功的點擊次數(shù);
8.Failed Hits Per Second :每秒失敗的點擊次數(shù);
9.Attempted Connections :嘗試鏈接數(shù)。
三、QA 和測試的區(qū)別
而測試通過一系列活動,給 QA 人員提供盡可能有效的信息和數(shù)據(jù),是他們能夠發(fā)現(xiàn)過程上的異?;蛘咧贫壬系牟煌字帯?/p>
1.共同之處:
QA 和測試的目的一樣,都是盡可能的保證最終發(fā)布的產(chǎn)品更符合客戶的需求,盡可能的沒有 bug。
2.不同之處:
QA 關(guān)注的是整個軟件過程,測試人員則是通過設計、執(zhí)行用例等方法去發(fā)現(xiàn)錯誤,關(guān)注的是最終質(zhì)量。
四、什么是冒煙測試?
冒煙測試是對軟件的基本功能進行測試,測試的對象是每一個新編譯的需要正式測試的軟件版本。
可以進行后續(xù)的正式測試工作,如果最基本的測試都有問題,那么其他測試也就沒辦法進行。
五、在頻繁的版本發(fā)布中,如何回歸測試?
這恐怕是比較常見的一個問題,作為開發(fā),我們緊張的迭代后,會有很多的需求提測,那么測試人員是如何去做的呢?
自動回歸測試將大幅降低系統(tǒng)測試、維護升級等階段的成本。
回歸測試作為軟件生命周期的一個組成部分,在整個軟件測試過程中占有很大的工作量比重,
在漸進和快速迭代開發(fā)中,新版本的連續(xù)發(fā)布使回歸測試進行的更加頻繁,而在極端編程方法中,更是要求每天都進行若干次回歸測試。
因此,通過選擇正確的回歸測試策略來改進回歸測試的效率和有效性是非常有意義的。
1.回歸測試是指重復以前的全部或部分的相同測試。
2.新加入測試的模組,可能對其他模組產(chǎn)生副作用,故須進行某些程度的回歸測試。
3.回歸測試的重心,以關(guān)鍵性模組為核心。
六、手工測試與自動測試有哪些區(qū)別?
1.手工測試是傳統(tǒng)的測試方法,由測試人員手工編寫測試用例。
缺點在于測試工作量大,重復多,回歸測試難以實現(xiàn);
2.自動化測試利用軟件測試工具自動實現(xiàn)全部或者部分測試工作:管理、設計、執(zhí)行和報告,自動化測試節(jié)省大量的測試開銷,并能夠完成一些手工測試無法實現(xiàn)的測試。
自動化測試是對手工測試的一種補充,自動化測試不可能完全替代手工測試,因為很多數(shù)據(jù)的正確性、界面是否美觀、業(yè)務邏輯的滿足程度等都離不開測試人員的人工判斷。
而僅僅依賴手工測試的話,則會讓測試過于低效,尤其是回歸測試的重復工作量對測試人員造成了巨大的壓力。
七、性能測試工作
1.負載測試
負載測試是一種性能測試指數(shù)在超負荷環(huán)境中運行,程序是否能夠承擔。通過在被測系統(tǒng)上不斷增加壓力,直到性能指標達到極限。
2.強度測試
強度測試是一種性能測試,他在系統(tǒng)資源特別低的情況下軟件系統(tǒng)運行情況。主要是為了檢查程序?qū)Ξ惓G闆r的抵抗能力。
3.容量測試
確定系統(tǒng)可處理同時在線的最大用戶數(shù)??梢钥醋飨到y(tǒng)性能指標中一個特定環(huán)境下的一個特定性能指標,即設定的界限或極限值。
在網(wǎng)站流量逐漸加大的情況下,開始考慮做性能測試了,首先要寫好性能測試計劃,根據(jù)運營數(shù)據(jù)得出流量最大的頁面(如果是第一次的話,一般是首頁,下載頁,個人帳戶頁流量最大,而且以某種百分比)。
八、什么是α測試,β測試?
α、β、λ 常用來表示軟件測試過程中的三個階段:
1.α 是第一階段,一般只供內(nèi)部測試使用,在開發(fā)小組內(nèi)部進行,測試的方法也較多,黑盒、白盒、 壓力、應力等等;
2.β 是第二個階段,已經(jīng)消除了軟件中大部分的不完善之處,但仍有可能還存在缺陷和漏洞,一般只提供給特定的用戶群來測試使用;
3.λ 是第三個階段,此時產(chǎn)品已經(jīng)相當成熟,只需在個別地方再做進一步的優(yōu)化處理即可上市發(fā)行。
九、關(guān)于自動化測試工具
1.功能測試工具:QTP;
2.性能測試工具:LoadRunner;
3.測試管理工具:QC Mantis 缺陷跟蹤工具。
十、原創(chuàng)熱門文章推薦
1.究竟什么是位圖?
2.HTML5 之音頻合成(Speech Synthesis)
3.Web 安全之 CSP(Content Security Policy)
1. 數(shù)據(jù)建模工具
DataFactory是一種強大的數(shù)據(jù)產(chǎn)生器,它允許開發(fā)人員和QA很容易產(chǎn)生百萬行有意義的正確的測試數(shù)據(jù)庫,該工具支持DB2、Oracle、 Sybase、SQL Server數(shù)據(jù)庫,支持ODBC連接方式,無法直接使用MySQL數(shù)據(jù)庫,可間接支持。
2. 腳本開發(fā)工具
(1) 若考慮腳本運行效率,則可考慮底開發(fā)語言C或支持異步通信的語言JS,我們可以分別選擇:Loadrunner 或 Node.js的IDE環(huán)境進行開發(fā)。
(2) 若考慮腳本開發(fā)效率,則可考慮代碼復用性,可以選擇面向?qū)ο笳Z言C#或Java,為此我們可以分別選擇:VS2008及以上版本 +對應LR.NET控件 或者 Eclipse4.0及以上版本 + JDK1.7及以上版本。
3. 壓力模擬工具
(1) 若為Java類接口且單機并發(fā)數(shù)控制在500內(nèi),則可選擇Jmeter或者 Loadrunner。
(2) 若為WebService類接口且單機并發(fā)數(shù)控制在500內(nèi),則可選擇SoapUI或者Loadrunner。
(3) 若單機并發(fā)數(shù)超過500且控制在5000內(nèi),則可選擇Loadrunner。
(4) 若單機并發(fā)數(shù)超過5000,則建議采用負載集群,即采用“中控(Control Center)+ 多機部署(LoadGenerator)”方案。
4. 性能監(jiān)控工具
4.1 監(jiān)控工具
無論Windows或Linux
平臺,一般存在的是一個或一組進程實例,我們可以選擇Loadrunner 或 Nmon 來監(jiān)控。有時為了獲取被測應用的一些特性指標,可以選擇被測組件自帶的性能工具集或監(jiān)控系統(tǒng)。常見應用服務器監(jiān)控工具推薦如下:
4.2 監(jiān)控平臺
監(jiān)控機器主要對被測集群服務器的服務或資源使用情況進行監(jiān)控,比如各種開源的監(jiān)控工具,MRTG:流量監(jiān)控;CACTI:流量預警,性能報告Smokeping:IDC 質(zhì)量監(jiān)控;綜合監(jiān)控:Nagios、Zenoss、Ganglia 、Zabbix、Sitescope、Hyperic HQ 等,如下所示:
4.3 第三方監(jiān)控云服務(APM)
APM提供端到端應用性能管理軟件及應用性能監(jiān)控軟件解決方案,包含移動,瀏覽器,應用,基礎設施,網(wǎng)絡,數(shù)據(jù)庫性能管理等,支持Java、.NET、PHP
、Ruby、Python
、Node.js、iOS
、Android
、HTML5
等應用性能監(jiān)控管理,主流云服務包括聽云、OneAPM等,如下所示:
性能測試結(jié)果分析
1. 指標分析
性能測試的指標可分為產(chǎn)品指標和資源指標兩類。對測試人員而言,性能測試的需求來自于用戶、開發(fā)、運維的三方面。用戶和開發(fā)關(guān)注的是與業(yè)務需求相關(guān)的產(chǎn)品指標,運維人員關(guān)注的是與硬件消耗相關(guān)的資源指標。
(1) 從用戶角度關(guān)注的指標
用戶關(guān)注的是單次業(yè)務相關(guān)的體驗效果,譬如一次操作的響應快慢、一次請求是否成功、一次連接是否失敗等,反映單次業(yè)務相關(guān)的指標包括:
a.成功率b.失敗率c.響應時間
(2) 從開發(fā)角度關(guān)注的指標
開發(fā)人員更關(guān)注的是系統(tǒng)層面的指標。
a.容量:系統(tǒng)能夠承載的最大用戶訪問量是多少?系統(tǒng)最大的業(yè)務處理量是多少?
b.穩(wěn)定性:系統(tǒng)是否支持7*24小時(一周)的業(yè)務訪問。
(3) 從運維角度關(guān)注的指標
運維人員更關(guān)注的是硬件資源的消耗情況。
以上說明了測試人員在選擇指標時需站在用戶角度去思考,另外為了后續(xù)能夠更好地分析問題,更需掌握與被測組件特性或運行原理相關(guān)的性能指標。
舉例來說,通常接口系統(tǒng)均會直接或間接地訪問數(shù)據(jù)庫層介質(zhì)(如Mysql、Oracle、SQLServer等),此時我們需考慮由接口系統(tǒng)產(chǎn)生壓力下存儲介質(zhì)的性能情況,通常我們會選擇分析指標如下:
(1) 連接數(shù)(Connections)
(2) 每秒查詢數(shù)/每秒事務數(shù)(QPS/TPS)
(3) 每秒磁盤IO數(shù)(IOPS)
(4) 緩存命中率(Buffer Hits)
(5) 每秒發(fā)生的死鎖數(shù)(Dead Locks/sec)
(6) 每秒讀/寫字節(jié)數(shù)(Read/Write Bytes/sec)
2. 建模分析
2.1 理發(fā)店模型
圖中展示的是1個標準的軟件性能模型。在圖中有三條曲線,分別表示資源的利用情況(Utilization,包括硬件資源和軟件資源)、吞吐量(Throughput,這里是指每秒事務數(shù))以及響應時間(Response Time)。圖中坐標軸的橫軸從左到右表現(xiàn)了并發(fā)用戶數(shù)(Number of Concurrent Users)的不斷增長。
在這張圖中我們可以看到,最開始,隨著并發(fā)用戶數(shù)的增長,資源占用率和吞吐量會相應的增長,但是響應時間的變化不大;不過當并發(fā)用戶數(shù)增長到一定程度后,資源占用達到飽和,吞吐量增長明顯放緩甚至停止增長,而響應時間卻進一步延長。如果并發(fā)用戶數(shù)繼續(xù)增長,你會發(fā)現(xiàn)軟硬件資源占用繼續(xù)維持在飽和狀態(tài),但是吞吐量開始下降,響應時間明顯的超出了用戶可接受的范圍,并且最終導致用戶放棄了這次請求甚至離開。
根據(jù)這種性能表現(xiàn),圖中劃分了三個區(qū)域,分別是Light Load(較輕的壓力)、Heavy Load(較重的壓力)和Buckle Zone(用戶無法忍受并放棄請求)。在Light Load和Heavy Load 兩個區(qū)域交界處的并發(fā)用戶數(shù),我們稱為“最佳并發(fā)用戶數(shù)(The Optimum Number of Concurrent Users)”,而Heavy Load和Buckle Zone兩個區(qū)域交界處的并發(fā)用戶數(shù)則稱為“最大并發(fā)用戶數(shù)(The Maximum Number of Concurrent Users)”。
當系統(tǒng)的負載等于最佳并發(fā)用戶數(shù)時,系統(tǒng)的整體效率最高,沒有資源被浪費,用戶也不需要等待;當系統(tǒng)負載處于最佳并發(fā)用戶數(shù)和最大并發(fā)用戶數(shù)之間時,系統(tǒng)可以繼續(xù)工作,但是用戶的等待時間延長,滿意度開始降低,并且如果負載一直持續(xù),將最終會導致有些用戶無法忍受而放棄;而當系統(tǒng)負載大于最大并發(fā)用戶數(shù)時,將注定會導致某些用戶無法忍受超長的響應時間而放棄。所以我們應該保證最佳并發(fā)用戶數(shù)要大于系統(tǒng)的平均負載。
2.2 壓力變化模型
隨著單位時間流量的不斷增長,被測系統(tǒng)的壓力不斷增大,服務器資源會不斷被消耗,TPS 值會因為這些因素而發(fā)生變化,而且符合一定的規(guī)律。
圖中:
a 點:性能期望值
b 點:高于期望,系統(tǒng)資源處于臨界點
c 點:高于期望,拐點
d 點:超過負載,系統(tǒng)崩潰
2.3 容量計算模型
以一網(wǎng)站性能測試為案例:
1. 通過分析運營數(shù)據(jù),可以知道當前系統(tǒng)每小時處理的PV數(shù)
2. 通過負載測試,可以知道系統(tǒng)每小時最大處理的PV數(shù)
即整理得
系統(tǒng)每小時PV處理剩余量=系統(tǒng)每小時最大處理的PV數(shù) — 系統(tǒng)每小時處理的PV數(shù)
假設該網(wǎng)站用戶負載基本呈線性增長,現(xiàn)有系統(tǒng)用戶數(shù)為70萬,根據(jù)運營推廣計劃,1年內(nèi)該網(wǎng)站發(fā)展用戶將達到1000萬,即增長了14倍。即整理得:
系統(tǒng)每小時PV處理增加量=當前系統(tǒng)每小時處理的PV數(shù) * 14 — 當前系統(tǒng)每小時處理的PV數(shù)
每天系統(tǒng)負載增加率=100% / 365=2.74 % (備注:此處將未來系統(tǒng)用戶數(shù)達到1000萬的負載定義為 100% )
系統(tǒng)每天PV處理增加量=系統(tǒng)每小時PV處理增加量 * 每天系統(tǒng)負載增加率 * 24
所以,我們可以知道在正常負載條件下:
系統(tǒng)可支持正常運行天數(shù)=系統(tǒng)每小時PV處理剩余量 * 24 / 系統(tǒng)每天PV處理增加量
假設該網(wǎng)站后續(xù)部署升級天數(shù)已知,這樣我們可以知道提前升級的天數(shù):
系統(tǒng)可支持正常運行天數(shù) — 部署升級天數(shù)。
性能測試通過標準
1. 所有計劃的測試已經(jīng)完成。
2. 所有計劃收集的性能數(shù)據(jù)已經(jīng)獲得。
3. 所有性能瓶頸得到改善并達到設計要求。
個APP的正常上線運行,必須要經(jīng)過開發(fā)測試的環(huán)節(jié),而APP的開發(fā)測試,包括6大部分:服務器的選擇、常用工具的選擇、服務類API、開發(fā)者服務、測試工具、開發(fā)學習。每一部分都要保證絕對的合格。
下面,我們了解分析一下怎么完成APP開發(fā)的測試。
1.APP服務器
app server的前身是middleware(中間件),歷史要長的多。早在上世紀六七十年代就已經(jīng)開始在IBM大型機系統(tǒng)上廣泛應用了,叫做TP Monitor,比較著名的是BEA的Tuxedo和IBM的CICS,運行在Terminal/Server模式的Server端,其功能主要是分離商業(yè)邏輯,進行分布式計算的,可以自動管理事務、資源和容錯等等。因為發(fā)展的時間很長,所以技術(shù)非常成熟。middleware最早是用cobol編寫的,現(xiàn)在還可以偶爾看到cobol的中間件的舊系統(tǒng),再后來middleware改用C++來實現(xiàn),著名中間件的有IBM的CICS,BEA的Tuexdo,仍然廣泛的應用在高端系統(tǒng)中,特別是銀行系統(tǒng)。
然而在面向?qū)ο蟮募夹g(shù)出現(xiàn)和廣泛的應用之后,TP Monitor由于不是面向?qū)ο蟮?,而是面向過程的調(diào)用,因此TP Monitor管理的商業(yè)邏輯并沒有分布式對象系統(tǒng)中的商業(yè)組件那樣的可擴展性、可重用性,表現(xiàn)出來很大的局限。
不過像PHP這樣主要還是面向過程調(diào)用的函數(shù)式的語言來說,TP Monitor仍然可以支持的非常完美,由于有了TP Monitor的支持,PHP也可以應用在企業(yè)的環(huán)境中了。
2.常用工具
appMobi
可以讓開發(fā)人員創(chuàng)建、模擬和測試PhoneGap項目。該工具是一個集成開發(fā)環(huán)境(IDE),提供了用于創(chuàng)建HTML5和PhoneGap應用的全套開發(fā)工具。
Visual Studio
它包括了整個軟件生命周期中所需要的大部分工具,如UML工具、代碼管控工具、集成開發(fā)環(huán)境(IDE)等等。所寫的目標代碼適用于微軟支持的所有平臺,包括Microsoft Windows、Windows Mobile、Windows CE、.NET Framework、.NET Compact Framework和Microsoft Silverlight 及Windows Phone。
支持跨平臺移動開發(fā)、 web 和云開發(fā)、 IDE 生產(chǎn)力增強
Sublime Text
Sublime Text 是一個代碼編輯器(Sublime Text 2是收費軟件,但可以無限期試用),也是HTML和散文先進的文本編輯器。
Sublime Text具有漂亮的用戶界面和強大的功能,例如代碼縮略圖,Python的插件,代碼段等。還可自定義鍵綁定,菜單和工具欄。Sublime Text 的主要功能包括:拼寫檢查,書簽,完整的 Python API , Goto 功能,即時項目切換,多選擇,多窗口等等。
3.服務類AIP
API 全稱Application Programming Interface,即應用程序編程接口,是一些預先定義的函數(shù),目的是提供應用程序與開發(fā)人員基于某軟件或硬件得以訪問一組例程的能力,而又無需訪問源碼,或理解內(nèi)部工作機制的細節(jié)。
API除了有"應用程序接口"的意思外,還特指 API的說明文檔,也稱為幫助文檔。
API類型眾多,分為電信類,地圖類,電商類,微博類,應用類,還有服務類
服務類API主要有:
氣象數(shù)據(jù)開放平臺,騰訊電商開放平臺,豆瓣開發(fā)者,淘寶開放平臺,聚合數(shù)據(jù)等。
4.開發(fā)者服務
開發(fā)者服務,提供包括統(tǒng)計、推送服務、廣告平臺、云主機、云存儲、云測試、云加速、語音平臺等各類開發(fā)者服務。
5.測試工具
制作一個APP的過程中一定是要經(jīng)過無數(shù)次的測試的,這種情況下我們就可以選擇一些工具避免一些不必要的重復性動作。如:
常用的軟件測試工具一般是:QTP+LoadRunner+QC
軟件測試中還需的工具如下:
功能測試工具:QTP(HP),WinRunner(MI),Robort(IBM),QARun(Compuware)
性能測試工具:LoadRunner(HP),WAS(MS),Robort(IBM)【必須下載相應的插件才支持性能方面的測試】,QALoad(Compuware)
測試管理工具:TestDirector/Quarlity Center【這兩個工具一個橫版一個豎版,功能完全一樣】,Rational TestManager
缺陷跟蹤工具:Bugzilla、Mantis
其他:Rational Purify、Rational PureCoverager
廣州安和技術(shù)APP開發(fā)公司是專業(yè)移動應用技術(shù)提供商,致力于移動整體解決方案的策劃、設計、開發(fā)、發(fā)布 、如果你想擁有一款自己的APP應用,通過官網(wǎng)上的在線客服聯(lián)系我們。
——本文由安和科技http://www.apphit.cn/發(fā)布
*請認真填寫需求信息,我們會在24小時內(nèi)與您取得聯(lián)系。