软件测试问答题总结

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/qq_27022241/article/details/82714165

                                        软件测试问答题总结

1 什么是软件测试

    软件测试是为了发现错误而执行程序的过程。或者说,软件测试是根据软件开发各阶段的规格说明和程序的内部结构而精心设计一批测试用例(即输入数据及其预期的输出结果),并利用这些测试用例去运行程序,以发现程序错误的过程。

2 软件测试的目的

    测试的目的就是想以最少的人力、物力和时间找出软件中潜在的各种错误和缺陷,通过修正错误和缺陷提高软件质量,回避软件发布后由于潜在的缺陷和错误造成的隐患带来的商业风险。

3 什么是需求文档测试和设计文档测试

    需求文档测试:主要测试需求中是否存在逻辑矛盾以及需求在技术上是否可以实现;

    设计文档测试:测试设计是否符合全部需求以及设计是否合理。

4 Alpha测试、Beta测试和验收测试的含义和区别

    (1)Alpha测试
    Alpha测试是由用户在开发环境下进行的测试,也可以是开发机构内部的用户在模拟实际操作环境下进行的测试。开发者坐在用户旁边,这是在开发者受控的环境下进行的测试。由开发者随时记录下错误情况和使用中的问题。
    (2)Beta测试
    Beta测试是由软件的多个用户在一个或多个用户的实际使用环境下进行的测试。开发者通常不在测试现场,这是在开发者无法控制的环境下进行的测试。由用户记录下遇到的所有问题,定期向开发者报告。beta测试是一模拟真实的使用环境从而发现缺陷的一种测试
    (3)验收测试

    验收测试是以用户为主的测试,软件开发和QA人员也应该参加,测试一般在用户所在地进行,由用户验证软件产品是否满足了所有的需求的一系列的验收测试工作。仅限于做项目的公司,部门内部测试稳定后,根据合同中需求由发包商进行验收测试。验收测试的目的是为了以发现”未实现的需求”为目的,以评估”适合使用”为目标,该类测试的不是以发现缺陷为主要目的。

    区别:

    两者的主要区别是测试的场所不同。

    Alpha测试是指把用户请到开发方的场所来测试,beta测试是指在一个或多个用户的场所进行的测试。Alpha测试的环境是受开发方控制的,用户的数量相对比较少,时间比较集中。

    Beta测试的环境是不受开发方控制的,谁也不知道用户如何折磨软件,用户数量相对比较多,时间不集中。一般地,alpha测试先于beta测试执行。通用的软件产品需要较大规模的beta测试,测试周期比较长。如果产品通过了beta测试,那么就可以正式发行了。

    Alpha测试:在系统开发接近完成时对应用系统的测试;测试后仍然会有少量的设计变更。这种测试一般由最终用户或其它人员完成,不能由程序或测试员完成。
    Beta测试:当开发和测试根本完成时所做的测试,最终的错误和问题需要在最终发行前找到。这种测试一般由最终用户或其它人员完成,不能由程序员或测试员完成。

5 什么是驱动模块和桩模块

    传统的单元测试包括了驱动模块(driver) 和桩模块(stub)。

    驱动模块在大多数场合称为“主程序”,它接收测试数据并将这些数据传递到被测试模块。单元测试一个函数单元时,被测单元本身是不能独立运行的,需要为其传送数据,为此写驱动。

    驱动模块主要完成以下事情:

    1)接收测试输入

    2)对输入进行判断

    3)将输入传给被测单元,驱动被测单元执行

    4)接受北侧单元执行结果,并对结果进行判断

    5)将判断结果作为用例执行结果输出测试报告

    桩模块,比如对函数A做单元测试时,被测的函数单元下还包括了一个函数B,为了更好地定位错误,就要为函数B写桩,来模拟函数的功能,保证其正确。

    桩模块的使命除了使得程序能够编译通过之外,还需要模拟返回被代替的模块的各种可能返回值(什么时候返回什么值需要根据测试用例的情况来决定)。驱动模块的使命就是根据测试用例的设计去调用被测试模块,并且判断被测试模块的返回值是否与测试用例的预期结果相符

