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