概念
很多人都会以为软件测试就是在找bug,而实则不然。
- 软件测试就是证明软件不存在错误的过程;
- 软件测试就是为了证明程序能够正确的运行
比如说,我们都曾经历过考试,而在答完题后的检查过程,就是在“测试”;买一部新手机,我们会首先看它能否正常使用,这个过程,也是在“测试”。
这些都说明了软件测试是在验证功能是否满足用户的需求。
之前有对软件测试的定义,即软件测试就是对程序能够按预期的要求建立起来一种信息。
可能我们对测试与调试的区别不是很了解,其实两者在一些方面是不相同的。
- 目的不同
测试的任务是发现程序中的缺陷,调试的任务是定位并解决程序中的问题。
- 参与角色不同
测试主要是由测试人员和开发人员来执行,黑盒测试主要由测试人员完成,单元/集成测试主要是由开发人员执行。调试由开发人员完成。
- 执行阶段不同
测试贯穿整个软件开发生命周期,调试一般在开发阶段。
软件测试的目的和原则
目的:验证软件有没有问题。
原则:以客户为中心,遵循软件测试的规范、流程、标准和要求
测试并不仅仅是为了找出错误,还要通过分析错误产生的原因、阶段以及错误发生的趋势。
需求
- 用户需求:甲方提出的需求,如果没有甲方,那么就是终端用户使用产品时必须要完成的任务
- 软件需求(功能需求):详细描述开发人员必须实现的软件功能,软件需求是测试人员进行测试工作的基本依据。
案例:
买手机的例子
你想买一个手机(用户需求)
多大内存的手机、手机外形设计、手机像素多少(软件需求)
bug
当且仅当规格说明是存在的并且正确的,程序与规格说明之间的不匹配才是错误。
当程序没有实现其最终用户合理预期的功能需求时,就是软件错误。
测试用例
测试用例是为了实施测试而向被测试系统提供的一组集合,这组集合包含:测试环境、操作步骤、测试数据、预期结果等要素。
测试用例:QQ注册成功 | |
步骤动作 | 期望的结果 |
进入注册页面。选择注册 | 系统展现注册页面 |
输入符合要求的昵称、密码、手机号 | 系统进行注册操作,给填写的手机号发送验证码,注册成功后,跳转到注册成功页面。 |
用注册的账号、密码进行登录操作 | 登陆成功,系统展示欢迎页面 |
测试方式 | 手工 |
重要性 | 重要 |
测试环境 | IE10 |
测试前提 | 系统运行正常,网络连接正常 |
功能模块 | 注册登录 |
这是很简单的一个测试用例,在测试过程中可能会遇到以下问题:
- 不知道是否较全面的测试了所有功能;
- 测试的覆盖率无法衡量;
- 对新版本的重复测试实施性难;
- 存在大量冗余测试影响测试效率。
软件的生命周期
软件的生命周期是指从软件产品的设想开始到软件不再使用而结束的时间。
可分为六个阶段:需求分析,计划,设计,编码,测试,运行维护。