软件测试技术
软件测试保证软件过程质量和产品质量的基础。动态评估技术。
经历的阶段(5个 考点)测试与调试区别
- 认为软件测试和软件调试没什么区别
- 认为测试为了表明软件能正常工作
- 认为测试为了表明软件不能正常工作
- 测试是为了将已经察觉的错误风险降到一个可接受的程度
- 测试不仅仅是一种行为,而是一种理念。即测试是产生低风险软件的一种训练。
测试是主动发现缺陷,而调试是修复已经发现缺陷,所以顺序是测试 --> 调试。(考点)
三种软件测试技术:
- 基于程序路径的白盒测试技术
- 基于需求规约的事务流测试技术(黑盒)
- 等价类划分技术
软件测试的对象?
软件=程序+文档,测试对象就是 程序+文档
软件测试目的?
尽可能多的发现软件当中存在的错误。证明“软件有问题”。
什么是软件测试?
按照特定规程发现软件错误的过程。使用人工或自动手段,运行或测定系统的过程。目的是检验软件是否符合规定的要求,清楚了解预期结果与实际结果之间的差异。
与调试区别:
- 测试是从一个侧面证明程序员的“失败”,调试证明程序员“正确”
- 测试以已知条件开始,使用预先定义的程序且有预知的结果。调试一般是以不可知的内部条件开始,结果是不可预见的。
- 测试要有完备计划,并要进行测试设计,调试不受时间约束
- 测试要由第三方小组独立完成。在不了解软件设计的条件下完成。调试必须由了解详细设计的程序员完成。
- 不太常考区别:
- 测试是一个发现在错误,改正错误,重新测试的过程。调试是一个推理的过程
- 测试的执行是有规程的,调试的执行往往要求 程序员进行必要的推理
- 大多数测试的执行和设计可由工具支持,调试时,程序员能利用的主要是调试器。
错误类型
- 功能错误,处理功能说明不完整或不确切,致命编程时对功能有误解而产生的错误
- 系统错误,与外部接口错误、子程序调用错误、参数使用错误等
- 过程错误,算术运算错误和逻辑运算错误
- 数据错误,数据结构、实体、属性错误
- 编程错误,语法错误、程序逻辑错误、编程书写错误。
测试过程模型?
- 测试设计,需要建立三个模型
环境模型:对程序运行环境的抽象
对象模型:从测试角度对程序的抽象
错误模型: 对程序中的错误及其分类的抽象 - 测试执行
- 测试结果比较
软件测试技术??
分为人工测试和机器测试。机器测试又分为:
黑盒测试:也称为功能测试,只关注接口
白盒测试:逻辑测试或称结构测试
路径测试技术?
一种白盒测试技术
依据程序的逻辑结构
采用控制流程图来表达被程序的模型
合理的选择一组穿过程序的路径来达到某种测量度量。
控制流程图?
表示的程序控制结构图形,基本元素,过程块、结点、判定。
注意:与程序流程图区别。
- 过程块:没有被判定或被结点分开的语句。
- 判定:程序点,控制流出现分叉
结点:也是程序点,汇聚的点,控制流进行了结合。 - 链:过程块、判定、节点之间具有特定语义的关系。即画带箭头的线
- 路径:由链组成。包含一串指令或语句,其长度是由链的数目决定。对软件测试而言,从程序入口开始,在出口结束