1.软件测试的定义
首先我们看一下什么是软件测试,也就是软件测试的定义。关于软件测试有很多的定义和说法,这里和大家分享的是笔者比较认可的一种。
软件测试是通过手工或自动化手段来检测软件产品中的错误和缺陷的过程。
对于刚参加工作的同学们,一进公司基本上都是执行测试用例发现Bug,也就是通过执行用例来发现缺陷,所以我觉得这个定义比较适合初学者。
2.软件测试的目的
通过上面的定义,很显然软件测试的目的就是寻找缺陷,在以后的工作中我们也应该时刻记着:我们的目的是发现缺陷并且要尽快的提交,并保证他们被修改。
a) 以最少的人力、物力和时间找出软件中潜在的各种错误和缺陷
b) 通过修正各种错误和缺陷提高软件质量,避免软件发布后由于潜在的软件错误和缺陷造成的隐患所带来的商业风险
c) 利用测试过程中得到的测试结果和测试信息,作为后续项目开发和测试过程改进的重要输入,避免在将来的项目开发和测试中重复同样的错误
d) 采用更加高效的测试管理手段,提高软件测试的效率和软件产品的质量
3.软件测试的对象
软件测试的对象很显然是软件吗,但是要知道软件是包括程序、数据和文档的。我们的测试不能只是简单的程序,还应包括软件开发各个阶段的文档。
4.缺陷
我们前面一直在说软件测试是为了发现缺陷,那么什么是缺陷呢?我们现在只需要记住“不满足需求的都是缺陷”就可以了,后面我们会详细的介绍缺陷。
5.软件质量
软件质量的定义:一个实体的所有特性,基于这些特性可以满足明显的或隐含的需求。质量就是实体基于这些特性满足需求的程度。
怎么理解这个定义呢?比如说我们去买衣服吧,我们怎么评价这个衣服质量的好坏?一般都是看他的面料啊、做工啊、样式啊这些吧,如果都很好就会觉得他的质量好,对吧?那么怎么评价软件的质量呢?同样也可以找他的这些特性来描述啊,比如功能啊,运行的快慢啊,是否稳定啊这些。
我们现在就来看一下软件质量模型:
功能性:当软件在制定条件下使用时,软件产品提供满足明确和隐含需求的功能的能力。包括:适合性、准确性、互操作性、安全性等;
可靠性:当软件在制定条件下使用时,软件产品维持规定的性能级别的能力。包括成熟性、容错性、易恢复性等;
易用性:当软件在制定条件下使用时,软件产品被理解、学习、使用和吸引用户的能力。包括:易理解性、易学性、易操作性、吸引性等;
效率:在规定条件下,相对于所用资源的数量,软件产品可提供适当性能的能力,包括:时间特性、资源利用性等
维护性:软件产品可被修改的能力。修改可能包括修正、改进或软件对环境、需求和功能规格说明变化的适应。包括:易分析性、易改变性、稳定性、可测试性等
可移植性:软件产品从一种环境迁移到另外一种环境的能力。包括:适应性、易安装性、共存性、易替换性等
6.初级测试工程师的主要工作
a、执行测试用例,发现缺陷并提交、跟踪缺陷
b、设计测试用例、书写测试计划和测试总结等
7.总结
1. 测试是程序的执行过程,目的在于发现错误;
2. 一个好的测试用例在于能发现至今未发现的错误;
3. 一个成功的测试用例就是发现了至今未发现的错误的测试。