6 什么是白盒测试

    1)定义

    白盒测试(White-box Testing,又称逻辑驱动测试,结构测试), 它是知道产品内部工作过程,可通过测试来检测产品内部动作是否按照规格说明书的规定正常进行,按照程序内部的结构测试程序,检验程序中的每条通路是否都有能按预定要求正确工作,而不顾它的功能。白盒法全面了解程序内部逻辑结构、对所有逻辑路径进行测试。白盒法是穷举路径测试。

    2)检查内容

    主要对程序模块进行如下检查:

    [1]对程序模块的所有独立的执行路径至少测试一遍;

    [2]对所有的逻辑判定,取真或取假的两种情况都能至少测一遍;

    [3]在循环的边界和运行的界限内执行循环体;

    [4]测试内部数据结构的有效性,等等。

    3)主要方法

    白盒测试分为静态和动态两类。

    静态:不执行程序,执行静态结构分析,代码走查,静态质量度量

    动态:基本路径,逻辑覆盖(语句覆盖,判断覆盖,条件覆盖,判断-条件覆盖,条件组合覆盖,路径覆盖),循环测试,变异测试

7 什么是黑盒测试

    1)定义

    黑盒测试(Black-box Testing,又称数据驱动测试,功能测试),软件的黑盒测试意味着测试要在软件的接口处进行。这种方法是把测试对象看做一个盒子,测试人员完全不考虑程序内部的逻辑结构和内部特性,只依据程序的需求规格说明书,检查程序的功能是否符合它的功能说明。

    2)检查内容

    [1]是否有不正确或遗漏的功能;

    [2]在接口上,输入是否能正确的接受?能否输出正确的结果?

    [3]是否有数据结构错误或外部信息(例如数据文件)访问错误?

    [4]性能上是否能满足需求?

    [5]是否有初始化或终止性错误?

    3)主要方法

    等价类划分法、边界值分析法、错误推测法、因果图法、正交实验法

8 什么是静态测试

    通过运行程序测试软件称为动态测试.通过评审文档、阅读代码等方式测试软件称为静态测试,在动态测试中,通常使用白盒测试和黑盒测试从不同的角度设计测试用例,查找软件代码中的错误。
    静态测试方法是指不运行被测程序本身,仅通过分析或检查源程序的语法、结构、过程、接口等来检查程序的正确性。对需求规格说明书、软件设计说明书、源程序做结构分析、流程图分析、符号执行来找错。静态方法通过程序静态特性的分析,找出欠缺和可疑之处,例如不匹配的参数、不适当的循环嵌套和分支嵌套、不允许的递归、未使用过的变量、空指针的引用和可疑的计算等。静态测试结果可用于进一步的查错,并为测试用例选取提供指导。

9 什么是回归测试

    回归测试的目的是在程序有修改的情况下,保证原有功能正常的一种测试策略和方法。
    说白了就是,我们测试人员在对程序进行测试时发现bug,然后返还程序员修改,程序员修改后发布新的软件包或新的软件补丁包给我们测试人员,我们就要重新对这个程序测试,已保证程序在修正了以前bug的情况下,正常运行,且不会带来新的错误的这样一个过程。 一般情况下是不需要全面测试的,而是根据修改的情况进行有效的测试。

10 软件测试阶段

    1)单元测试

    单元测试是对软件中的基本组成单位进行的测试,如一个模块、一个过程等等。它是软件动态测试的最基本的部分,也是最重要的部分之一,其目的是检验软件基本组成单位的正确性。

    2)集成测试

    集成测试是在软件系统集成过程中所进行的测试,其主要目的是检查软件单位之间的接口是否正确。

    3)系统测试

    系统测试是对已经集成好的软件系统进行彻底的测试,以验证软件系统的正确性和性能等满足其规约所指定的要求,检查软件的行为和输出是否正确并非一项简单任务,被称为测试的“先知者问题”

    4)验收测试

    验收测试旨在向软件的购买者展示该软件系统满足其用户的需求。它的测试数据通常是系统测试的测试数据的子集。

    5)回归测试

    回归测试是在软件维护阶段,对软件进行修改之后进行的测试。其目的是检验对软件的修改是否正确。
 

