文章脉络
测试的重要性在此就不赘述了,先说一下测试基础:测试的目标很简单,就是为了找到软件中尚未发现的错误的缺陷;测试阶段在整个开发过程中所占比例不小,测试也不是想起两个数据来就测试一下,而是需要规范的测试用例来完成,测试用例要既有输入更要有输出,同时需要有一个整体的规划。
如何评价一个测试用例的好坏?不用看定义,按测试的目标即可知道,一个好的测试用例就是可以发现错误和缺陷,一个更好的测试就是可以发现更多的错误。
软件测试不是等编码完成后在开始的,而是贯穿于整个开发过程,从开始的可行性分析阶段即开始着手软件测试。软件测试有这么几个原则:
● 尽早、不断进行软件测试,一个错误越早发现,改正它需要的改价就越小。
● 所有测试追溯到用户需求,一个软件最大的失败就是不能满足用户需求。
● 测试应当是从小小规模到大规模测试的
● 远在测试之前就应该制定测试计划,为的是有计划有步骤的执行测试,不能让测试耽误整个软件开发周期。
● 第三方测试,自己写的代码潜意识会跟自己说做的很好或者用自己的逻辑检查自己的逻辑,从而漏掉错误。
● 对非法的输入数据也像合法的数据一样编写用例。
● 检查软件是否做了不该做的事。
● 测试只能证明软件有错误,不能证明软件没错误。
测试分类
从阶段上可以分为:
单元测试
放在编程阶段,可以由程序员对自己的模块测试,测试模块是否实现了详细设计中规定的功能和算法,单元测试主要是发现编程和详细设计中的错误,测试方法主要采用白盒测试,单元测试的计划应当在详细设计阶段制定。
单元测试时,需要为模块编写驱动模块和桩模块,驱动模块的作用是调用被测模块,主要看测试结果是否正确;桩模块的作用是供被测模块调用,检查调用参数的正确性。
集成测试:在模块组装完毕后检测,主要是测试模块间的接口和通信问题。集成测试主要是发现设计阶段的错误,测试计划应当于概要设计阶段制定。
确认测试:主要是测试软件是否满足需求说明中的功能、性能和其他约定,确认测试应当在需求分析阶段制定。
测试计划制定与实施顺序:
测试方法
测试方法分为白盒测试和黑盒测试。
白盒测试主要用于单元测试阶段,它的前提是把程序看做是透明的,测试者知道程序中的结构和算法。这种方法按照内部逻辑设计测试用例,检测程序中的分支是否正确工作。白盒测试常用的方式是逻辑覆盖,按覆盖程度分为六种,覆盖强度由低到高:语句覆盖、判定覆盖、判定/条件覆盖、条件组合覆盖、路径覆盖。
黑盒测试主要用于集成测试和确认测试,该方法把程序看做是不透明的,不考虑程序的结构和算法,只测试软件是否有选择地接收数据并产生正确的输出信息,黑盒测试常用的方式是等价类划分、边值分析、错误推测和因果图。
维护
维护是指软件交付到软件淘汰修改或改进软件的过程,可能是软件生命周期中最长的一个阶段,所占花费也占到大部分。可维护性包括可理解性、可测试性、可修改性,这点就要求必须把程序的注释书写完善、程序修改有文档记录、文档与程序相对应。