软件测试基础
随着计算机的发展,越来越多行业软件也是不断开布出来,软件的结构和复杂度也发生了变化,软件测试工作显的也跃为重要,软件的生命周期包括:需求定义、分析,概念的设计,详细设计,编码的实现,调试和测试,软件的验收发布,后期的维护升级,这提到了软件测试?
我首先问大家什么是软件测试?答:软件测试是为了发现软件中异常错误而执行程序的过程,这是很通俗的说法,错误一词我们用一个英文单词bug来表示:
bug一词本身的意思是臭虫,后来引入到计算机内,通常软件或者硬件出现 异常都会用这个小动物来形容,说到这我就要问怎样才能发现bug呢?
1,这我引入两个概念: 测试和测试用例
测试一般是指硬件的和软件的,在这我就只说软件测试,它是为了找出bug而执行测试测试用例的过程。
测试有几点比较重要:1,测试尽可能的覆盖 2,测试环境干净 3,测试环境独立
测试用例是软件测试的核心,测试工作的覆盖程度一般都是要体现到测试用例里面,也是记录测试情况的必要手段,体现软件质量的一个标准,测试用例执行的情况可以直接反应出来。
2,软件测试的分类(简单的分类)
1;按照测试阶段来分为,单元测试,集成测试,系统测试,验收测试
2;是否执行程序分为,静态测试,动态测试
3;是否查看代码分为,白盒测试,黑盒测试,灰盒测试
黑盒测试又分为(功能测试,性能测试,安全测试,兼容测试,可靠性测试,ui界面测试等等)
我们这块主要说明的是白盒测试和黑盒测试其他的暂时不说明:
A,白盒测试的概念,白盒测试又称做结构化测试,逻辑驱动测试或者说是基于程序本身测试,它的侧重点是内部程序的结构和算法
白盒测试的的主要方法是:语句覆盖,判定覆盖,条件覆盖,逻辑判断等,目前白盒测试一般都是开发人员或者程序员完成
B,黑盒测试的技术的运用与系统测试,测试软件包,从中发现异常和缺陷
黑盒测试做的一般大量工作的都是功能测试和性能测试,功能测试就是实现需求规格说明的,又称规格测试,性能测试主要是针对被测程序的响应,一般指的是服务端的测试,
说了这么多概念我们开始研究软件测试的具体操作吧。
a,测试的v模型(这图是在网上找吧,不想画了,麻烦)
需求分析 验收测试
规格说明 系统测试
概要设计 集成测试
详细设计 单元测试
编码
b,软件测试流程
需求分析-测试计划-测试用例设计,数据准备-测试执行和记录-bug的修改,复测-测试总结和报告
c,软件测试用例的设计方法:
测试用例的设计方法有很多:边界值分析法,等价类划分法,因果图,判定表分析法,错误推测法,场景法
具体的操作和概念我就不细说了,百度上有
测试用例主要包括:用例名称,用例编号,操作步骤,数据要求,预期结果,实际结果,测试结果,测试时间,人员,bug的记录等等
d,测试执行完毕后一般要对产生的bug或者缺陷要进行一定记录,保障后期的测试维护,这时我就要提到一个话题,
那就是有效bug,有效的bug我觉得应该具备,可重现,可分类,可记录,有截图等等
一般我们把bug进行分类: 新建,打开,分配,待修复,已修复,关闭,四个基本的状态,new ,open,fixed,closed
针对对系统的影响bug也会分成不同的级别,一般有高,中,底 分 也有,一般 严重
c,最后就是测试报告的输入
测试报告包含的内容也是考量测试的一个重要的文档
· 编写目的 · 参考资料·测试环境· 测试的目的·测试情况·测试用例·测试总结
这些都必须要的,最后把时间人物说明下就很ok了
手动测试加上自动化测试才能完成一个较复杂测试的项目工作,因为软件测试的工作量是很大的,利用自动化测试可以减少人员的使用,做起回归测试很有必要