软件测试基础知识:
探索性测试理论(jams)、测试驱动开发
软件测试:使用人工或者自动的手段来运行或者测量软件系统的过程,以检验软件系统是否满足规定的要求,并找出与预期结果之间差异。
五大元素:质量、人员、资源、流程、技术
软件测试分类:
一、单元测试:
概念:对软件中最小的可以测试的单元进行检查和验证
原则:1、尽可能的保证各个测试用例是相互独立的
2、一般是由代码开发人员来实施,检验代码是否符合要求
有益处:
1、尽早的发现缺陷
2、有利于重构
3、简化集成
4、文档
5、用于设计
限制处:
1、不可能覆盖到所有的执行路径,所以不可能保证捕捉到所有路径的错误
2、每一行代码,都需要3-5行测试代码才能完成单元测试,所以存在投入和产出的一个平衡。
单元测试框架:xunit、junit、nunit、PHPunit、cppunit
二、集成测试:
概念: 集成测试是在单元测试的基础的基础上,组装成新的模块
实施方案:big bang、自顶向下、自低向上、核心系统集成、高频集成(不断的进行测试---敏捷测试)
单元测试与集成测试的区别:测试的对象不同、测试的依据不同、测试的方法不同
三、系统测试:
概念:将进行过集成测试的软件作为计算机的一部分与其他模块结合起来进行测试,保证系统的正常运行
关注点:1、关注系统本身的使用
2、关注系统与其他系统间的联通
3、关注系统在不同压力下的变现不同
4、关注系统在真实环境下的表现
系统测试与集成测试的区别:
1、测试的对象:
集成测试:是通过单元测试的各个模块所集成起来的构件
系统测试:除了软件之外,还包括计算机的硬件以及相关的外围设备、数据采集和传输结构、支持软件、操作人员等整个系统
2、 测试的时间:
集成测试介于单元测试和系统测试之间测试
系统测试在集成测试之后
3、测试的角度:
集成测试:偏于技术角度验证
系统测试:偏于业务角度的验证
四、验收测试:
交付测试,确定系统是和否满足用户的需求
细分:用户验收测试、进行验收测试、合同和规范验收测试
alpha测试:
beta测试:
验收驱动开发
按照测试手段分类:
黑盒测试、白盒测试、静态测试、动态测试、手工测试、自动化测试
黑盒测试优缺点:
优点:1、容易实施。不需要关注内部的实施
2、更贴近用户的使用角度
缺点:1、测试覆盖较低,不到40%
2、黑盒的自动化测试,维护成本较高
关注点:1、是否有不正确或者遗漏的功能
2、在接口上,输入是否正确的接受?能否输出正确的结果?
3、是否有数据结构错误,或外部访问的错误
4、性能测试是否满足要求
主要的设计方法:
等价类划分法、边界值分析法、错误猜测法、因果图法、正交试验法、状态迁移法、流程分析法等
等价类:(126邮箱测试)
为什么:测试数据是无限的,测试资源是有限的,我们不可能做到穷举所所有的符合和不符合规则的数据,所以要找有代表性的数据进行测试。
怎么用:1、至少找一个符合组成规则的数据作为代表有效数据——有效类、尽可能多的包含符合规则的
2、至少找一个不符合规则的数据作为代表无效数据——无效类,一次只能包含一种错误的情况
优点:简单高效
快速评估工作量(测试用例条数)
1、一个功能有m个输入,至少设计m+1条测试用例,(实际工作中,用例数是最少用例数的4-6倍):有效用例1条,无效用例m条
2、n个功能,每个功能有m个输入&