章三 软件测试的本质

简介: 章三 软件测试的本质 一、完全测试程序是不可能的。 原因: 1)输入量太大; 2)输出结果太多; 3)软件执行路径太多; 4)软件说明书是主观的。可以 软件测试是有风险的行为。

章三 软件测试的本质


一、完全测试程序是不可能的。
原因:
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)审查和测试类似软件
了解软件最终结果的最佳方法是研究类似软件。
在审查竞争产品时要注意的问题包括:
规模、复杂性、测试性、质量和可靠性、安全性。
记住要阅读关于竞争对手软件的评价方面的联机或印刷的文章。这对安全方面的问题特别有帮助,因为软件测试员偶然使用软件不一定能发现安全方面的缺陷。
 

目录
相关文章
|
4月前
|
敏捷开发 分布式计算 测试技术
【软件测试学习】—软件测试的概念与软件测试模型(一)
【软件测试学习】—软件测试的概念与软件测试模型(一)
|
8月前
|
大数据 测试技术
|
安全 测试技术
软件测试怎么学?这些学习软件测试的方法你肯定能用上
软件测试是保障软件质量的重要环节,对于软件开发过程中的每个阶段都有至关重要的作用。如果想从事软件测试行业,或者是提升自己的测试技能,那么软件测试该怎么学? 下面介绍一些学习软件测试的方法。
122 0
|
安全 测试技术 UED
从软件工程角度看测试
近几年的软件测试岗位,开始逐渐变为了QA,即质量保障。看似只是一个名词的变化,其实背后对应的是企业对软件测试这个岗位有了更多的要求和期望。当然也有同学会自嘲自己是点工、PageClienter等,面试造火箭入职拧螺丝的背后也存在很多无奈。
|
测试技术
软件测试面试题:软件测试的过程的V模型,说出它的缺点?
软件测试面试题:软件测试的过程的V模型,说出它的缺点?
144 0
|
测试技术
软件测试面试题:手工测试的局限性?
软件测试面试题:手工测试的局限性?
119 0
|
测试技术 程序员
软件测试面试题:什么是软件测试?软件测试的目的与原则?
软件测试面试题:什么是软件测试?软件测试的目的与原则?
79 0
|
测试技术 程序员 Windows
带你读《软件测试(原书第2版)》之三:软件测试的实质
本书涵盖了软件测试的方方面面:软件测试如何适应软件开发过程,基本的和高级的软件测试技术,在常见的测试任务中运用测试技能,使用自动化提高测试的效率,测试工作的计划和文档化,有效地报告发现的问题,衡量测试工作的成效和产品的改进,测试和质量保证的区别,寻求软件测试员的工作。
|
测试技术 程序员
带你读《软件测试(原书第2版)》之二:软件开发的过程
本书涵盖了软件测试的方方面面:软件测试如何适应软件开发过程,基本的和高级的软件测试技术,在常见的测试任务中运用测试技能,使用自动化提高测试的效率,测试工作的计划和文档化,有效地报告发现的问题,衡量测试工作的成效和产品的改进,测试和质量保证的区别,寻求软件测试员的工作。
|
测试技术
软件测试学习笔记-概念篇(一)
前言   每个系统的成型,上线都离不开测试,这段时间陆陆续续的学习测试,在这里总结一番;作为学习交流之用; 正文 软件测试概述 软件测试的历史: 什么是软件测试: 早期定义:软件测试是对程序能够按预期运行建立起一种信心。
1599 0