软件三要素:数据、程序、文档
数据:该程序能够具体满意地处理信息的数据结构
程序:当运行时能够提供所要求功能和性能的指令或计算机程序集合
文档:描述程序功能需求以及程序如何操作和使用的文档
注意点:软件工程三要素是:方法、工具、过程。
测试和质量
内部质量和外部质量共有的6个质量特性
功能性
功能性是指软件产品在指定条件下使用时,软件产品提供满足明确和隐含要求的功能的能力。
可靠性
可靠性是指在指定条件下使用时,软件产品维持规定的性能级别的能力。
易用性
易用性指的是在指定条件下使用时,软件产品被理解、学习、使用和吸引用户的能力。
效率
效率指的是在规定条件下,相对于所用的资源的数量,软件产品可提供适当性能的能力。
可维护性
可维护性指的是软件产品可被修改的能力,这里的修改包括纠正、改进、或者软件对环境、需求和功能说明变化的适应能力。
可移植性
可移植性指的是软件产品从一种环境迁移到另外一种环境的能力。
使用质量
使用质量指的是软件产品使用指定用户在特定的使用环境下达到满足有效性、生产率、安全性以及满意度要求的特定目标的能力。
软件质量保证
软件质量保证的重要工作是通过预防、检查与改进来保证软件质量。
质量保证包括以下主要工作内容:
- 建立软件质量保证活动的实体
- 制定软件质量保证计划
- 坚持各阶段的评审和审计,跟踪其结果,并进行合适的处理
- 监控软件产品的质量
- 收集和分析软件质量活动的数据
- 度量软件质量保证活动。
软件测试的主要阶段(ISTQB定义的软件测试过程)
- 测试计划和控制
- 测试分析和设计
- 测试实现和执行
- 评估出口准则和报告
- 测试结束活动
什么时候考虑结束测试?
- 当计划的测试时间用尽的时候
- 当继续测试没有发现新的缺陷时
- 当所有的测试用例执行完毕时
- 当测试成本大于测试的收益时
- 当达到所要求的测试覆盖率时
- 当所有已发现的缺陷都已经被清除时
测试和调试
测试可以发现由于软件存在的缺陷引起的失效,调试是一种开发活动,用来是被引起失效的原因(缺陷)和采取解决方案来修正缺陷。
软件测试的基本原则
- 穷尽测试是不可能的
- 测试只能显示缺陷的存在
- 测试应尽早介入
- 缺陷的集群性(80%的错误集中在20%的区域)
- 杀虫剂效应
- 测试活动依赖于测试上下文(不同系统选择的测试工具、测试技术、测试策略等是不一样的)
- 没有失效不代表系统是可用的
软件测试的分类
是否关心内部结构 | 白盒测试、黑盒测试、灰盒测试 |
是否执行程序 | 静态测试、动态测试 |
开放过程级别 | 单元测试、集成测试、系统测试、验收测试 |
执行是否需人工干预 | 手工测试、自动化测试 |
测试实施组织 | 开发测试、用户测试、第三方测试 |