1.1测试的定义以及在整体项目过程中各阶段的任务
一、定义
使用人工和自动手段来运行或测试某个系统的过程,其目的在于检验它是否满足规定的需求或弄清预期结果与实际结果之间的差别。
简单的说,如果你写了一端代码,我来帮你查看代码并找出里面的错误,这就是测试。
软件测试的目的在于发现错误;一个好的测试用例在于发现从前未发现的错误;一个成功的测试是发现了从前未发现的错误的测试。
1.2、常见导致错误的根源
(1) 缺乏有效的沟通,或者没有进行沟通:软件开发人员之间要经常进行有效的沟通。
(2) 软件复杂度:图形化界面,客户/服务器和分布式的应用,数据通信,大规模的关系数据库,应用程序的规模等都增加了软件的复杂度。
(3) 编程错误:语法错误,语义错误,拼写错误,编程规范错误等。
(4) 不断变更的需求
(5) 时间的压力
(6) 缺乏文档的代码
(7) 软件开发工具本身隐藏的问题
(8) 人员的自大
1.3软件测试的目的
从历史的观点来看。测试关注于执行软件来获得软件在可用性方面的信心并且证明软件能够满意地工作。这引导测试把重点投入在检测和排除缺陷上。现代的软件测试持续了这个观点。证明,检测和预防已经成为一个良好的测试的重要目标。
1.4软件测试中的误区
(1) 测试与调试一样的:两者有着根本的区别。
(2) 测试组应当为保证质量负责:只有当每个人在开发的每个阶段始终为他们的工作产品质量负责时,产品才能变得更好,更便宜。
(3) 过分依赖Beta测试。
(4) 把测试作为新员工的一个过度工作。
(5) 把不合格的开发人员安排做测试。
(6) 关注测试的执行而忽略测试的设计。
(7) 测试自动化是万能的:测试自动化可以提高测试的效率,但不能提高测试的质量。
(8) 测试是可以穷尽的:测试不可能发现所有的错误。
(9) 测试是为了证明软件的正确性:测试无法证明软件是正确的,只能证明软件是否可以按照既定的规格和标准执行。
(10) 测试是枯燥乏味,缺乏创造力的工作:一个好的测试需要经过计划,设计到执行。