软件测试基础–笔记(1)@TOC
软件测试基础
什么是软件
软件(software)是计算机系统中与硬件(hardware)相互依存 的另一部分,它是包括程序(program)、数据(date)和文档 (document)的完整集合。
软件=程序+数据+文档 程序:是能够完成预定功能和性能的可执行的指令序列 。 数据:是使程序能够适当地处理信息的数据结构,输入 与输出,数据库等。 文档:是开发、使用和维护程序所需要的图文资料,需 求分析、概要设计、详细设计等各阶段文档,还包括用 户文档
软件的分类
- 按层次分
系统软件——在硬件之上 支持软件——为了更方便地操纵计算机 应用软件——最常用的一类软件 - 按使用范围分
单机版软件——不需要也不h会与其他计算机进行交互 分布式软件——需要多台计算机协同工作 C/S(客户端/服务器)结构 B/S(浏览器/服务器)结构
软件的特性
- 软件是一种逻辑实体,具有抽象性
- 软件产品的生产主要是研制,生产成本主要在开发和研制,开发研制完成 后, 通过复制就产生了大量软件产品
- 软件在使用过程中,没有磨损、老化的问题
- 软件对硬件和环境有着不同程度的依赖性。这导致了软件移植的问题
- 软件的研发至今尚未完全摆脱手工作坊式的研发方式,生产效率低
- 软件是复杂的,而且以后会更加复杂
- 软件的成本相当昂贵
软件测试产生的背景
原因一:程序规模的爆炸式增长 程序代码规模显著增大 程序结构和算法更加复杂 程序模块间接口增多 原因二:在程序员与用户需求间寻找平衡点
软件测试的定义
使用人工或自动手段,来运行或测试某个系统的过程。其目的在于检验它是否满足 规定的需求或弄清预期结果与实际结果之间的差别
软件测试的意义
从工作量上来说:解放程序员和售后服务人员 软件测试可以降低软件质量风险,使程序员能够更专 心于解决程序的算法和效率;同时经过严格检验的完整产品也减轻了售后服务人员的工作量。
从软件测试过程的角度来说:它推动了软件工程的发展,使软件的质量得到了阶段性的提升
软件测试的原则
软件测试的原则:
- 软件测试应尽早执行,并贯穿于整个软件生命周期
- 软件测试应追溯需求
- 测试应由第三方来构造
- 穷举测试是不可能的,要遵循Good-enough原则
- 充分注意测试中的群集现象
- 反复使用同样的测试会使软件具有抵抗力(杀虫剂悖论)
软件测试人员必备的素质
- 责任心
- 沟通能力
- 团队合作精神
- 耐心、细心、信心
- 时刻保持怀疑的态度,并且有缺陷预防的意识
- 具备一定的编程经验
软件测试的目的
- 确保产品完成了它所承诺或公布的功能,并且用户可以访问到的功能都有明确的书面说明。
- 确保产品满足性能和效率的要求。
- 确保产品是健壮的和适应用户环境的。
软件缺陷
什么是缺陷
不符合设计要求 不满足用户确定需求
产生软件缺陷的原因
- 人员之间的沟通交流不够,交流上有误解或者根本不进行交流
- 文档不完善
- 需求不断的变化
- 参与人员的过度自信
- 程序设计本身有错误 软件复杂性
- 工期短,任务重,时间压力大
- 软件开发工具与系统软硬件自身含有缺陷
有效的记录缺陷
- 保证重现缺陷
- 分析故障——使用最少步骤复现故障
- 包含所有重现缺陷的必要步骤
- 方便阅读
- 尽量简单——一个缺陷一个报告
- 注意自己的语气
- 报告不能重现的缺陷
- 不能夸大缺陷
- 小缺陷(甚至建议)也要报告
- 引用别人的报告时,不能修改,可以添加批注之类的补充评论
缺陷报告的用途
记录缺陷 缺陷分类 缺陷跟踪
软件质量的6大特征及其子特性
功能性:一组功能及其指定的性质有关的一组属性。适合性、准确性、互用性/互操作性、依从性、安全性。 可靠性:在规定的一段时间和条件下,软件维持其性能水平有关的一组软件属性。成熟性、容错性、易恢复性。 可用性:与使用的难易程度及规定或隐含用户对使用方式所做的评价有关的软件属性。易理解性、易学性、易操作性。 效率:在规定条件下,软件的性能水平和所有资源之间的关系有关的一组软件属性。时间特性、资源特性。 可维护性:与进行指定的修改所需的努力有关的一组软件属性。易分析性、可修改性、稳定性、可测试性。 可移植性:与软件可从某一环境转移到另一环境的能力有关的一组软件属性。适应性、易安装性、一致性(遵循性)、可替换性。
缺陷报告处理流程
|