软件测试基础知识和入门
软件测试基础知识和入门
软件测试的作用
软件测试的目的
软件缺陷的定义
引起软件缺陷的因素
软件测试面临的挑战
软件测试模型
软件测试与开发各阶段的关系
软件测试过程
软件测试公理
软件测试的原则
软件测试的对象
软件测试的基本知识
*
软件测试基础知识和入门
软件设计与编码过程是引入缺陷的过程,而软件测试是排除软件缺陷的过程。
测试不能保证软件的质量。力图通过测试提高软件的质量如同经常称体重来达到减肥的目的。如果你想减肥,不要买一个新称,而是节食。如果你想提高你软件质量的话,不是更多的测试,而是更好的开发。
--------Steve McConnell in Code Complete
软件测试的作用
*
软件测试基础知识和入门
基于不同的立场,存在着两种完全不同的测试目的:
从用户的角度出发,普遍希望通过软件测试暴露软件中隐藏的错误和缺陷,以考虑是否可接受该产品。
从软件开发者的角度出发,则希望测试成为验证该软件已正确地实现了用户的要求,确立人们对软件质量的信心。
软件测试的目的-1
*
软件测试基础知识和入门
“使用人工或自动手段来运行或测定某个系统的过程,其目的在于检验它是否满足规定的需求,或是确认预期结果与实际结果之间的差别。”测试的目的是检验软件是否满足了要求 (IEEE软件工程标准术语)。
“程序测试是证明程序中不存在错误的过程”
测试是程序的执行过程,目的在于发现错误;
一个好的测试用例在于能发现至今未发现的错误;
一个成功的测试是发现了至今未发现的错误的测试。
软件测试的目的-2
*
软件测试基础知识和入门
软件缺陷的正式定义
几个关于缺陷的术语:
错误:Error、Mistake
缺陷:Defect、Bug
故障:Fault
失效:Failure
基本上所有软件问题都称为缺陷
*
软件测试基础知识和入门
软件缺陷的正式定义
软件未达到产品说明书表明的功能
软件出现了产品说明书指明不会出现的错误
软件功能超出产品说明书指明范围
软件未达到产品说明书虽未指出但应达到的目标
软件测试人员认为软件难以理解、不易使用、运行速度缓慢,或者最终用户认为不好
*
软件测试基础知识和入门
引起软件缺陷的因素
交流不够、交流上有误解或者根本不进行交流。
在应用应该做什么或不应该做什么的细节(应用的需求)不清晰的情况下进行开发。
软件复杂性。
图形用户界面(GUI),客户/服务器结构,分布式应用,数据通信,超大型关系型数据库以及庞
大的系统规模,使得软件及系统的复杂性呈指数增长,没有现代软件开发经验的人很难理解它。
程序设计错误。
像所有的人一样,程序员也会出错。
*
软件测试基础知识和入门
引起软件缺陷的因素
需求变化。
需求变化的影响是多方面的,客户可能不了解需求变化带来的影响,也可能知道但又不得不那么做需求变化的后果可能是造成系统的重新设计,设计人员的日程的重新安排,已经完成的工作可能要重做或者完全抛弃,对其他项目产生影响,硬件需求可能要因此改变,等等。如果有许多小的改变或者一次大的变化,项目各部分之间已知或未知的依赖性可能会相互影响而导致更多问题的出现,需求改变带来的复杂性可能导致错误,还可能影响工程参与者的积极性。
*
软件测试基础知识和入门
引起软件缺陷的因素
时间压力。
软件项目的日程表很难做到准确,很多时候需要预计和猜测。当最终期限迫近和关键时刻到来之际,错误也就跟着来了。
开发人员的过分自信。
“没问题”
“这事情很容易”
“几个小时我就能拿出来”
太多不切实际的“没问题”,结果只能是引入错误
代码文档贫乏。
贫乏或者差劲的文档使得代码维护和修改变的异常艰辛,其结果是带来许多错误。事实上,在许多机构并不鼓励其程序员为代码编写文档,也不鼓励程序员将代码写得清晰和容易理解,相反他们认为少写文档可以更快的进行编码,无法理解的代码更易于工作的保密(“写得艰难必定读的痛苦”)。
*
软件测试基础知识和入门
软件测试基础知识及入门 来自淘豆网m.daumloan.com转载请标明出处.