1. 單元測試
目的:單元測試能讓開發(fā)者明確知道代碼結(jié)果。
原則:單一職責(zé),接口抽象,層次分離。
斷言庫:保證最小單元是否正常運(yùn)行檢測方法。
測試風(fēng)格:TDD(Test-Driver Development)測試驅(qū)動客服,BDD(Behavior-Driver Development)行為驅(qū)動開發(fā),這倆種方式都是敏捷開發(fā)的方法論。
TDD:關(guān)注所有的功能是否被實(shí)現(xiàn)(每一個功能都必須有對應(yīng)的測試用例)suit配合test利用assert。
BDD:關(guān)注整體行為是否符合整體預(yù)期,編寫的每一行代碼都有一個完整的測試用例。
測試框架:better-assert(TDD斷言庫); should.js(BDD斷言庫); expect.js(BDD斷言庫); chai.js(TDD, BDD雙模); Jasmine.js(BDD);
單元測試流程:
before ... beforeEach => it => after ... afterEach
自動化測試:
karma自動化runner集成PhantomJs無刷新。這是一個無界面的chrom。
npm install -g karma
npm install karma-cli --save-dev
npm install karma-chrome-launcher --save-dev
npm install karma-phantomjs-launcher --save-dev
npm install karma-mocha --save-dev
npm install karma-chai
npm install karma-coverage --save-dev
基準(zhǔn)測試
(1)面向切面編程AOP無侵入統(tǒng)計(jì);
(2)Benchmark基準(zhǔn)測試方法;
2.壓力測試
對網(wǎng)絡(luò)接口做壓力測試需要檢測的幾個指標(biāo)有吞吐率,響應(yīng)時間,和并發(fā)數(shù),這些指標(biāo)反應(yīng)了服務(wù)器的并發(fā)能力。
pv網(wǎng)站當(dāng)日訪問人數(shù),uv獨(dú)立訪問人數(shù),QPS=PV/t;
常用的壓力測試工具:ab, siege, http_load
3.安全測試
XSS SQL CSRF
4.用戶真實(shí)性檢查
(1)selenium? -webdriver(自動化測試工具)
(2)protractor selenium-standalone
(3)http://webdriver.io
(4)冒煙測試;
(5)回歸測試;
5. lint& hint
lint: http://www.jslint.com
hint: http://www.jshit.com
搭建自動化測試工具:grunt-jslint, grunt-jshint;