1.测试理论知识
一、软件和软件分类
什么是软件?
软件包括程序、数据、文档
软件的分类
- 按层次划分,分为系统软件,应用软件
- 按组织划分,分为商业软件,开源软件
- 按结构划分,分为单机软件,分布式软件
二、软件缺陷的定义
- 软件未实现产品说明书要求的功能
- 软件出现了产品说明书指明不应该出现的功能
- 软件实现了产品说明书未提到的功能
- 软件实现产品说明书虽未明确提及但应该实现的目标
- 软件难以理解、不易使用、运行缓慢或者(从测试的角度来看)最终用户会认为不好
三、软件测试的定义
- 正向思维:根据说明书去确认验证能否达到应有预期效果)
- 反向思维:判断是否出现说明书之外的问题
- ieee软件测试:在规定条件下,去观察记录结果以及检查现有状况和所需的是否有出入
- 广义软件测试:对软件的整体过程进行测试包括程序改以及相关文档
四、测试和调试的区别
测试 | 调试 | |
主体 | 测试人员 | 开发 |
目标 | 找bug | 将错误改正 |
方法 | 等价类、边界值... | 程序和逻辑算法 |
思路 | 反向思维 | 正向思维 |
五、软件生命周期模型
1)瀑布模型
最早提出的软件开发过程模型
优点:可以按阶段进行检查 每阶段完成后只需关注后续阶段
缺点:1、各阶段完全固定,前阶段不完成,后阶段不开始。
2、将测试放在编码之后。没有体现出测试贯穿软件生命周期的原则。可以避免需求的问题一直延续到代码完成才发现,只有到后期才能看见开发成果,增加了开发风险 不适合用户需求的变化
2)螺旋模型
引入了其他模型不具备的风险分析,使软件在无法排除重大风险时有机会停止,以减小损失 适合大型的昂贵的系统级软件应用
3)迭代模型
迭代模型 在原有稳定的软件上让功能做到更好,需重新进行需求分析、设计、实施和测试工作流程 优点:降低了在增量上的开支风险 降低了产品无法按照既定进度进入市场的风险 加快了整个开发工作的进度 迭代过程可以更好的适应需求的变化
4)敏捷开发模型
敏捷开发模型 敏捷宣言 快、灵活
5)增量模型
增量模型 把软件分割成独立的模块,分批次的完成和交付 一般和迭代模型一起使用 软件增加新功能 优化功能 修复bug
6)快速原型模型
原型:一个可以模拟操作、简单运行的模型 典型的应用和工具:Axure制作原型