软件测试

发布于 2019-06-14  28 次阅读


软件的概念

软件是与计算机硬件相互依存的一部分,它是包括程序,数据和文档的完整集合。

软件,程序编码

数据,存储的数据

文档,解释软件功能的文件

软件分类

系统软件 软件

软件的生命周期

软件开发模型

边做边改 、

瀑布:计划,需求分析,设计,编码,测试,运行维护

特点:

1.软件开发的流程按照线性流程

2.当前活动接收上一项活动的成果

3.当前活动结果需要验证

缺点;

1.由于是线性结构,不能回溯,增加了开发的风险

2.前期的错误,有可能最后才发现,严重影响成本

原型、

螺旋、

原型和瀑布结合体 ,主要强调风险评估

敏捷(比较常见)

以人为本,重沟通,人员素质要求较高

软件测试方法和理论

一,按照生命周期:单元测试,冒烟测试(主要功能的测试),集成测试,系统测试,验收测试

软件测试模型:

V模型:计划,分析,设计,编码,测试和维护,类似瀑布,早起错误在晚期才能发现

W模型:v模型的升级版,测试伴随整个开发周期,测试开发同步执行。

H模型:测试不存在次序关系,解决了V和W模型

X模型: 唯一有探索性测试,没有计划型的,对测试人员要求较高

平常 测试是W和H结合

测试覆盖率

检验测试是否充分,分析测试弱点,适度覆盖率,太高成本也会相应变高
公式:测试覆盖率=(至少执行一次的条目)/(总的条目)//测试用例条目

黑盒测试:

需求覆盖:

函数是否被测试,被测试的几率有多大,这些函数的占比是多少?要求每个需求点必须被测到

公式:需求覆盖=(被验证的需求数量)/(总的需求总数)
用例覆盖:

验证过的用例,在总用例中占比

公司:用例覆盖=(验证通过的用例数)/(总用例数)

测试组织架构

金字塔模式

还有测试总监-安全,性能,自动化测试分类

矩阵模式

项目经理管项目,测试研发经理管个人规划

软件测试人员需要的知识体系

软件测试需要具备的测试

软件测试的原则

原则1:所有的测试应追溯到用户

产品缺陷的80%以上在产品开发过程中需求定义阶段引入的,如果没有这80%的缺陷,能够节省45经费

原则2:尽早启动测试工作

原则3:Pareto法则应用于软件测试

Pareto(帕累托)法则是说在分析设计实现阶段,可以找出80%的缺陷,而在系统测试又能找出其余缺陷的80%,最后的4%由用户找出

原则4:穷尽测试是不可能的

风险分析,合理的判断缺陷的程度

原则5:杀虫剂怪事

软件测试越多,其测试免疫力越强

随机和探索性测试,可以很大解决杀虫剂怪事

原则6:前进两步,后退一步

改一个bug,新的bug总会20%-50%的几率引出新的bug

所以需要复测之前的所有缺陷

原则7:三心二意

细心信心耐心

团队沟通的意识,时刻保持怀疑的态度,且有缺陷怀疑意识

软件测试工程标准

ISO9000,质量保证

两个重要思想:

一控制思想,产品的全过程进行控制

二预防思想,产品全过程进行预防

CMM(capability Maturity Model )软件能力,软件成熟度模型

准确说不是标准,是过程能力的评估

软件测试规范

软件测试环境

测试软件的环境,尽可能模拟真实环境

独立测试环境,构建复用测试环境

jetty :https://www.ibm.com/developerworks/cn/java/j-lo-jetty/index.html

Docker 构建自己的image :

http://www.ruanyifeng.com/blog/2018/02/docker-tutorial.html

简单测试的过程

需求用例的设计

需求验证

审查需求文档

以需求为依据编写用户手册

确定合格的标准

需求规格说明书检查列表

测试策略

描述测试项目和测试任务之间的关系

测什么,如何测, 如何协调测试资源和测试时间

测试策略:侧重需求分析,风险分析,测试范围
测试计划:项目测试过程中的测试重点,==时间进度,任务进度的分配==,包含测试策略的内容
测试方案:测试的实现,测试环境的规划

基本上,都是一个文档,测试方案是最大的

测试方案=测试计划+用例设计+工具选择+自动化/性能测试

测试计划=测试策略+测试任务分配+测试时间分配


把一切平凡的事做好即不平凡,把一切简单的事做好即不简单。