软件测试的本质是什么?
软件测试的本质是什么?
章三 软件测试的本质
一、完全测试程序是不可能的。
原因:
1)输入量太大;
2)输出结果太多;
3)软件执行路径太多;
4)软件说明书是主观的。可以
软件测试是有风险的行为。软件测试员要学会的一个关键思想是,如何把数量巨大的可能测试减少到控制的范围,以及如何针对风险做出明智的抉择,哪些测试重要,哪些不重要。
目标是找到最优的测试量,使测试不多不少。
二、并非所有软件缺陷都要修复
原因:
1)没有足够的时间;
2)不算真正的软件缺陷;
3)修复的风险太大;
4)不值得修复。
决策过程通常由软件测试员、项目经理、程序员共同参与。
三、软件测试的术语和定义
1)精确(precision)和准确(accuracy);
软件测试要精度还是准度很大程度上取决于产品是什么,最终取决于开发小组的目标。
2)确认(verification)和验证(validation);
确认是保证软件符合产品说明书的过程。
验证是保证软件满足用户要求的过程。
3)质量(quality)和可靠性;
软件的质量主要指它能够满足客户要求。
可靠性仅仅是质量的一个方面。
为了确保程序质量高而且可靠性强,软件测试员必须在整个产品开发过程中进行确认和验证。
4)测试(testing)和质量保证(quality assurance,QA)。
这两个术语经常用于描述确认和验证的小组和过程。
软件测试员的目标是尽可能早地找出软件缺陷,并确保缺陷得以修复。
软件质量保证人员的主要职责是创建和执行改进软件开发过程并防止软件缺陷发生的标准和方法。
章四 检查产品说明书
一、编写产品说明书
优点:
1)确保最终产品符合客户要求以及正确计划测试投入的唯一方法是在产品说明书中完整描述产品;
2)另一个好处是软件测试员可以将其作为测试项目的书面材料。
二、黑盒测试和白盒测试
黑盒测试(black-box testing):有时又称功能性测试(functional testing)或行为测试(behavioral testing)。在黑盒测试中,软件测试员只需知道软件要做什么——而无法看到盒子里的软件是如何运行的。只要进行一些输入,就能得到某种输出结果。他不知道软件如何运行、为什么会这样,只知道程序做了什么。
白盒测试有时又称为透明盒测试(clear-box testing),软件测试员可以访问程序员的代码,并通过检查代码的线索来协助测试——可以看到盒子里面。测试员可以根据代码检查结果判断或多或少可能出错的数目,并据此定制测试。
三、静态测试和动态测试
静态测试(static testing)是指测试不运行的部分——只是检查和审核;
动态测试(dynamic testing)是指通常意义上的测试——使用和运行软件。
四、静态黑盒测试、测试产品说明书
测试产品说明书属于静态黑盒测试。产品说明书是书面文档,而不是可执行程序,因此是静态的。
它是利用各种资源而获得的数据——诸如易用性研究、焦点人群、销售收入等建立的。
无论产品说明书的格式如何,都可以利用静态黑盒技术测试。产品说明书是书面文字文档或图形文档,或者两者兼而有之。通过询问软件的设计者和编制者甚至可以测试没有写出来的产品说明书。
五、对产品说明书的高级审查
定义软件产品是一个困难的过程。产品说明书必须处理许多不可预料的情况,接受众多变化的输入,并设法把这些汇集在一个描述新产品文档中。
1)假设自己是客户
在假设自己是客户时不要忘记了软件的安全性。客户也许会假设软件是安全的,但软件测试员不能假定程序员会正确处理安全问题。这方面必须详细说明。
2)研究现有的标准和规范
目前要考虑的是在产品中应该应用何种标准和规范。
标准和规范的差别在于程度不同,标准比规范更加严格。如小组认为很重要,则标准应该严格遵守;规范是可选的,但应该遵守。小组将标准作为规范也不罕见,前提是只要每个人都清楚就行。
公司惯用语和约定、行业要求、政府标准、图形用户界面、安全标准。
软件测试员的任务不是定义软件要符合何种标准和规范,这是项目经理或者编写产品说明书的人的任务。
软件测试员要做的是观察,“检查”采用的标准是否正确、有无遗漏。在对软件进行确认和验收时,还要注意是否与标准和规范相抵触,把标准和规范视为产品说明书的一部分。
3)审查和测试类似软件
了解软件最终结果的最佳方法是研究类似软件。
在审查竞争产品时要注意的问题包括:
规模、复杂性、测试性、质量和可靠性、安全性。
记住要阅读关于竞争对手软件的评价方面的联机或印刷的文章。这对安全方面的问题特别有帮助,因为软件测试员偶然使用软件不一定能发现安全方面的缺陷。