软件是与计算机硬件相互依存的一部分,它是包括程序,数据和文档的完整集合。
软件,程序编码
数据,存储的数据
文档,解释软件功能的文件
软件分类
系统软件 软件
软件的生命周期
软件开发模型
边做边改 、
瀑布:计划,需求分析,设计,编码,测试,运行维护
特点:
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
简单测试的过程
需求用例的设计
需求验证
审查需求文档
以需求为依据编写用户手册
确定合格的标准
需求规格说明书检查列表
测试策略
描述测试项目和测试任务之间的关系
测什么,如何测, 如何协调测试资源和测试时间
测试策略:侧重需求分析,风险分析,测试范围
测试计划:项目测试过程中的测试重点,时间进度,任务进度的分配,包含测试策略的内容
测试方案:测试的实现,测试环境的规划
基本上,都是一个文档,测试方案是最大的
测试方案=测试计划+用例设计+工具选择+自动化/性能测试
测试计划=测试策略+测试任务分配+测试时间分配