11 单元测试、集成测试和系统测试侧重点分别是什么

    单元测试是在软件开发过程中要进行的最低级别的测试活动,在单元测试活动中,软件的独立单元将在与程序的其他部分相隔离的情况下进行测试,测试重点是系统的模块,包括子程序的正确性验证等。

    集成测试,也叫组装测试或联合测试。在单元测试的基础上,将所有模块按照设计要求,组装成为子系统或系统,进行集成测试。实践表明,一些模块虽然能够单独地工作,但并不能保证连接起来也能正常的工作。程序在某些局部反映不出来的问题,在全局上很可能暴露出来,影响功能的实现。测试重点是模块间的衔接以及参数的传递等。

    系统测试是将经过测试的子系统装配成一个完整系统来测试。它是检验系统是否确实能提供系统方案说明书中指定功能的有效方法。测试重点是整个系统的运行以及与其他软件的兼容性。

12 软件测试流程

1)测试需求分析

2)制定测试计划:参考软件需求规格说明书,项目总体计划,内容包括测试范围(来自需求文档),进度安排,人力物力的分配,整体测试策略的制定。风险评估与规避措施有一个制定

3)设计与编写测试用例

4)执行测试

5)提交缺陷报告

6)生成测试总结和报告

13  软件的缺陷等级应如何划分

软件缺陷的等级可以用严重性和优先级来描述;
严重性:衡量缺陷对客户满意度影响的满意程度,分为
1,致命错误,可能导致本模块以及其他相关的模块异常,死机等问题;
2.严重错误,问题局限在本模块,导致模块功能失常或异常退出;
3.一般错误,模块功能部分失效;
4.建议模块,有问题提出人对测试模块的改进建议;
优先级:缺陷被修复的紧急程度;
1.立即解决(P1级):缺陷导致系统功能几乎不能使用或者测试不能继续,需立即修复;
2.高优先级(P2级):缺陷严重,影响测试,需优先考虑;
3.正常排队(P3级):缺陷需要正常排队等待修复;
4.低优先级(P4级):缺陷可以在有时间的时候被纠正;

14 针对缺陷采取怎样的管理措施

1. 要更好的管理缺陷,必须引入缺陷管理工具,商用的或者开源的都可。
2. 根据缺陷的生命周期,考虑缺陷提交的管理、缺陷状态的管理和缺陷分析的管理。
    1)所有发现的缺陷(不管是测试发现的还是走读代码发现的)都必须全部即时的、准确的提交到缺陷管理工具中,这是缺陷提交的管理。
    2) 缺陷提交后,需要即时的指派给相应的开发人员,提交缺陷的人需要密切注意缺陷的状态, 帮助缺陷的尽快解决。缺陷解决后需要即时对缺陷的修复进行验证。这样的目的有两个:一个是让缺陷尽快解决;二是方便后面缺陷的分析(保证缺陷相关的信息准确,如龄期等),这是缺陷状态的管理。

    3) 为了更好的改进开发过程和测试过程,需要对缺陷进行分析,总结如缺陷的类别、缺陷的龄期分布等信息,这是缺陷分析的管理。

15 设计用例的方法和依据有哪些

    白盒测试用例设计有如下方法:基本路径测试\边界值分析\覆盖测试\循环测试\数据流测试\程序插桩测试\变异测试。

    依据就是详细设计说明书及其代码结构

    黑盒测试用例设计方法:基于用户需求的测试\功能图分析方法\等价类划分方法\边界值分析方法\错误推测方法\因果图方法\判定表驱动分析方法\正交实验设计方法。

    依据是用户需求规格说明书,详细设计说明书

16 为什么选择软测工程师行业

    (1)自身兴趣

    软测是利用人工或自动手段,验证软件系统是否满足客户和用户需求的过程。需要软测人员和开发人员相互配合共同完成。

    (2)自身性格

    比较细心和严谨。

    (3)行业发展

    朝阳行业,可持续发展;缺口大;国内对软测越来越重视

    (4)职业寿命长,积累行业经验

猜你喜欢

转载自blog.csdn.net/qq_27022241/article/details/82714165