通用技术测试
软件组成及分类
- 软件
- 程序
- 数据
- 文档
- 软件的分类
- 按层次划分: 系统软件、应用软件
- 按组织划分:商业软件、开源软件
- 按结构划分:单机软件、分布式软件
软件缺陷
- 软件缺陷的定义
- 软件未实现产品说明书中的功能
- 软件出现了产品说明书指明不应该出现的功能
- 软件实现了产品说明书未提到的功能
- 软件未实现产品说明书虽未明确提及但应该实现的目标
- 软件难以理解、不易使用、运行缓慢(从测试的角度看)最终用户会认为不好
(前四条客观,后一条主观。)
注:所有不满足需求或者超出需求的都是缺陷。
软件测试
- 软件测试的定义
- 正向思维的定义
- 使自己确信产品是可以正常工作的,在这个前提下去评价一个程序和系统的特性或能力,确定它是否能够达到预期,软件测试就是以此为目的的任何行为。
- 反向思维的定义
- 出发点:测试是为了发现错误而执行一个程序或者系统的过程。
- 一个好的测试用例在于它能发现以前未发现的错误。
- 一个成功的测试是发现了以前未发现的错误的测试。
- IEEE的定义
- 在规定的条件下运行系统或构件的过程:观察和记录结果,并对系统或构件的某些方面给出评价。
- 分析软件项目的过程:检测先有状况和所需状况之间的不同,并评估软件项目的特性。
(分析的是软件开发的整个过程包括运行环境。)
- 广义的定义
- 对软件形成过程中的所有工作产品(包括程序以及相关文档)进行的测试,而不仅仅是对程序的运行进行测试。
- 正向思维的定义
- 专业术语
- 确认:通过检查和提供客观证据来证实特定目的的功能或应用是否实现。
(有没有、存不存在问题) - 验证:通过检查和提供客观证据来证实指定的需求是否满足。
(满不满足需求)
- 确认:通过检查和提供客观证据来证实特定目的的功能或应用是否实现。
- 软件测试的目的
- 发现软件中潜在的错误和缺陷,保证各种错误和缺陷得以修复。
- 利用测试过程中得到的测试结果和测试信息,作为后续项目开发和测试过程改进的重要输入,避免在未来的项目开发和测试中重复同样的错误。
- 测试和调试的区别
- 在主体、目标、方法和思路上不同
- 测试是从已知的条件开始,使用预定义的过程,并且有预知的结果;调试是从未知的条件开始,结束的过程可能不可预计。(条件、结果)
- 测试可以计划,可以预先制定测试用例和过程,工作进度可以度量;描述调试的过程或持续时间相对比较困难。(时间描述)
- 测试对象包括软件开发过程中的文档、数据和代码;调试对象一般只有代码。(对象)
《测试数据选择的原理》、《软件测试的艺术》
软件工程
- 软件危机:落后的软件生产方式无法满足迅速增长的计算机软件需求导致的软件开发与维护过程出现的一系列问题的现象。
- 软件工程:1968年提出的该名次,从此软件生产进入工程化时代。
- 软件开发技术:软件开发方法学、软件工具和软件工程环境。
- 软件项目管理:软件质量、项目估算(时间、金钱)、进度控制、人员组织(前端后端分配)、配置管理(管理两个版本之间的内容差异、什么时候发布下一个版本、由谁发布)、项目计划
(软件测试是软件质量管理体系中一个非常重要的手段。)
(UI前端、H5web端、安卓做安卓app的界面)