第一章 什么是软件测试
1.软件的概念
软件是计算机系统中与硬件相互依存的另一部分,它是包括程序(program)、文档(document)的完美集合。
其中程序是按事先设计的功能和性能要求执行的指令序列;文档是与程序开发、维护和使用有关的图文材料。
2.软件测试的概念
1979年,GlenfordJ.Myers在《软件测试艺术》(TheArtOfSoftwareTesting)一书中,对软件测试这样定义,软件测试就是“为了发现错误而执行程序或者系统的过程”,这一定义明确了软件测试的目的就是为了发现程序中的错误。
1983年,在IEEE提出的软件工程标准术语中,调整了对软件测试的定义,即“使用人工或手动手段来运行或测试某个系统的过程,其目的在于检验它是否满足规定的需求或弄清预期结果与实际结果之间的差别”。明确指出,软件测试作为保证软件质量的一个重要手段,其主要任务是在已设计测试用例的基础上检验软件的各个部分,以及整个系统是否正确、完整地实现了预定的功能,以确保软件质量。
今天,从广义上讲,测试是指软件产品生存周期内所有的检查、评审和确认活动。例如:设计评审、单元测试、系统测试。从狭义上讲,测试是对软件产品质量的检验和评价。它一方面检查软件产品质量中存在的问题,同时对产品质量进行客观的评价。
3.软件开发领域对测试的常见看法
保证程序和相应的规范说明一致
发现软件中的缺陷
确保软件不做不必要的事情
确保系统合理地执行
明确在系统失败之前可以让系统正常运行到何种程度
明确发布给用户的系统中有哪些风险
4.现代软件测试活动一般包括?
制定测试计划
设计测试用例
实施测试
提交缺陷报告
测试总结
5.软件测试的目的
软件测试的根本目的是尽可能多地发现问题并排除潜在的错误,最终把一个高质量的软件系统交给用户使用
首先,测试并不仅仅是为了要找出错误。通过分析错误产生的原因和错误的发生趋势,可以帮助项目管理者发现当前软件开发过程的缺陷,以便及时改进,同时,这种分析也能帮助测试人员设计出有针对性的测试方法,改善测试的效率和有效性。其次,没有发现错误的测试也是有价值的,完整的测试时评定软件质量的一种方法。
测试的根本目的就是确保最终交给用户的产品符合用户的需求,在产品交给用户之前尽可能多地发现并改正问题。具体地讲,测试一般要达到下列目标:
确保产品完成了它所承诺或公布的功能,并且用户可以访问到的功能都有明确的书面说明
确保产品满足性能和效率的要求。使用起来系统运行效率低(性能低)、用户界面不友好、用户操作不方便的产品不能说是一个有竞争力的产品。用户最关心的不是产品的技术有多先进,而是他能从这些技术中得到多少好处,使用是否得心应手,换句话说,用户关心的是他能从系统中取出多少,而不是产品提供商放进去多少。
确保产品是健壮的和适应用户环境的。健壮性即稳定性,是产品质量的基本要求。
软件是否符合用户需求是判断软件质量的重要标准,检验软件的可靠性也是软件测试的目的之一。
6.软件可靠性包括哪些因素?
规定的时间
规定的环境条件
规定的功能
7.软件调试和软件测试的区别
测试的主要工作是找缺陷,而调试的目的是解决缺陷。具体地讲,软件调试是在进行了成功的软件测试才开始的工作。软件测试的目标是尽可能多地发现软件中的错误,而进一步诊断和改正程序中潜在的错误才是调试的任务。调试时通过现象,找出原因的一个思维分析的过程。
测试调试
发现软件错误确定程序中可疑错误的原因和确切位置
对程序(设计或编码)进行修改,排除错误
贯穿整个软件生命期主要在开发阶段
由测试人员和程序员参与程序员参与
8.软件测试员必备的素质
一个优秀的测试工程师要对于一些不易重复出现的错误找到规律,要能够帮助开发人员定位问题,能够对代码进行一定的检查,将错误尽可能地在项目测试的早期阶段发现。
责任心
沟通能力
团队合作能力
耐心、细心、信心
时刻保持怀疑的态度,并且有缺陷预防的意识
具备一定的编程经验