软件测试
什么是软件测试?
1.软件测试就是一种用来促进检测软件的正确性、完整性、安全性和质量的过程。
2.换句话说也就是程序员将一个程序写好之后交给软件测试的人员,软件测试的人员就是去测试程序员所写程序的bug(漏洞),然后再跟程序员交流修复好那个bug。
测试原则
1.任何软件都不是完美的,都需要进行测试,都会存在bug。
2.测试都应该尽早介入。
3.杀虫剂现象,测试用例不能使用多次,否则程序会自动出现免疫情况。
系统测试分类
1.功能测试(主体功能是否可用)
2.兼容性测试(不同环境下是否可用)例:安卓和苹果
3.安全测试(是否只能是授权用户提供功能使用)
4.性能测试(当前软件消耗的资源 它的产出能力)
常见系统测试方法
1.按测试对象进行分类
1.1 白盒测试(看源码)
1.2 黑盒测试(不看源码)
1.3 灰盒测试()
2.按测试对象是否执行分类
2.1 静态测试
2.2 动态测试
3.按测试手段进行分类
3.1 手工测试
3.2 自动化测试
软件开发过程模型
1.瀑布型模型
1.1 是线性模型的一种,是所有其他模型的基础
1.2测试切入点
测试阶段处于软件后期实现后,必须在代码完成后留有足够的时间给测试,
导致测试时间不够充分,很多问题到项目后期才暴露出来。
优点:
1.开发的各个阶段比较清晰
2.适合发展需求稳定的产品
3.适用于小型公司
缺点:
1.过于依赖于早期的需求计划
2.单一流程不可逆
3.问题往往在项目后期才会显露
2.快速原型模型
2.1 创建一个快速原型,实现用户与系统的交互,抓准系统的核心,逐步调整原型使其满足用户需求。
2.2 在第一步的基础上开发出令人满意的软件
优点:
1.克服瀑布模型的缺点,更好的满足用户的需求
缺点:
1.不适合大型系统的开发(适合 开发小型的、灵活性高的系统)
3.螺旋模型
3.1 螺旋模型分为几个周期,每一个周期都是一个小型的瀑布模型
螺旋模型沿着螺旋线旋转,分为了四个方面的活动,分别是
制定计划
风险分析
实施开发
客户评估
优点:
1.螺旋模型很大程度上是一种风险驱动的方法体系。都必须进行风险评估。
缺点:
1.采用螺旋模型需要具有相当丰富的风险评估经验和专门知识,在风险较大的项目开发中
如果未能标识风险,势必造成重大损失,过多迭代会增加开发的成本。
测试模型
1.V模型
需求分析:用户的需求、业务需求。
概要设计:系统架构、模块划分、模块与模块之间的接口。
详细设计:模块内部实现的逻辑和方法。
编码:实现上面的设计。
单元测试:(类、函数、组件)
集成测试:多模块连接测试
系统测试:系统主体进行测试
验收测试:检测产品是否符合最终用户的需求
优点;
1.V模型清楚的标识出软件开发的阶段
2.测试V模型即包含了底层测试又包含了高层测试
2.1 底层测试 :检验源代码质量的测试,如:单元测试
2.2 高层测试:检验整个系统的需要,如:系统测试
缺点:
1.1 V模型一大缺点正是它自身的顺序性所导致的。到了测试阶段,程 序已经完成,错误已经产生,
很多前期的错误一直到测试阶段才 发现,甚至无法发现,往往无从修改了。
1.2 灵活性比较低。
2.W模型
优点:
测试伴随着整个开发过程,更早的介入测试,可以发现开发初期的很多缺陷,可以降低开发的成本,便于控制项目的过程。
缺点:使用起来技术复杂度很高,对需求和设计的测试难度较高,实践起来很难。
3.H模型
优点:
比较灵活
缺点:
对于整个项目组的人员要求非常,也就意味着成本比较高, 适用于比较有钱的大公司。