根據需求編寫測試用例,用自動和手動兩種方式進行用例執行,目的驗證明際運行結果與預期結果是否一致,不一致,提交缺陷報告。前端
多:發現儘可能多的bug,幫助評估軟件質量,下降退貨風險,但不能提高軟件質量。linux
早:儘早發現bug,下降修復成本。web
預防:分析統計以往項目bug,找到緣由,並提出解決方案,預防缺陷在新項目中的再次發生。算法
(軟件測試只能證實軟件存在錯誤,不能保證軟件沒有錯誤,不可能找出所有軟件錯誤軟件質量的提升要靠軟件項目團隊全體成員的共同努力sql
)chrome
需求分析、編寫測試計劃、用例設計、執行用例、缺陷報告、迴歸測試、測試報告、用戶體驗數據庫
功能測試、性能測試、可靠性測試、安全測試、配置測試、GUI測試、備份測試、文檔測試、在線幫助測試、易用性測試等等編程
單元測試、集成測試、系統測試、Alpha測試、Beta測試、驗收測試 還有迴歸測試後端
1、驗收測試瀏覽器
分類 |
測試過程 |
參與對象 |
測試目的 |
測試流程不一樣 |
成本不一樣 |
針對軟件產品 |
α測試 |
由公司指定的用戶進行測試 |
獲取用戶體驗 |
由公司制定環境,指定用戶參與 ‚用戶發現問題反饋給開發或測試 ƒ問題要進行修復 |
給客戶付費 |
β測試 |
全部潛在用戶的自主測試 |
提前佔領市場 |
由潛在客戶自主安排進行軟件的試用 ‚發現問題發聵客服 ƒ問題不必定修復 |
不付費 |
|
針對項目 |
驗收測試 |
具體的用戶或客戶表明,相關行業專家 |
爲了儘早收回餘款 |
客戶贊成驗收 ‚公司組織人員進行驗收準備 Ⅰ準備相關文檔(安裝程序、操做手冊、幫助手冊、測試報告等) Ⅱ肯定相關驗收人員(主持人、演示人、答辯小組) Ⅲ搭建驗收環境 ƒ召開驗收會議 Ⅰ由主持人宣讀流程 Ⅱ由演示人進行演示 Ⅲ由答辯小組回答專家和用戶的提問 Ⅳ專家和用戶給出評審結果 |
|
徹底迴歸 |
時間多,每次迴歸所有的測試用例 |
不徹底迴歸 |
最後要上線了,時間有限,選擇性迴歸 |
選擇性迴歸 |
覆蓋修改法:哪一個錯了就回歸哪一個用例,適合於不相關聯的用例,優勢:省時;缺點:不安全 |
周邊影響:除了執行缺陷用例外,還執行與該缺陷相關的用例 |
|
每次迴歸執行了多少個用例,適合成熟,有經驗的項目 |
按照不一樣的測試對象進行劃分
一、第一類:是否可見代碼
(1)黑盒:依據SRS,只關注輸入和輸出,對軟件功能,不考慮內部結構
(2)白盒:對代碼進行測試(源程序代碼、內部結構算法、溢出、路徑等)
(3)灰盒:對模塊接口進行測試
2、第二類:是否依賴工具
(1)人工
(2)自動:節約人力,測試效率高
3、第三類:是否斷定程序運行
(1)靜態測試:不運行程序自己,分析或檢查程序的語法、結構等
(2)動態測試:有運行結果,運行被測程序,檢查運行結果與預期結果的差別
等價類、邊界值、斷定表、正交實驗、輸入域覆蓋、流程分析、功能矩陣、狀態遷移圖、因果圖法、異常分析法
一、需求轉化法:(產品人員或需求方說的任何一句話,收集到的信息,做爲測試用例在軟件上實施,看是否符合寫的說的)
二、等價類邊界值:等價類(抽樣,相同的輸入狀況,
三、表明性數據),邊界值(容許輸入範圍的邊界)
四、錯誤推斷法:bug預防,把以前出現的問題總結
五、因果圖法:經過不一樣條件的組合,推斷結果
六、正交試驗:不一樣條件的組合過於海量,抽取一些典型因素狀態,最小組合(元素、狀態)
七、場景實驗法:基於對產品的使用經驗
八、探索式測試:測試策略:全部頁面作便利,UI和兼容性
全部輸入字段是否能作輸入判斷正常工做
全部字段默認不讀寫作保存,是否有問題
全部操做1+1重複操做
九、邏輯測試:基於技術文檔設計測試用例
十、猜想法:(利用經驗作用例覆蓋)
好的測試用例:
一、覆蓋場景
二、寫的粗略(要點,描述測試目的)
三、深刻理解需求
內容包括:概述、測試策略(方法)、測試術語的定義、測試人員的分工、測試進度、測試流程、測試工具、測試缺陷管理(測試經過/失敗標準;掛起恢復條件)
測試項目負責人、測試經理將測試周期與風險提供給測試項目負責人,由測試項目負責人收集後製定具體的計劃,整個開發中後期
包含元素:總體測試目標(測什麼東西,何時完成測試,保證上線)
測試範圍:歷史已開發,新增模塊界定
測試內容:大模塊-小模塊(測試參與者),明確責任
測試環境:測試數聽說明
非功能測試:是否要作安全測試,基於安全規範,用安全工具掃描
性能測試(穩定性測試,測試工具說明)
週期:倒退方式,上線後用多長時間跟蹤
時間安排:一輪:
二輪:
三輪:
截止上線日期:
風險:總體預防,風險應對,性能調優遇到困難
SVN文檔地址,代碼地址
測試參考文檔
簡單說就是怎麼測試被測試對象
由測試架構師或項目負責人編寫,對整個測試工做進行梳理以及全局定義
方式一:產品人員評審
方式二:技術評審,文檔評審
可得到被測試對象全面信息
例如作UI功能測試
一、模塊劃分:拆成小模塊(基於小模塊定義測試方法,由誰測試)
二、搭建測試環境:生產環境,測試環境
三、測試數據:配置參數、被測系統用戶數、業務數據
四、測試工具:選型、使用方法、使用策略(購買、開源、自定義)
五、測試框架:
1)安裝:全新安裝、覆蓋安裝、卸載以後重複安裝;卸載;更新
2)系統兼容性測試
3)跟軟件的衝突測試(瀏覽器工具欄的競爭)
4)網絡安全(是否發送加密信息,是否使用https協議)
5)跟病毒防火牆的衝突測試(會不會有防病毒讓見把功能屏蔽)
6)UI功能
7)基於架構非功能測試
六、服務器端測試:接口層和緩存層
方向:
1)功能測試:測接口、緩存機制正確性(根據接口定義文檔、詳細設計、概要設計)
2)容錯性測試:錯誤提示或返回
3)性能測試:大併發處理
4)穩定性測試:7×24小時,不間斷服務,高併發關注內存、資源泄漏,不會由於長時間運行致使系統崩潰
1)內容:序號 缺陷ID 測試用例ID 發現日期 測試者 缺陷描述 重現缺陷操做 缺陷嚴重程度 狀態 版本號 缺陷解決方法 修改日期 解決人&解決日期 驗證人&驗證日期
2)缺陷狀態:新建NEW、已分配OPEN、已修復FIXED、已關閉CLOSED、再打開REOPEN、延遲postpone、放棄abandon、重複duplicate、拒絕rejected
3)缺陷嚴重程度:
致命(致使系統沒法關閉、死機)
嚴重(彈出系統級別錯誤)
通常(結果不正確、沒法完成指定功能)
輕微(界面、易用、顯示)
建議(這樣處理更好)
4)缺陷跟蹤流程:
①開發提交新版本給測試
②測試按照測試用例執行程序
③若是程序運行結果與用例的預期結果不一致提交bug報告
④對缺陷進行分配
⑤發開對bug進行修復
⑥將修復好的軟件設置成新版本提交給測試進行迴歸
⑦修復成功關閉缺陷,未修復成功打開缺陷轉到⑤將bug報告從新提交給開發再次修復。
反應測試工做的投入和產出、對軟件總體質量進行評估。
內容:
①測試計劃裏規定完成的內容
②測試總體資源投入狀況和實際完成狀況
③測試環境說明(在什麼環境下測的)
④所用的測試策略(方法)有哪些
⑤發現了哪些bug(走勢(預期提交時間)、版本、模塊、嚴重級別、狀態分佈、缺陷迴歸質量)
⑥目前軟件質量狀態評估
⑦測試建議和意見
1、安裝卸載更新
1、安裝
1)安裝包大小
2)權限提示(APP會讀取聯繫人打電話的權限)
3)安裝後的容量
4)安裝後的目錄
5)安裝後的功能正常使用
6)產生的文件(用戶用不到,系統用到)
7)後臺運行模式,仍是僅是用戶啓動時運行
2、卸載
1)臨時文件是否刪除乾淨
3、更新
1)全部文件都能被替換
2)不一樣的版本都能被更新成功
2、流量測試
設置代理端,代理軟件獲取流量消耗,經過竟品分析
3、電量測試
安裝在手機的測試電量的APP(powertuiter),安卓5.0以上手機進程消耗電量顯示
4、兼容性
屏幕大小、分辨率、主流機型適配
5、安全性
利用工具,對代碼掃描,代碼混淆,增長黑客破解的複雜性,數字簽名是否能夠被其餘公司作第三方使用(大公司禁止2次簽名)
6、異常測試
使用APP時,有打電話,推送、短信,藍牙
橫豎屏切換
先後臺切換運行模式
運行時殺進程,APP是否會崩潰,數據丟失,以及再啓動出現的問題
7、APP功能測試
1、全部字段作輸入判斷
2、在不一樣界面跳轉
3、全部界面都要有返回鍵
8、穩定性測試
長時間使用CPU和內存的佔用
用MONKEY自動化測試工具,隨機事件運行5萬次左右
一、分辨率(不一樣分辨率,網頁顯示的效果)
二、瀏覽器兼容性(360、IE、firefox、獵豹、chrome)
三、提示信息規範(產品經理出列表)(英文空格數字、口語化等)
四、錯誤信息屏蔽(正式發佈上線後,贊成錯誤提示頁面)
五、提交(重複提交)
六、輸入判斷(防止跨站攻擊)
七、全部數據庫鏈接作釋放(系統百頁、重啓、數據庫滿了沒作釋放)
八、用戶名和密碼的緩存(http-nocash屬性,密碼加密)
九、日誌級別(上線前確認日誌級別,詳細日誌,對於海量用戶,簡略日誌,日誌佔服務器空間,影響性能)
概念:根據產品執行測試策略完成測試工做
一、局部探索式測試:更專一表單細節狀態
輸入框輸入判斷測試(整數、小數、分數、指數、非空、空、默認值)
二、全局探索式測試:專一用戶使用流程
一般指場景:如登錄-產品瀏覽-購買商品
不登錄-產品瀏覽-購買商品-結算
測試策略:
局部探索式測試:
一、輸入框、單選按鈕、下拉框、都要進行輸入判斷測試,驗證全部輸入控件
二、懶漢法:不輸入-直接保存
三、超模法:不作輸入,看全部界面是否顯示正確,只關注UI(頁面佈局、字體、顏色)
四、強迫症法:全部按鈕快速點擊提交兩次,重複提交相同的數據
五、深夜工做發:系統晚上會作的事情(備份、系統恢復等)
六、惡鄰法:某模塊出現大量bug,在此模塊作迴歸測試
七、破壞者法:輸入非法數據,看會不會報錯,根據報錯,引伸出系統安全級別錯誤,基於發生錯誤,再次進行更深層次測試
八、地標法:把全部看到的功能作覆蓋,不斷進行功能間跳轉
九、說明書法:用戶說明書、幫助手冊,驗證與幫助手冊描述是否一致
十、自由測試:隨機隨意的作一些測試
十一、遍歷法:把全部能看到的都點一遍
十二、數據跟蹤法:輸入一條數據,在全部系統中跟蹤數據的存儲和展示
1三、狀態遍歷法:如QQ狀態、離線、在線、隱身下的功能有什麼變化
1四、代碼路徑:根據代碼執行的分支邏輯,進行全部分支邏輯的覆蓋
全局探索式測試:
不一樣場景組合,替換,刪除,重複,會覆蓋更多的代碼路徑,發現邏輯問題
原則:模擬全部可能發生的狀況
形式:
一、純接口:resful框架(Representational State Transfer)表現層狀態轉化,基於HTTP的簡單動做(GET,POST,PUT,DELETE)來實現,根據服務器的接口文檔,提交制定服務器端的合法請求
二、Web-service:傳入xml服務器返回XML
三、Socket:給一個IP/單口創建鏈接,發送數據,服務器收到後返回
分層:
一、負載均衡服務器:負責分發請求,保證全部請求不會只落在少數服務器上,能把請求均勻的分在不一樣服務器上
二、應用服務器:把數據作簡單的處理,通常都是web服務器,Unix、Apache、Tomcat、JBoss
三、緩存層:大型後臺服務器端組成部分,提升訪問速度,內存層(不須要從硬盤讀取IO)
四、數據庫服務器:經過Mysql、Oracal存儲數據
測試:
一、功能測試:從接口層驗證服務器處理邏輯
二、容錯測試:1、大型架構中,有些服務器down機,是否會對總體服務形成影響2、發送錯誤數據
三、性能測試:負載測試:在什麼請求狀況下,達到最優處理性能
壓力測試:在什麼請求負載下,服務器出現大量錯誤
兩個指標:每秒處理事務個數,平均事務處理時間
四、穩定性測試:不會有資源泄漏(內存)
測試顆粒度:
一、純黑盒:僅在接口層(內部處理邏輯不復雜)
二、灰盒:如百度、獵豹,便利全部服務器核心邏輯、詳設概設都覆蓋
三、白盒:基於代碼覆蓋率
UI測試 :常常變化
接口測試:類、函數封裝,對外提供一個接口,相對穩定(輸入和返回內容基本不變)
單元測試:80%問題
接口:websevice 傳xml返回xml
本質:傳遞一些內容,返回一些內容
接口的功能測試:
一、功能:接口定義:傳123返回1230
二、容錯性測試:接口定義能傳123,結果傳ABC,是否返回錯誤碼之類
三、性能測試:壓力測試:應用調用,是否快速返回,短期的承受併發量
四、穩定性測試:7×24小時穩定服務
接口自動化測試框架:使用數據驅動框架來測試接口,數據與程序分離,不斷請求接口,驗證返回的數據是否符合接口文檔定義的規則
在不一樣請求狀況下,看被測系統總體表現,是否能符合設計預期
1、分類:
一、負載測試:系統能承載的最大併發訪問量
二、壓力測試:在什麼高併發訪問狀況下,系統會出現錯誤
三、穩定性測試:7×24小時長時間運行,系統會不會出現資源泄漏會不會死機,是否能7×24小時不間斷提供穩定服務
前端性能:打開頁面、頁面加載、文字、圖片、Flash等資源,調用JS,每一個調用或總體加載時間是否知足用戶需求
手機端:壓力測試(使用Monkey作隨機操做測APP自己)
工具:fildller、firebug,能夠看到每一個資源加載的速度以及腳本執行耗時
後端性能:一般指服務器端性能測試(高併發訪問)
原則:模擬全部可能發生的最極端狀況
性能測試指標:TPS:每秒處理事務個數
平均處理事務響應時間
水平擴展(是否支持,加硬件)
同一個局域網內,內網和外網網絡延遲不可控
硬件型號
軟硬件版本
各類參數
內容
硬件:什麼內存、CPU、硬盤、網卡
軟件:配置信息,中間件的配置參數,中間件版本
核心指標:平均每一個事務的處理時間和每秒處理事務個數
測試場景:全部和數據庫有關的操做
系統水平擴展測試
測試環境搭建:手冊:從新啓動方法、日誌更新方法
開發環境
測試環境:功能測試環境和性能測試環境
方案、加壓、記錄數據找到瓶頸,分析基本性能架構不合理性,找到明顯問題
瀑布模型、V模型(對系統架構產生影響,沒法控制,延期)
敏捷測試與開發模式(XP模式:更多協做、Skap:產品經理制定短時間目標)
提倡結對編程
小步快跑(每次定義功能明確,週期,變動排在下一週期)
使用大量自動化測試(集中在單元測試)
測試驅動開發:在沒開發以前實現測試用例
行爲驅動開發:用天然語言寫功能點,功能點對應測試用例
持續集成:自動把代碼取出,打包加密
強調人與人的溝通,不強調過分的文檔
持續集成自動化+重構(從新把功能相同的代碼重寫,支持新的須要變動)
①輸入:read 接受鍵盤輸入
②輸出:echo 命令的功能是在顯示器上顯示一段文字
Echo 「I’m linux」
Echo $name(取變量的值)
Echo 「I’m 」$name
③目錄:
查詢目錄 |
ls(不包含隱藏文件) |
ls-a所有文件(包含隱藏文件) |
|
ls-l顯示文件的詳細信息 |
|
建立目錄 |
mkdir |
刪除目錄 |
rmdir(只刪除空目錄) |
④文件:
Cp 源文件 目標文件 拷貝源文件到目標目錄 |
Mv 源文件 目的對象 mv./dir1/a./dir2/b (將dir1目錄下的a文件移動到dir2目錄下並重命名爲b) |
Rm 【參數】文件或目錄(多文件用空格分隔)rm -r./dir1( 刪除目錄dir1及其內容,有提示) rm -rf./dir1( 刪除目錄dir1及其內容,沒有提示) |
Vi 文件名 文件不存在則建立;文件存在,編輯文件;編輯界面:插入信息:i鍵或insert鍵 返回參看:ESC鍵 保存:「w」 退出:未編輯退出:「q」;保存並退出:「wq」; 強制退出:「ql」 |
⑤包命令
tar
|
tar xvf*.tar 把*.tar文件解包 |
tar cvf*.tar目標目錄 把目標目錄打成.tar包 |
|
tar zxvf*.tar.gz 把.tar.gz 文件解包 |
|
tar zcvf*.tar.gz目標目錄 把目標目錄打成.tar.gz包 |
|
unzip |
Unzip*.zip |
⑥登陸與關機
切換用戶 |
su-root |
註銷 |
logout |
exit |
|
重啓 |
reboot |
Shutdown -r now 馬上重啓 |
|
Shutdown -r 11:30 等到11:30重啓 |
|
關機 |
Shutdown -h now 馬上關機 |
Shutdown -h 11:30 等到11:30關機 |
⑦網絡命令
查看主機名:hostname
查看ip:ifconfig
測試網絡 ping
設置ip netconfig
重啓網絡服務 service network restart
⑧改權限
chmod |
a 所有 u 全部者 g權限組 o其餘 |
r- 讀(4) w-寫(2)x-執行(1) |
|
Chmod -R 777 IF 改IF以及IF下全部文件 |
|
chown |
只修改文件全部人 |
chgrp |
只修改文件權限組 |
⑨linux的查看進程命令
動態顯示進程信息:top
顯示進程信息:
ps-ef |
-aux 查看詳細信息 |
查看某個進程 |
|
ps-ef|grep 進程id 查詢指定內容 |
⑩常見命令
#pwd查看當前文件在哪一個目錄下 |
#cd空/ 切換目錄 |
#ls 在當前目錄有什麼內容 |
#clear 清屏 |
#cd c(Tab)快捷 |
十一、
useradd添加用戶 eg:#useraddU1 #password U1 |
groupadd添加組 |
usermod修改 |
groupmod修改 |
Userdel 刪除 |
groupdel 刪除 |
12、計算機/裏文件夾(目錄)的意義
bin 放命令
sbin 放管理員才能執行的命令
etc linux裏最重要的目錄,全部配置信息
root 很特別的目錄,管理員目錄
usr和opt 裝軟件
Tmp 臨時文件夾,誰均可以在tmp裏建東西,但彼此不能夠刪除