一、什么是软件测试?
- 验证软件功能是否满足用户的需求。
在了解了软件测试之后,我对于软件测试有了更多的认识,它也有很多的分类,所从事的工作也有很多,总之,是一个非常值得我们去学习的课程。
一个优秀的软件测试人员需要具备一些必要的素质,例如:要具有发散性的思维模式、要有好奇心、不浮躁、快速学习的能力、开发能力、责任感等等。
二、软件测试的目的和原则
- 目的:验证软件有或没有问题。
- 原则:以客户为中心,遵循软件测试的规范、流程、标准和要求。(这里我们记住一句话,就很容易记住原则了–“客户是上帝”)
此处我们补充一下 ISO质量管理的八大原则:
(1)以客户为关注焦点:组织依存于他们的顾客,因而组织应理解顾客当前和未来的需求,满足顾客需求并争取超过顾客的期望。
(2)领导作用:领导者建立组织相互统一的宗旨、方向和内部环境。
(3)全员参与:各级人员都是组织的根本,只有他们的充分参与才能使他们的才干为组织带来收益。
(4)过程方法:将相关的资源和活动作为过程来进行管理,可以更高效地达到预期的目的。
(5)管理的系统方法:针对制订的目标,识别、理解并管理一个由相互联系的过程所组成的体系,有助于提高组织的有效性和效率。
(6)持续改进:持续改进是一个组织永恒的目标。
(7)基于事实的决策方法:有效的决策是建立在对数据和信息进行合乎逻辑和直观的分析基础上。
(8)与供方互利的关系:组织和供方之间保持互利关系,可增进两个组织创造价值的能力。
三、什么是需求?
- 满足用户期望或正式规定文档(合同、标准、规范)所具有的条件和权能,包含用户需求和软件需求。
(1) 用户需求和软件需求的区别:
用户需求不能指导人们工作。
软件需求可以指导开发人员开发编写程序,指导测试人员编写测试用例。
(2) 需求不一定是正确的,还需要我们进行测试。
我们来看个例子:
问题:有一个声控灯,不要从测试人员角度出发,说一下对这个灯的需求。
这个时候可能有人会说, 声音的分贝、是否有开关(如果声控坏了的话)、等等,但其实这个题目本身就有bug,我们并不知道该声控灯需要安装在哪里啊!!!
四、什么是bug?
- 当且仅当规格说明是存在的并且正确的,程序与规格说明之间的不匹配才是错误。
- 软件错误:当程序没有实现其最终用户合理预期的功能需求。
五、什么是测试用例(Test Case)?
测试用例:为了实施测试而向被测试的系统提供的一组集合,这组集合包括:测试环境、操作步骤、测试数据、预期结果等要素。
测试过程中可能会遇到的问题:
(1)不知道是否较全面的测试了所有功能;
(2)测试的覆盖率无法衡量;(覆盖率:编写的测试用例个数/功能点的个数)
(3)对新版本的重复测试很难实施(新版本比旧版本多的测试用例);
(4)存在大量冗余测试影响测试效率。举个例子:完成测试用例,关于手机打电话。
注:不同的测试工作,要求编写的测试用例也不同,但是核心要素不可少
测试要素+具体要求,类似于,类名+类的实例化、变量名+变量赋值。