1. 单元测试
目的:单元测试能让开发者明确知道代码结果。
原则:单一职责,接口抽象,层次分离。
断言库:保证最小单元是否正常运行检测方法。
测试风格:TDD(Test-Driver Development)测试驱动客服,BDD(Behavior-Driver Development)行为驱动开发,这俩种方式都是敏捷开发的方法论。
TDD:关注所有的功能是否被实现(每一个功能都必须有对应的测试用例)suit配合test利用assert。
BDD:关注整体行为是否符合整体预期,编写的每一行代码都有一个完整的测试用例。
测试框架: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
基准测试
(1)面向切面编程AOP无侵入统计;
(2)Benchmark基准测试方法;
2.压力测试
对网络接口做压力测试需要检测的几个指标有吞吐率,响应时间,和并发数,这些指标反应了服务器的并发能力。
pv网站当日访问人数,uv独立访问人数,QPS=PV/t;
常用的压力测试工具:ab, siege, http_load
3.安全测试
XSS SQL CSRF
4.用户真实性检查
(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;
网友评论