1.什么是软件缺陷?软件缺陷的产生对软件有什么影响?
定义:软件缺陷就是软件产品中所存在的问题,最终表现为用户所需要的功能没有完全实现,不能满足或不能全部满足用户的需求。
从产品内部看,软件缺陷是软件产品开发或维护过程中所存在的错误、误差等各种问题;从外部看,软件缺陷是系统所需要实现的某种功能的失效或违背。
影响:(1)需求不明确。软件需求不清晰或者开发人员对需求理解不明确,导致软件在设计时偏离客户的需求目标,造成软件功能或特征上的缺陷。此外,在开发过程中,客户频繁变更需求也会影响软件最终的质量。
(2)软件结构复杂。如果软件系统结构比较复杂,很难设计出一个具有很好层次结构或组件结构的框架,这就会导致软件在开发、扩充、系统维护上的困难。即使能够设计出一个很好的架构,复杂的系统在实现时也会隐藏着相互作用的难题,而导致隐藏的软件缺陷。
(3)编码问题。在软件开发过程中,程序员水平参差不齐,再加上开发过程中缺乏有效的沟通和监督,问题累积越来越多,如果不能逐一解决这些问题,会导致最终软件中存在很多缺陷。
(4)项目期限短。现在大部分软件产品开发周期都很短,开发团队要在有限的时间内完成软件产品的开发,压力非常大,因此开发人员往往是在疲劳、压力大、受到干扰的状态下开发软件,这样的状态下,开发人员对待软件问题的态度是“不严重就不解决”。
(5)使用新技术。现代社会,每种技术发展都日新月异。使用新技术进行软件开发时,如果新技术本身存在不足或开发人员对新技术掌握不精,也会影响软件产品的开发过程,导致软件存在缺陷。
2.什么是软件测试?软件测试的基本原则是什么?
定义:软件测试是为了发现错误而针对某个程序或系统的执行过程。用尽一切可能的方法或工具,查找软件中潜藏的错误和缺陷,保证软件产品的质量符合预期需求,并进而为产品发布树立(质量)可靠信心的一种手段。
原则:
(1)所有测试的标准都是建立在用户需求之上的,测试的目的在于发现系统是否满足规定的需求。
(2)尽早的和不断的测试,越早进行测试,缺陷的修复成本就会越低。
(3)程序员应避免检查自己的程序,由第三方进行测试更客观有效。
(4)穷举测试是不可能的。
(5)充分注意测试中的群集现象,一段程序中一发现的错误数越多,其中存在的错误概率越大,因此对发现错误较多的程序段,应进行更深入的测试。
(6)设计测试用例时应包括合理输入和不合理输入,以及各种边界条件、特殊情况下要制造极端状态和意外状态。
(7)注意回归测试的关联系,往往修改一个错误会引起更多错误。
(8)测试应从“小规模”开始,逐步转向“大规模”。
(9)测试用例式设计出来,不是写出来的,应根据测试的目的,采用相应的方法设计测试用例,从而提高测试的效率,更多的发现错误,提高程序的可靠性。
(10)重视并妥善保存一切测试过程文档(测试计划,测试用例,测试报告等)
3.什么是软件测试用例?良好的测试用例应该具有什么样的特性?
定义:测试用例是一组测试输入、执行条件和预期结果的集合,目的是要满足一个特定的目标,比如执行一条特定的程序路径或检验是否符合一个特定的需求。
特性:(1)完整性 (2)正确性(3)一致性 (4)可行性(5)无二义性 (6)健壮性 (7)必要性 (8)可测试性 (9)可修改性 (10)可跟踪性
4.怎样搭建软件测试环境?对软件测试人员有什么要求?
定义:就是搭出可供测试用的环境。简单了说是操作系统,复杂了说,是装了特定软件做了特定设置的操作系统
测试环境=硬件+软件+网络+数据软件测试人员有的要求:
(1)系统思维能力(2)项目管理能力(3)沟通表达能力(4)领导管理技能