一、为什么需要软件测试
- 对于现在的用户来说,我们在使用软件时,不再仅仅只是关注当前软件的主体功能是否可用,还会对软件的外观、易用性、执行效率等方面都有考虑,因此就需要我们通过大量而全面的测试操作来促使软件变得更加完美
二、为什么选择软件测试
- 有些人喜欢创造世界,所以从事开发工作,我们想让这个世界变得更加完美,所以选择了软件测试
- 当前国内的软件行业对于专业的测试人员需求量非常大
三、为什么不让开发自己做测试
- 专业度
测试和开发属于软件行业不同的技术方向,每个方向都有自己的技术规范,让专人做专事,更加的合理 - 思维定式
一个软件的开发需要一定的时间周期,在这个周期内对于开发人员来说绝大多数的时间都是在思考具体的软件功能该如何实现,而不会去从用户的角度来出发,思考如何去使用这个功能 - 测试力度
相对于开发人员来讲,软件就相当于他们自己的孩子,所以“下手”的时候肯定不会那么重
注:不让开发自己做测试并不意味着开发人员不能做测试,当前行业里有很多测试人员之前就是开发
四、软件测试的定义
- 通过“手工”或“工具”对被测对象进行测试操作,从而验证实际结果与预期之间是否存在差异
五、软件测试的作用和目的
- 可以发现并修复软件中存在的缺陷,从而提高用户对软件的使用信心
- 可以记录软件使用过程中产生的一些数据,从而为决策者提供依据
- 可以降低同类型软件开发的风险
- 通过尽可能少的人力、财力、物力来查找并解决软件中存在的缺陷,从而降低商业风险等
六、测试原则
- 测试证明软件存在缺陷
测试工作只能证明当前软件是有缺陷而不能证明它没有缺陷 - 不能执行穷尽测试
具体的测试操作不可能将所有的情况都一一罗列出来,所以测试工作肯定有终止的时候 - 测试应当尽早介入
一般不要在开发完成之后才执行测试,这样不利于缺陷的尽早发现 - 缺陷存在集群现象
对于一款软件来说,核心功能只占20%,所以在测试时,我们会花更多时间去专门测试这些功能,因此它里面缺陷暴露的可能就会更大一些,称之为缺陷集群现象 - 某些测试操作依赖于特定的测试环境
- 杀虫剂现象
不要过多使用同一条测试案例来对软件进行问题查找,因为软件会产生“抗性” - 不存在缺陷的谬论
任何的软件不可能是完美的