软件测试基础知识(面试准备)

1.什么是软件测试?

从广义上说,软件测试是软件生命周期中的所有检查、评审和确认工作,包括在分析、设计阶段,以及完成开发后确认阶段的各类文档、代码的审查和确认。

从狭义上说,是识别软件缺陷的过程,即实际结果与预期结果不一致。

(IEEE(ISO/IEC/IEEE 29119)(国际电子电器公司协会)规范定义)使用人工或自动的手段来运行或测量软件系统的过程,以检测软件系统是否满足规定的要求,并找出与预期结果之间的差异。

2.软件测试的目标

软件测试的目标是保证软件的质量,确保软件功能符合用户需求,在产品发布或交付前尽可能多的发现并改正缺陷。

3.软件测试的对象

软件测试不仅仅是对程序的测试,而且贯穿于软件定义和开发的整个过程。因此,软件开发过程中产生的需求分析、概要设计、详细设计以及编码等各个阶段所得到的文档,包括需求规格说明、概要设计规格说明、详细设计规格说明以及源程序,都是软件测试的对象。

(即 需求规格说明(产品功能、性能)、概要设计规格说明、详细设计规格说明、运行环境、源代码、可运行程序)

4.软件测试的要素有哪些?

      1.质量。软件质量是软件测试的目标,也是软件测试工作的中心。一切从质量出发,也就是一切从客户需求出发。任何违背质量的东西都是问题,测试就是要找出这些问题。
      2.人员。人是决定的因素,测试人员的态度、素质、能力决定着测试的效果,对测试产品的质量也有很大的影响。测试人员因素包括测试组织结构、角色和责任的定义。
      3.技术。软件测试技术,包括方法、工具。
      4.资源。主要是指测试环境中所需要的硬件设备、网络环境,甚至包括测试数据。另一个重要因素就是测试时间,时间也是测试的资源。
      5.流程。从测试计划和测试用例的创建、评审到测试的执行、报告,设定每个阶段的进出标准。

5.软件质量的内涵

正确性、可靠性、可维护性、可读性(文档、注释)、结构化、可测试性、可移植性、可扩展性、用户界面友好性、易用性、健壮性等

6.软件测试遵循的原则

1.测试和及时的测试,测试应当从软件产品初始阶段开始;

2.测试只能表明有缺陷存在,但不能证明没有缺陷;

3.穷尽测试是不可能的,应设定及时终止的条件;

4.所有测试都应追溯到用户需求;

5.测试的规模有小到大,(单元测试、集成测试、确认测试、系统测试)

6.测试的二八原则。要对缺陷发生率高的模块投入更多的测试。少量的模块往往隐藏了大部分的缺陷。缺陷发生率高的模块往往与需求不清、设计不当、编码复杂度高等内在原因关联,所以从风险的角度来看必然较高。

7.杀虫剂悖论。相同的测试再重复多次后就无法再找到缺陷了。测试用例要不断评审修改,不断添加新的和不同的测试,就有可能找到更多缺陷。

8.不能为了便于测试擅自修改程序;

9.既应该测试软件应该做什么,也应该测试软件不应该做什么;

10.为了尽可能的发现错误,应由独立的第三方进行测试

11.测试是上下文关联的。测试在不同上下文环境中的执行是不同的。

12.无错谬论。即使修改了系统中存在的大部分缺陷,但若系统本身背离了用户需求,那么发现和修复缺陷就毫无帮助了。

7.软件测试的度量

1.测试覆盖率:有多少需求、代码已经被测试了。
2.缺陷发现率:缺陷是何时被发现,且有多少缺陷已经被发现,缺陷可以根据严重性来分类,需要记录的数据有:缺陷数量、缺陷的严重等级等。
3.测试成功率:有多少测试用例已经通过,且有多少运行正常的,需要记录的数据有:通过的测试用例数、未通过的测试用例数、已执行的测试用例数等。

8.多少测试才足够?

取决于风险程度(商业风险和技术风险)和项目约束条件(时间和经费)

你可能感兴趣的:(软件测试理论知识)