软件测试
软件测试的定义
软件测试就是验证产品特性是否满足用户需求;
上面是软件测试的一个较为学术的定义,简单来说,软件测试就是对软件进行测试,发现软件的缺陷,也就是找bug。简单举一个网上购物的例子,在购物之前,我们需要测试一件衣服的外观、颜色、样式,需要测试衣服的价格,测试商品详情展示的衣服材质,而在收到商品之后,我们同样需要对衣服真实的材质做测试,如果有问题需要对商家的售后做测试,这些也许看起来是在正常不过的事,实际也是我们不断在测试的一个表现;
软件测试的特点
软件测试具有不可穷尽性;
软件测试贯穿于软件的整个生命周期;
软件测试绝不仅仅是在程序开发的某一个阶段需要进行的工作,而是存在于软件开发的整个过程,一直延伸到软件后期的升级、运行、维护等阶段;
与软件开发的区别
首先,软件测试与软件开发最根本的区别就是两者工作任务的关注点不同。对于软件开发人员而言,最主要的就是负责编写业务代码;而对于软件测试人员,则是主要负责测试软件质量。 对于两者工作的难易程度而言,开发工作所涉及的专业度更高,但广度更小;测试工作所涉及的专业度更低,但广度更大。
软件测试的基本概念
需求
在企业中,需求主要分为两类,即软件需求和用户需求:
- 软件需求
软件需求主要是描述开发人员必须实现的软件功能;
- 用户需求
用户需求主要就是最终产品的使用者提出的需求;
一般用户需求都较为简略和笼统,由于用户可能会提出各种各样的需求,这些需求不一定都是合理或可执行的,因此用户需求是需要进行分析和提取的,最终转化为软件需求;
软件需求是测试人员进行测试工作的基本依据
测试用例
测试用例是测试人员在执行测试之前需要进行的工作,测试用例的好坏很大程度上影响了产品的质量。
测试用例是为了实施测试而向被测试的系统提供的一组集合;
测试用例主要解决2个问题,即测什么和怎么测;一般包含几个要素:测试环境、操作步骤、测试数据、预期结果;
以某网站的搜索引擎为例,下面就是一个完整的测试用例的编写:
这样的测试用例编写方式无疑是繁杂的,因此企业更多使用脑图的形式编写测试用例,这里暂不做演示。
测试用例是为了尽可能提供测试的覆盖率,同时避免冗余测试影响测试效率,但不可能做到完全的测试也是不争的事实,我们只能尽可能地去避免漏测,最大程度地保证产品质量。
软件错误(Bug)
简单来说,当与预期结果不符时,就可以认为是一个bug,但软件错误更全面的定义主要有下面两个方面:
当且仅当软件规格说明书存在且正确时,若程序与规格说明书不符时认为是软件错误;
对于规格说明书没有指明的功能,若程序与用户的合理需求不符,认为是软件错误;
优秀的软件测试人员需要具备的素质
主要有综合能力以及专业能力;
综合能力:
- 良好的沟通能力;
- 快速学习能力;
- 文字能力;
- 开发能力;
专业能力:
- 优秀的测试用例设计能力;
- 掌握一定的测试技术(像自动化测试技术);
当然,除了以上这些,对于测试的兴趣,一定的探索性思维,必要的责任感和抗压能力都是必须的~