软件测试发展史及概念
随着对计算机需求和依赖的与日俱增,计算机系统的规模和复杂性急剧增加,使得计算机软件的数量以惊人的速度急剧膨胀,与此同时,计算机出现故障引起系统失效的可能性也逐渐增加。由于计算机硬件技术的进步,元器件可靠性的提高,硬件设计和验证技术的成熟,硬件故障相对显得次要了,软件故障正逐渐成为导致计算机系统失效和停机的主要因素。
为什么要进行软件测试?
1.软件总存在缺陷,有缺陷的软件也许仅仅给用户带来了不便,也可能是灾难性的。
用户体验差,产生不信任感 无法正常使用
系统崩溃,损害用户的利益
企业形象的下降,产生信任危机
高额的维护费用 产生的隐性商业损失
2.软件的应用越来越广泛
3.软件的工程化程度越来越高,复杂度越来越高
4.竞争越来越激烈的企业生存环境
软件测试定义的两面性
正向思维
验证软件正常工作,评价一个程序或系统的特性或能力,并确定是否达到预期的结果,在设计规定的环境下运行软件的所有功能,直至全部通过。
逆向思维
假定软件有错误,测试是为发现错误而针对某个程序或系统的执行过程,寻找容易犯错误的地方和系统的薄弱环节,试图破坏系统,直至找不出问题。
软件测试的定义
使用人工或自动的手段来运行或测定某个软件系统的过程,其目的在于检验它是否满足规定的需求或弄清预期结果与实际结果之间的差别。
软件测试的目的
以最少的人力、物力和时间,系统地找出软件中潜在的各种错误和缺陷。
通过修正各种错误和缺陷提高软件质量,尽量规避软件发布后的风险。
测试是对软件质量的度量与评估,以验证软件的质量满足用户的需求,为用户选择和接受软件提供有力的证据。
通过分析错误产生的原因,可帮助发现当前软件过程的缺陷,以便进行过程改进。
测试是为了证明软件中存在错误,而不是证明软件正确的。
软件测试最终的目的是交给用户的软件产品符合用户的需求.
软件测试的原则
Good-Enough原则(测试既不要不充分,也不是过分)
木桶原理
80~20原则
其它几个重要原则:
所有的软件测试都应追溯到用户需求。
尽早地和不断地进行软件测试。
完全(穷举)测试是不可能的,测试需要终止。
测试无法显示软件潜在的缺陷。
充分注意测试中的群集现象。
程序员应避免检查自己的程序。
尽量避免测试的随意性。
测试用例应包括合理的输入条件和不合理的输入条件。
应当彻底检查每个测试的执行结果。
妥善保存测试相关的文档及数据,为管理提供依据,为维护提供方便。
软件测试的对象
根据软件的定义,软件包括程序、数据、文档,所以软件测试不仅仅是对程序进行测试,软件测试贯穿于整个软件生命周期。
在整个软件生命周期中,各阶段有不同的测试对象。需求分析、概要设计、详细设计以及程序编码等各阶段产生的文档,包括需求规格说明、概要设计、详细设计、源程序、软件产品安装说明、用户手册等都应作为“软件测试”的对象。
软件测试的质量
软件质量就是“软件与明确和隐含的需求相一致的程度” 。
明确的需求指:软件符合明确叙述的功能和性能需求、文档中明确描述

本文介绍了软件测试的基础,包括测试的发展史、目的、定义和原则。软件测试是为发现错误,确保软件符合用户需求,涉及单元测试、集成测试、系统测试等多个阶段。此外,还涵盖了测试的分类,如白盒测试、黑盒测试、兼容性测试和安全性测试等,以及测试工程师的职责。

1172

被折叠的 条评论
为什么被折叠?



