软件测试的目的和意义是什么?

目的:
① 验证软件需求和功能是否得到了完整的实现
② 尽可能早的发现软件中的bug
③ 尽可能多的发现软件中的bug
④ 验证软件是否可以发布
⑤ 对软件的质量、性能、效率做出合理的评估
⑥ 预防用户使用可能出现的问题
⑦ 预防下个版本可能出现的问题

意义:
解放研发人员和售后服务人员。
软件测试不仅可以降低软件质量风险,使研发人员能够更专心解决程序的算法和效率问题,同时,经过严格检验的完整产品也减轻了售后服务人员的工作量。


软件测试的定义

软件测试的经典定义是在规定条件下对程序进行操作,以发现错误,对软件质量进行评估。因为软件是由文档、数据以及程序组成的,所以软件测试的对象也就不仅仅是程序本身,而是包括软件形成过程的文档、数据以及程序。


软件测试的原则

原则一: 所有的测试都应追溯到用户需求
原则二: 应该尽早地和不断地进行软件测试
原则三: 完全测试是不可能的,测试需要终止
原则四: 测试不能显示软件潜在的缺陷
原则五: 充分注意测试中的集群现象
原则六: 程序员应避免检查自己写的程序
原则七: 尽量避免测试的随意性


软件错误、软件缺陷、软件故障、软件失效定义及关系

软件失效的机理可描述为: 软件错误→ 软件缺陷→软件故障→软件失效
1、 软件错误:在可以预见的时期内,软件仍将由人来开发。在整个软件生存期的各个阶段,都贯穿者人的直接或间接的干预。然而,人难免犯错误,这必然给软件留下不良的痕迹。 软件错误是指在软件生存期内的不希望或不可接受的人为错误,其结果是导致 软件缺陷的产生。可见, 软件错误是一种人为过程,相对于软件本身,是一种外部行为。
2、 软件缺陷:软件缺陷是存在于软件(文档、数据、程序)之中的那些不希望或不可接受的偏差,如少一个逗号、多一语句等。其结果是软件运行于某一特定条件时出现软件故障,这时称 软件缺陷被激活。
3、软件故障:软件故障是指软件运行过程中出现的一种不希望或不可接受的内部状态。譬如,软件处于执行一个多余循环过程时,我们说软件出现故障。此时若无时当的措施(容错)加以及时处理,便产生 软件失效。显然,软件故障是一种动态行为。
4、 软件失效:软件失效是指软件运行时产生 的一种不希望或不可接受的外部行为结果。


Bug的来源有哪些,如何减少软件缺陷?

清晰理解需求的真实目的
理清需求的各个细节
开发之前的构思和规划很重要
开发完成后不要忘记复查你的代码
开发过程中做到专注


缺陷分为哪四级,有哪些不同的状态?

缺陷有四种级别,分别为:致命的(Fatal),严重的(Critical),一般的(Major),微小的(Minor)。
缺陷状态一般包括New、Open、Fixed、Closed、Reopen、Postpone、Rejected、Duplicate 和Abandon
v2-dbf88d5f77b12680ee5cb611f90100ca_r.jpg


提前测试的好处

在软件研发的整个过程中,需求分析、设计、编码、测试、发布维护中,都有可能引入软件缺陷,修复软件缺陷的费用随着时间的推移而增加,尽早测试并发现软件缺陷修正时所投入的人力物力越少。


在V模型中,软件开发的各个阶段和软件测试有什么关系?

V 模型指出,单元和集成测试是验证程序设计,单元测试主要由白盒测试工程对代码进行测试,系统测试主要验证系统设计,检测系统功能、性能的质量特性是否达到系统设计的指标,由测试人员和用户进行软件的确认测试和验收测试,以及对需求说明书进行测试,以确定软件的实现是否满足用户需求或合同要求。


软件测试包括哪些阶段?

软件测试一般分为4个阶段:单元测试、集成测试、系统测试、验收测试 。