本周学习了《构建之法》第七章——软件测试,软件测试的内容在软件生命周期中应该是占有十分重要的地位。描述一种用来促进鉴定软件的正确性、完整性、安全性和质量的过程。换句话说,软件测试是一种实际输出与预期输之间的审核或者比较过程。软件测试的经典定义是:在规定的条件下对程序进行操作,以发现程序错误,衡量软件质量,并对其是否能满足设计要求进行评估的过程。
软件行业开始迅猛发展,软件的规模变的非常大,在一些大型软件开发过程中,测试活动需要花费大量的时间和成本,而当时测试的手段几乎完全都是手工测试,测试的效率非常低;并且随着软件复杂度的提高,出现了很多通过手工方式无法完成测试的情况,尽管在一些大型软件的开发过程中,人们尝试编写了一些小程序来辅助测试,但是这还是不能满足大多数软件项目的统一需要。于是,很多测试实践者开始尝试开发商业的测试工具来支持测试,辅助测试人员完成某一类型或某一领域内的测试工作,而测试工具逐渐盛行起来。人们普遍意识到,工具不仅仅是有用的,而且要对今天的软件系统进行充分的测试,工具是必不可少的。测试工具可以进行部分的测试设计、实现、执行和比较的工作。通过运用测试工具,可以达到提高测试效率的目的。
从基本名词开始解释:Bug——软件的缺陷;TestCase——测试用例,测试用例描述了一个一个完整的测试过程,包括测试环境,输入,期望的结果等 Test Suite——测试用例集。,BUg可分为:症状,程序错误,根本原因。
各种测试方法:
1.单元测试和代码覆盖率测试
2.构建验证测试
构建系统自动运行一套测试,验证系统的基本功能,如果构建验证测试不能通过,那么自动测试框架会针对每一个失败的测试自动生成一个BUG。
3.验收测试
4.“探索式”测试
5.回归测试
6.场景/集成/系统测试
7.伙伴测试
8.效能测试
包括:设计负载,令用户满意的服务质量
9.压力测试
测试有没有严重的副作用或崩溃,考虑两个方面:沿着用户轴延长,沿着时间轴延长
10. 内部/外部公开测试
11.易用性测试