1.近期进行了软件测试的学习,同时记录了随堂笔记整理,相应内容是老师上课的实际内容,分享给淦友们进行平时参考或者考前突击。
2.会定期更新哦 博主是985的哦 — (弱弱的说,有问题欢迎指正)
3. 有相应内容不够详细的,或者不懂的,欢迎在评论区提问~
这是第二个文章哦~ 第一章在上一个
二. 软件测试基础
Testing can only show the presence of failures
Not their absence
2.1 术语
-
Software Faults, Errors & Failures
- Software Fault : 软件中存在静态缺陷 , bug的根源所在
- Software Error : 一种错误的表现的不正确的内部状态
- Software Failure : 关于需求或对预期行为的其他描述的外部的、错误的行为
-
RIPR 模型
- Reachability :可达性,是否能运行经过程序故障的位置。
- Infection : 感染, 该程序的状态必须不正确。
- Propagation : 传播,受感染的状态必须导致程序的某些输出或最终状态不正确。
- Revealability : 可揭示性,测试人员必须观察到最终程序状态的部分不正确的部分
自上而下,前面是后面的必要条件。
-
Testing & Debugging
- testing:通过观察软件的执行情况来评估软件。
- Debugging:观察到failure 后,查找fault的过程。
-
常见软件故障:
- Arithmetic faults - 算术错误 : 除以0, 算数溢出…
- Logic faults - 逻辑错误:无限循环递归…
- Syntax faults - 语法错误
- Resource faults - 资源错误: 空指针,违法访问变量…
- Multi-threading programming faults - 多线程故障: 死锁,并发故障…
- Performance faults - 性能错误 :复杂度问题…
- Interfacing faults - 接口错误:错误使用,硬件处理错误…
- Team working faults - 团队工作问题:文档差异,数据更新的不及时传播…
2.2 活动
-
Test Engineer & Test Manager
- Test Manager : 负责协调管理一个或多个测试工程师
- Test Engineer:负责一项或多项技术测试活动的IT专业人员
-
传统测试级别:
-
面向对象级别测试:
-
Coverage Criteria - 覆盖标准
- 我们尝试搜寻所有测试可能进行测试
- 数量巨大,使得我们要搜寻最少的特征实例进行最大化话的错误定位。
- 覆盖标准提供了一种结构化的、实用的方法来搜索输入空间
- Coverage Criteria 的优势:
- 最大化“性价比高”
- 提供从软件工件到测试的可追溯性——源代码、需求、设计模型等。
- 使回归测试更容易!
- 给测试人员一个 “停止规则” ……当测试完成时!
- 可以用功能强大的工具得到很好的支持
-
Test Requirements and Criteria – 测试需求与测试准则
-
Test Criteria :一个定义测试需求的规则和流程的集合
- 覆盖每一条语句
- 覆盖每一个功能需求
-
Test Requirements:在测试期间必须满足或涵盖的特定内容
-
四个测试活动流程: (难度)
-
1. Test Design (技术难度最高) 4*
- 1.a) Criteria-based - 以测试标准为基础的
- 1.b) Human-based - 以人经验主义为基础的
-
2. Test Automation- 将测试值嵌入到可执行脚本中 2*
-
3. Test Execution - 在软件上运行测试,并记录结果 1*
-
4. Test Evaluation- 评估测试结果,并向开发人员报告 3*
-
-
MDTD - Model-Driven Test Design
- 进行活动的抽象
- 进行活动的抽象
三. junit
3.1 自动化测试
- 定义:The use of software to control the execution of tests, the comparison of actual outcomes to expected outcomes, the setting up of test preconditions, and other test control and test reporting functions。(使用软件来控制测试的执行,将实际结果与预期结果进行比较,设置测试先决条件,以及其他测试控制和测试报告功能)
- 好处:
- 降低费用
- 防止因人工引发的错误
- 减少了来自不同个体的测试质量的差异
- 显著降低了回归测试的成本
- Software Testability - 软件可测试性
- 体现了软件终可以找出fault的困难。
- two problems :
- 如何为软件提供测试值
- 如何观察测试执行的结果
- Observability an