测试是一个必须品,手机出厂前要测试,电脑出厂前要测试,显示器出厂前要做测试,任何东西都离不开测试,测试不是为了发现未知的问题,而是避免可能出现的问题。 因为从事与软件工作,所以以软件开发角色来描述测试这个事情。又因为测试的工作非常繁多,所以也只会说下我目前用到或觉得有意思的。
概念篇
单元测试
又称模块测试,即把程序中的功能划分成最小单元来测试。当然,常见的可能是接口功能测试,比如:获取用户权限服务,获取用户信息服务,获取是否出错,内容是否符合预期。基本上,所有测试跑下来没问题的,线上一般就不会出现本该可以避免的故障,而不会说,开发人员改了某个东西,结果影响到了其它地方而不自知。
前端测试
单元测试基本和前端无缘了,小部分关键业务可以加下,所有的都加上成本太高,因为前端业务变化太频繁了。
回归测试
测试界面是否与预期一致。有自动截图然后分析图像差异的,也有对比 dom 差异的。
功能测试
显示正常不代表功能正常,尤其是目前 SPA 应用大行其道的时候。这里就需要用到 Chrome-headless
无界面浏览器来做测试啦, 直接执行测试代码,模拟用户点击或操作,当然这个东西也是可以生成截图的。最最最后,还有人工测试,虽然成本较高,但这还是最有效的办法。
参考
https://zh.wikipedia.org/wiki/%E5%8D%95%E5%85%83%E6%B5%8B%E8%AF%95
http://fex.baidu.com/blog/2015/07/front-end-test/
实用篇
Jest
JS 测试工具,facebook 出品。
// sum.js
function sum(a, b) {
return a + b;
}
module.exports = sum;
// sum.test.js
const sum = require('./sum');
test('adds 1 + 2 to equal 3', () => {
expect(sum(1, 2)).toBe(3);
});