(一)软件测试规范

1. 软件测试分为几个阶段 各阶段的测试策略和要求?

  正确回答通过率:64.0%

[ 详情 ] 推荐指数: ★★★★★ 试题难度: 中级

测试过程会依次经历单元测试、集成测试、系统测试、验收测试四个主要阶段
1:单元测试:是针对软件设计的最小单位(对于功能测试就是模块)
2:集成测试:是将模块按照设计要求组装起来进行测试,主要目的是发现与接口有关的问题。
3:系统测试:是在集成测试通过后进行的,目的是充分运行系统,验证各子系统是否都能正常工作并完成设计的要求。
4:验收测试:是部署软件之前的最后一个测试操作。在软件产品完成了单元测试、集成测试和系统测试之后,产品发布之前所进行的软件测试活动

2. 软件的评审一般由哪些人员参加?其目的是什么,并描述之前的评审流程

 正确回答通过率:85.0%

[ 详情 ] 推荐指数: ★★ 试题难度: 初级

软件的评审参加人员:客户、项目经理、开发人员、测试人员。
软件的评审目的:查看软件在未正式投入运行前是否还存在问题。对于不同软硬件平台能否正常运行,是否存在着与客户理解不一致的地方,同时可以对一些可以改进的地方再进行修改。

3. 开发人员总是犯一些低级错误怎么解决?

 正确回答通过率:54.0%

[ 详情 ] 推荐指数: ★★★ 试题难度: 中级

开发人员总是犯一些低级错误:
1:开发管理:从根源来解决问题,软件开发前做好规划设计,并制定规范的开发流程和惩罚制度
2:开发期间引导核对技术实现方案,重要点或者容易忽视点及时提醒技术
3:加强开发人员自测、测试人员测试等,尽量将问题消灭在开发、测试阶段
4:尝试总结、引导技术自我意识到日常的低级错误以及如何避免再犯低级错误:通过规范的缺陷管理引导开发自省:如测试部门整理出常见的缺陷,让开发人员自己对照进行检查,以减少这类低级错误的发生。
5:测试组总结该技术常见低级错误,后续测试针对常见低级错误加强测试验收
6:向上级反馈报备,知悉上级

4. 简述缺陷测试报告的组成 ?

  正确回答通过率:69.0%

[ 详情 ] 推荐指数: ★★★★★ 试题难度: 中级

缺陷报告的组成:
①缺陷编号(Defect ID):提交缺陷的顺序
②缺陷标题(summary):简明扼要的描述缺陷
③缺陷的发现者(Defected By):测试人员
④缺陷发现日期(date):一般为当天
⑤缺陷所属的模块(subject):在测试哪个功能模块时发现的bug. 开发组可以据此决定由谁负责修改该bug
⑥发现缺陷的版本(Defected in release):
⑦指派给谁处理(Assigned to):测试人员指派给开发经理,开发经理根据缺陷所在的模块,需要再次指派具体的开发人员。
⑧缺陷的状态(status):缺陷此时所处的处理阶段或处理情况

5. 功能测试用例需要详细到什么程度才是合格的?

  正确回答通过率:53.0%

[ 详情 ] 推荐指数: ★★★★★ 试题难度: 高难

功能测试用例需要详细到足够的程度才能被视为合格。以下是一些常见的要求和指导原则,以帮助你确定测试用例的详细程度:
1.清晰的步骤:
每个测试用例应该提供清晰的步骤,描述测试人员需要执行的操作。步骤应该具体、明确,以便测试人员可以准确地执行测试。
2.输入数据和预期结果:
测试用例应该指定所需的输入数据,例如用户输入、文件内容、数据库记录等。同时,测试用例也应该定义预期结果,即在给定输入下的期望输出、状态或行为。
3.边界条件:
测试用例应该覆盖各种可能的边界条件。这包括测试最小值、最大值、空值、边界值以及超出正常范围的输入。通过测试边界条件,可以发现潜在的问题和错误。
4.前置条件和环境设置:
测试用例应该明确指定执行测试前需要满足的前置条件和必要的环境设置。这可能包括特定的软件版本、配置设置、数据初始化等。
5.步骤的先决条件和依赖关系:
如果测试用例中的某些步骤依赖于之前的步骤或特定的状态,这些先决条件和依赖关系应该清楚地定义。这有助于确保测试用例的可执行性和正确性。
6.错误处理和异常情况
测试用例应该覆盖错误处理和异常情况。这包括测试系统如何处理无效输入、错误消息的显示、系统崩溃恢复等。

6. 测试用例通常包括哪些内容?

  正确回答通过率:80.0%

[ 详情 ] 推荐指数: ★★★★ 试题难度: 中级

测试用例包括以下内容:
1、测试目标;
2、测试环境;
3、输入数据;
4、测试步骤;
5、预期结果;
6、测试脚本等。
测试用例是指对一项特定的软件产品进行测试任务的描述,体现测试方案、方法、技术和策略,是为某个特殊目标而编制的一组测试输入、执行条件以及预期结果,用于核实是否满足某个特定软件需求,目的是能够将软件测试的行为转化成可管理的模式,同时测试用例也是将测试具体量化的方法之一,不同类别的软件,测试用例是不同的,影响软件测试的因素很多,例如软件本身的复杂程度、开发人员(包括分析、设计、编程和测试的人员)的素质、测试方法和技术的运用等。 收起

7. 项目上线的必要条件 ?描述软件上线标准

  正确回答通过率:48.0%

[ 详情 ] 推荐指数: ★★★★ 试题难度: 高难

项目上线的必要条件 :

一、编写目的
  明确软件测试工作的开始和结束标准。
二、软件测试合格标准
A类错误 B类错误 C类错误 D类错误
无 无 无 ≦4%
  以上比例为错误占总测试模块的比例。
三、缺陷修复率标准
1、A、B、C级错误修复率应达到100%(C类错误允许存在<5个)。
2、D级错误修复率应达到96%以上。
3、缺陷处理情况:缺陷等级非常重要、重要(P1、P2、P3)需全部关闭,一般建议性缺陷<5%。(这里非常重要:遗留的问题,一定要跟团队讨论,确定可遗留到下个版本,而且要在测试中注明已知问题 & 风险)
四、覆盖率标准
  测试需求用例执行覆盖率应达到100%(业务测试用例均以执行)。
五、错误级别
  A级:不能完全满足系统要求,基本功能未完全实现;或者危及人身安全。系统崩或挂起等导致系统不能继续运行。
包括以下各种错误:
1.由于程序所引起的死机,非法退出
2.死循环
3.数据库发生死锁
4.因错误操作导致的程序中断
5.功能错误
6.与数据库连接错误
7.功能不符
8.数据流错误
9.数据流转错误
10.严重的数值计算错误
  B级:严重地影响系统要求或基本功能的实现,且没有更正办法(重新安或重新启动该软件不属于更正办法)。使系统不稳定、或破坏数据、或产生错误结果,或部分功能无法执行,而且是常规操作中经常发生或非常规操作中不可避免的主要问题。
包括以下各种错误:
1.程序接口错误
2.系统可被执行,但操作功能无法执行
3.在小功能项的某些项目(选项)使用无效(对系统非致命的)
4.功能实现不完整,如删除时没有考虑数据关联
5.功能的实现不正确,如在系统实现的界面上,一些可接受输入的控件点击后无作用;对数据库的操作不能正确实现
6.报表格式以及导出内容错误(行列不完整,数据显示不在所对应的行列等导致数据显示结果不正确的错误)
7.轻微的数值计算错误
8.界面错误(设计稿)
  C级:严重地影响系统要求或基本功能的实现,但存在合理的更正办法(重新启动该软件不属于更正办法)。系统性能或响应时间变慢、产生错误的中间结果但不影响最终结果等影响有限的问题。
包括以下各种错误:
1.操作界面错误(包括数据窗口内列名定义、含义是否一致)
2.导出内容、格式错误(只影响报表的格式或外观,不影响数据显示结果的错误)
3.简单的输入限制未放在前台进行控制
4.增删改查操作未给出提示
5.虽然正确性不受影响,但系统性能和响应时间受到影响
6.功能不能重现,影响功能实现
7.显示格式不正确但输出正确
8.增删改功能,在本界面不能实现,但在另一界面可以补充实现。
  D级:使操作者不方便或遇到麻烦,但它不影响执行工作功能或重要功能。界面拼写错误或用户使用不方便等小问题或需要完善的问题。
包括以下各种错误:
1.界面不规范
2.辅助说明描述不清楚
3.输入输出不规范
4.长时间操作未给用户提示
5.提示窗口文字未采用行业术语
6.可输入区域和只读区域没有明显的区分标志
7.必填项与非必填项应加以区别
8.滚动条无效
9.键盘支持不好,如在可输入多行的字段中,不支持回车换行;或对相同字段,在不同界面支持不同的快捷方式
10.界面不能及时刷新,影响功能实现
11.光标跳转设置不好,鼠标(光标)定位错误
12.一些建议性问题
13.系统处理未优化
六、测试环境
最终要在外网测试服环境测试通过,因为上线后用户是在外网进行的操作。(对软件需求规格说明书中的所有功能项进行测试。对软件项目的典型业务流程进行测试。)

七、压力测试
经过压力测试,要求项目在正式网上达到压力测试通过标准(对不同项目有不同的压力测试通过标准)。

8. 请描述下bug的几个要素?

 正确回答通过率:74.0%

[ 详情 ] 推荐指数: ★★★★ 试题难度: 中级

1.没有实现需求说明书列出的功能
2.出现了需要说明书提到不应出现的事情
3.实现了需求说明书未提到的功能
4.没有实现说明书中没有提到但应该实现的功能
5.难于使用,运转速度很慢,用户认为没有达到预期

9. 白盒和黑盒的区别,你是怎么运用的?

 正确回答通过率:80.0%

[ 详情 ] 推荐指数: ★★★★ 试题难度: 初级

黑盒测试:已知产品的功能设计规格,可以进行测试证明每个实现了的功能是否符合要求。利用其检查功能是否符合需求说明书,能够正常使用,
白盒测试:已知产品的内部工作过程,可以进行测试证明每种内部操作是否符合设计规格要求,所有内部成分是否经过检查
利用其检查程序模块的内部逻辑走向,主要覆盖程序内的逻辑。

10. Alpha测试与Beta的区别 ?

  正确回答通过率:58.0%

[ 详情 ] 推荐指数: ★★★ 试题难度: 中级

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

11. 测试用例设计标准 ?

  正确回答通过率:44.0%

[ 详情 ] 推荐指数: ★★★★★ 试题难度: 高难

1.需求点100%被覆盖
2.被测功能点或控件100%被覆盖
3.必须验证正确性操作、正常数据和可能导致出错的数据、操作
4.有数据值域的必须考虑数据值域覆盖:边界值、等价类
5.所有边界值都必须覆盖
6.等价类必须包含有效和无效等价类
7.等价类各子类不存在交错以避免冗余
8.等价类的使用避开边界值
9.所有等价类都必须覆盖(等价类数量过多导致超过测试成本的,优先考虑有效等价类,然后根据数据使用频率、几率高低分优先级,高级优先覆盖,同时考虑自动化测试)
10.用例可以直接执行或易于准确执行
11.用例中的数据或描述不存在二义性或多义性,不会因执行人不同而产生不同执行结果
12.用例有明确的预期结果能够用于准确判断是否符合要求
13.集成用例必须包含打开系统和退出系统的验证
14.业务用例必须考虑不同模块数据和业务的一致性
15.含数据库部分必须包括数据库的验证
16.核心功能点必须被覆盖多次
17.用例设计必须提供设计思路、策略以便于评审和将来复用(含用例设计方法思路、数据分类等)

测试用例数量参照标准:
1.测试用例的数量不少于需求点数量
2.核心功能点用例数量必须大于非核心功能点用例数量
3.根据等价类、边界值的数量参照
有效用例的数量>=最大有效等价类(含有效边界值)数量
无效用例的数量>=所有无效等价类数量之和
用例数量>=最大有效等价类(含有效边界值)数量+所有无效等价类数量之和

12. 常见主流的软件测试的流程是什么?

  正确回答通过率:52.0%

[ 详情 ] 推荐指数: ★★★★★ 试题难度: 高难

一、软件测试流程包括:
测试计划:测试计划是指根据用户需求报告中关于功能要求和性能指标的规格说明书,定义相应的测试需求报告,使得随后所有的测试工作都围绕着测试需求来进行,同时适当选择测试内容,合理安排测试人员、测试时间和测试资源等
测试设计:测试设计是指将测试计划阶段制订的测试需求分解,细化为若干个可执行的测试过程,并为每个测试过程选择适当的测试用例,保证测试结果的有效性
测试开发:测试开发是指建立可重复使用的自动测试过程
测试执行:测试执行是指执行测试开发阶段建立的自动测试过程,并对所发现的缺陷进行跟踪管理,一般有单元测试、集成测试、确认测试等步骤组成
测试评估:测试评估是指结合量化的测试覆盖域及缺陷跟踪报告,对应用软件的质量和开发团队的工作进度以及工作效率进行综合评价
二、其中测试执行由以下步骤组成:
单元测试:通过对每个最小的软件模块进行测试,对源代码的每一个程序单元实行测试,来检查各个程序模块是否正确地实现了规定的功能,确保其能正常工作
集成测试:对已测试过的模块进行组装集成,目的在于检验与软件设计相关的程序结构问题
确认测试:检验软件是否满足需求规格说明中的功能和性能需求,确定软件配置完全、正确,并检验软件产品能否与实际运行环境中整个系统的其他部分协调工作
验收测试:主要让用户对软件进行测试,并重新执行已经做过的测试的某个子集,保证没有引入新的错误

13. 测试⽤例主要有哪些元素?

  正确回答通过率:73.0%

[ 详情 ] 推荐指数: ★★★★★ 试题难度: 初级

八大要素是用例ID、用例名称、测试目的、测试环境、前提条件、测试步骤、 预期结果、设计人员。
测试用例可以分为基本事件、备选事件和异常事件。设计基本事件的用例,应该参照用例规约(或设计规格说明书),根据关联的功能、操作按路径分析法设计测试用例。
而对孤立的功能则直接按功能设计测试用例。基本事件的测试用例应包含所有需要实现的需求功能,覆盖率达100%。

14. 软件测试有什么策略和阶段?

 正确回答通过率:83.0%

[ 详情 ] 推荐指数: ★★★ 试题难度: 初级

软件测试的策略主要有:动态测试和静态测试、⽩盒测试和⿊盒测试。测试阶段按照研发顺序分别是:单元测试、集成测试、系
统测试,有些公司还会有验收测试;(单元测试开发在调试代码时就完成,集成测试也是,但是有时测试⼈员也需要进⾏集成测试;测试⼈员平时主要的⼯作就是系统测试,验收测试是有客户参与进⾏的测试)

15. 测试报告里面包含什么内容?

  正确回答通过率:76.0%

[ 详情 ] 推荐指数: ★★★★★ 试题难度: 中级

一份优秀的完整的测试报告包含哪些内容呢?经过整理之后,内容具体如下:
1.测试项目背景介绍,主要对测试报告编写目的、系统名称、环境、专业术语等相关内容进行介绍,同时还要对测试报告里面引用的参考资料全部列出。
2.测试计划,主要对测试具体计划进行列出,利用表格将测试内容进行调出,逐一说明系统的具体功能以及指标,同时还要介绍测试进度。
3.测试结果及发现,通过测试可以获得动态输出结果,然后与动态输出相关要求展开对比,对其中存在的一些问题及时发现并解决。
4.测试分析,这也是测试报告最重要的一项内容,主要对测试环节软件存在的问题进行记录,然后分析可能产生的影响,并提出合理的解决对策。
测试报告主要包括以上这些内容,在做测试报告的时候可以专门找测试机构,利用软件做报告也可以。目前测试技术比较先进,而且测试环境相对完善,测试报告整体质量相对较好。

16. 软件的评审一般由哪些人参加?其目的是什么?

  正确回答通过率:79.0%

[ 详情 ] 推荐指数: ★★★ 试题难度: 初级

在正式的会议上将软件项目的成果(包括各阶段的文档、产生的代码等)提交给用户、客户或有关部门人员对软件产品进行评审和批准。其目的是找出可能影响软件产品质量、开发过程、维护工作的适用性和环境方面的设计缺陷,并采取补救措施,以及找出在性能、安全性和经济方面的可能的改进。
人员:用户、客户或有关部门开发人员,测试人员,需求分析师都可以,就看处于评审那个阶段

17. 测试活动中,如果发现需求文档不完善或者不准确,怎么处理?

 正确回答通过率:78.0%

[ 详情 ] 推荐指数: ★★★★ 试题难度: 初级

产品经理在解说需求文档时不可能完全没有问题,我经常会采用如下处理方式:
1:如果遇到需求文档不完善或不准确,我会当场提出,与产品经理、开发人员等相关人员进行沟通交流,确保需求明确,然后做记录,提醒产品对需求文档进行补充更新之后再发送给相关人员;
2:如果产品不能当场确认的需求,那么要记录到会议纪要中,后续在排期之前产品需要明确确认后发送邮件给相关人员;
3:如果排期前还是无法确认,又需要预估时间的,那么排期比需求明确要略长
4:在测试时,需求还没确认,那么也要开始测试。此时可以根据代码以及实际数据跑出的结果,查看系统当前实现功能,然后与prd要求进行比较,然后向产品和研发说明,确认系统实现功能。

18. 解释什么是兼容性测试?兼容性测试侧重哪些方面?

  正确回答通过率:39.0%

[ 详情 ] 推荐指数: ★★★★ 试题难度: 高难

兼容测试主要是检查软件在不同的硬件平台、软件平台上是否可以正常的运行,即是通常说的软件的可移植性。
兼容的类型,如果细分的话,有平台的兼容,网络兼容,数据库兼容,以及数据格式的兼容。
兼容测试的重点是,对兼容环境的分析。通常,是在运行软件的环境不是很确定的情况下,才需要做兼容。根据软件运行的
需要,或者根据需求文档,一般都能够得出用户会在什么环境下使用该软件,把这些环境整理成表单,就得出做兼容测试的兼容环境了。
兼容和配置测试的区别在于,做配置测试通常不是 Clean OS 下做测试,而兼容测试多是在 Clean OS 的环境下做的。

19. 平时是怎么设计测试⽤例的?

 正确回答通过率:92.0%

[ 详情 ] 推荐指数: ★★★★ 试题难度: 初级

这个问题的点主要考察是否掌握测试⽤例设计⽅法,在回答之后,HR可能会继续追问某种设计⽅法的概念或者实例,这时举例说
明即可;如:等价类划分法就是把程序的输⼊域划分成等价类,从每个部分中选取少数代表性数据当做测试数据。
回答:设计测试⽤例⼀般都会使⽤到等价类、边界值、场景/流程法、因果图还有错误推测法;

20. 如何保证被测产品质量/用例覆盖度?

  正确回答通过率:48.0%

[ 详情 ] 推荐指数: ★★★★★ 试题难度: 高难

(1)在需求评审阶段,熟悉并分析需求,对每条需求进行拆解,并对有疑问的地方及时和产品经理/BA沟通;
(2)在设计测试用例阶段,我一般根据需求文档用XMind对测试点进行整理,然后再对每个测试点进行测试用例的设计;另外,我们产品经理会在研发管理系统里建立他的需求,我设计测试用例时会将用例关联到需求上面,确保每个需求都有用例覆盖到;
(3)在用例评审阶段,我们一般先组内进行详细的评审;然后召集产品经理、开发一起评审,主要是评审一些业务流程和跨系统的接口,确保大方向没有问题,之后根据评审结果及时修正测试用例;
(4)在测试阶段,我们会有交叉测试,因为每个人考虑问题的角度不一样。另外在测试过程中,如果发现用例有考虑不周全的地方,会及时完善进去;
(5)在BUG修复我们进行验证时,会将这个BUG相关联的部分也测试一下,防止一些代码改动影响到之前的功能;
(6)在上线前,会进行一个深度回归,回归的用例会和开发、产品一起评估决定。
在流行测试左移、右移。测试左移,是往测试前的开发阶段移,越早发现不合理的地方,出现问题的几率就越低。
测试右移,是往测试后的发布阶段移,第一时间发现线上的问题并解决。可以在第(2)点之前和第(6)点之后,针对测试左移和右移说说测试人员能做哪些事情、对确保产品质量有什么影响,我想这是一个跳出常规的加分项。
至于如何保证测试用例的覆盖率,可以回答(1)-(4)点,在描述第(2)点时,也可以说说你在设计测试用例时着重要考虑的点。比如,一些软件的业务流程比较复杂,设计测试用例不能只局限于表面的功能,要去深挖,多思考可能出现的场景;再比如一些边界值的测试、异常流程的测试等一些容易忽略的方面。

21. 软件测试类型有哪些?区别与联系?

 正确回答通过率:87.0%

[ 详情 ] 推荐指数: ★★★★ 试题难度: 初级

常见:功能测试、性能测试、界面测试。
功能测试:占比最大,也叫黑盒测试(不看代码)。进行动态测试时,需要测试软件功能,不需要测试软件内部结构和处理过程。
技术方法有:等价类划分法、边界值分析、错误推测、因果图和综合策略。
性能测试:通过自动化测试工具模拟多种正常、异常、峰值条件,对系统各项性能指标测试。
负载测试、压力测试属于此。负载测试:确定各项工作负载下的系统性能,目标是负载主键增加时,系统各项性能指标变化;压力测试:通过系统的瓶颈,获得系统能提供的最大服务级别。
界面测试:界面好坏决定用户对软件第一印象。合理的界面带来轻松愉悦感受,失败界面有挫败感,让强大的功能付诸东流。
区别:功能测试关注软件功能,每个功能可能存在的问题。性能测试软件多用户并发的稳定性和强壮性。界面测试关注用户体验和易用性。

22. 简述软件开发过程与角色分工?

 正确回答通过率:84.0%

[ 详情 ] 推荐指数: ★★ 试题难度: 初级

软件开发中的角色分工
一、项目经理
对整个项目负责,任务分配,把控进度;
二、产品经理
进行需求调研,输出需求调研文档、产品原型等;
三、UI设计师
根据产品原型输出界面效果图;
四、架构师
项目整体架构设计、技术选型等;
五、开发工程师
代码实现,只要做对的事情就行,不需要把事情做对;
六、测试工程师
编写测试用例,输出测试报告;
七、运维工程师
软件环境搭建、项目上线。

23. 项目提测的工作清单?

 正确回答通过率:51.0%

[ 详情 ] 推荐指数: ★★★★★ 试题难度: 高难

测试同学在测试之前,需要熟读提测邮件内容,该邮件一般由本次需求的开发负责人来发送,一般提测邮件包含以下内容:
基本信息:
项目迭代名称:XXXXX
项目迭代类型:如新功能业务、优化业务、业务迭代、与第三方对接【SDK、平台对接】、数据对接等
是否完全交付:全部提测、部分提测等
交付内容:
后端:
提交的项目名称
提交的分支名称
前端:
Android:分支名称
IOS:分支名称
H5小程序
SQL脚本版本:
测试环境是否验证通过、生产环境是否需要备份
一般由DBA维护全量的脚本,测试测完之后,给运维提供的是增量的sql脚本-必须是测试环境验证通过的且经过DBA 审核通过的
SQL脚本一般包含建表语句、插入语句、增加索引、删除垃圾数据、更新数据等
系统配置及业务配置
一般在配置中心去配置一些参数,如每小时发短信的次数、短信开关是否开启等等
定时任务:
测试环境本次新增的定时任务,是否同步到生产环境
回滚步骤:一般由技术负责人填写
过程控制:
后端代码是否review
前端代码是否review
冒烟验证情况
开发冒烟验证情况很重要,测试同学在测试之前,基于开发的冒烟验证情况,同时跑一遍冒烟测试的案例,要是验证情况不符合预期,可以打回,等开发继续完善并修复已知问题,然后重新提测。
上线流程:
走层次审批流程,等技术经理确认无误可以上线后,运维同学才可以走发布流程。
测试同学一般基于该邮件回复,如测试环境验证通过,可以上预发布等,走上线流程,所以这邮件里边的每一个选项都要仔细确认清楚。
通常在开发提测后,我们首先要确认:
前后端代码是否都已经提交
提交的代码是否包含了与本次无关的内容,一般SVN -show log 可以看到最近的提交记录,前提是开发提交代码备注清楚
以上2项确认无误后,构建测试环境,将开发提交的最新需求的代码部署到测试环境,并进行冒烟测试。
以上就是项目提测的一个基本的checklist,很重要。如果是口头告知可以提测的,建议优化流程,收集基本的信息,走邮件,避免线上事故。

24. 简述Bug描述与周期 ?

 正确回答通过率:71.0%

[ 详情 ] 推荐指数: ★★★★★ 试题难度: 初级

1、bug标题要简洁明了,重心明确
2、要写明问题出现的前提条件
3、操作过程要按步骤写清楚
4、要写实际效果和预期效果
5、要标明bug出现的概率
6、提供必要的截图和日志,比较复杂的操作步骤提供视频
7、bug等级要分好类,致命性bug、严重bug、一般性bug、建设性意见
8、出现bug的软件版本号
9、bug出现的模块

25. 测试计划会包含哪些内容?

  正确回答通过率:75.0%

[ 详情 ] 推荐指数: ★★★★★ 试题难度: 中级

测试目标、 测试概要、 测试范围、 重点事项、 质量目标、 资源需求、 人员组织、 测试策略、 发布提交、 测试进度和任务人员安排、 测试开始/完成/延迟/继续的标准、 风险分析。
1、 测试目标:对测试目标进行简要的描述。
2、 测试概要:摘要说明所需测试的软件、名词解释、以及提及所参考的相关文档。
3、 测试范围:测试计划所包含的测试软件需测试的范围和优先级,哪些需要重点测试、哪些无需测试或无法测试或推迟测试。
4、 重点事项:列出需要测试的软件的所有的主要功能和测试重点,这部分应该能和测试案例设计相对应和互相检查。
5、 质量目标:制定测试软件的产品质量目标和软件测试目标。
6、 资源需求:进行测试所需要的软硬件、测试工具、必要的技术资源、培训、文档等。
7、 人员组织:需要多少人进行测试,各自的角色和责任,他们是否需要进行相关的学习和培训,什么时候他们需要开始,并将持续多长时间。
8、 测试策略:制定测试整体策略、所使用的测试技术和方法。
9、 发布提交:在按照测试计划进行测试发布后需要交付的软件产品、测试案例、测试数据及相关文档。
10、 测试进度和任务人员安排:将测试的计划合理的分配到不同的测试人员,并注意先后顺序.如果开发的Release不确定,可以给出测试的时间段.对于长期大型的测试计划,可以使用里程碑来表示进度的变化。
11、 测试开始/完成/延迟/继续的标准:制定测试开始和完成的标准;某些时候,测试计划会因某种原因(过多阻塞性的Bug)而导致延迟,问题解决后测试继续。
12、 风险分析:需要考虑测试计划中可能的风险和解决方法。

26. 回归测试,是怎么理解的?

  正确回答通过率:63.0%

[ 详情 ] 推荐指数: ★★★ 试题难度: 中级

回归测试的策略一般由测试经理或测试组长制定,初级软件测试人员只要按相应的策略执行测试即可。现以XYC邮箱的测试为例,简要介绍一下回归测试的基本策略。
(1)回归测试时执行全部的测试用例。
XYC邮箱V1.0版本的第一轮测试中发现100个Bug,那么在第二轮的回归测试中,除了测试这100个Bug之外,其他所有功能点的测试用例需要重新再执行一遍,这样做的原因在于,回归测试的V1.1版本是在修改了V1.0版本存在的100个Bug的基础上建立起来的。由于修复了大量的Bug,这就意味着要改动大量的代码,当多处代码被改动后谁也不能保证其他功能点不受影响,所以对所有的功能点进行测试是比较保险的,也是比较周密的,不会遗漏任何的测试点。使用此策略的时间周期和人力成本也是比较高的,一般情况下,当第一轮测试发现的Bug数量过多的情况下,第二轮回归测试应该执行全部的测试用例。
(2)选择重要的功能点、常用的功能点、与Bug相关联的功能点进行回归测试。
XYC邮箱的第二轮回归测试中又发现了40个Bug,那么在第三轮的回归测试过程中,除了要测试这40个Bug之外,还应当把重要的功能点、常用的功能点、与Bug相关联的功能点的测试用例再执行一遍,其他次要的测试用例可在时间充足的情况下选择性执行。
(3)选择性执行关键功能点的测试用例。
XYC邮箱的第三轮回归测试中又发现了12个Bug,那么在第四轮的回归测试过程中,除了测试这12个Bug之外,还可以选择性地执行一些关键功能点的测试用例,其他测试用例可在时间充足的情况下选择性执行。
(4)仅测试出现Bug的功能点。
如果测试组认为软件的功能点已经十分稳定了,回归测试的时候可选择仅测试出现Bug的功能点。每个策略都有其适应的场景,不能一概而论,应当以Bug的数量和严重程度为导向,深入分析,然后得出适合本项目的回归测试策略。
回归测试是在系统测试人员完成了需求评审、测试计划、用例设计、环境搭建、Bug提交等关键性的测试工作之后所要开展的工作,可以说此时的测试人员已经完全融入测试体系当中,也完全可以胜任相应的测试工作了。至于回归测试的策略,初级软件测试人员可通过先学习测试经理制定的策略,再从执行回归测试策略过程中进一步提升自己的测试经验。

27. 测试用例应该考虑哪几个方面?

 正确回答通过率:83.0%

[ 详情 ] 推荐指数: ★★★★★ 试题难度: 初级

第1:测试用例的覆盖程度。最基本的是项目需求功能得全部覆盖,再都就是通过测试用例方法对功能测试点进行覆盖,100%的覆盖是不可能的,人不是万能的,没人的思维是完美的无懈可击的。再者每个项目都是有时间限制的
第2:用例是否已达到工作量最小化。 在满足用例覆盖程度最大化的前提下,应该尽量减小执行用例所需要的工作量。所以测试颗粒要适中,根据项目的情况而定。
第3:用例的分类,描述是否清晰 。用例分类,相同类型的用例是否放在一起,这样有助于理清思路,清楚了解测试用例设计是否完善。例如接口类用例、数据类用例、逻辑类用例等。也可以根据项目功能分类,这样有助于工作划分。它是用来指导执行测试的,所以清晰的描述是必要的,越清晰明执行时就越简单。
第4:测试用例是否表明目的。现在的项目都是多人协作,写明目的呢就是无论谁执行测试都能短时间进入执行工作。
第5:测试用例的易维护性,用例它是变动的,不是写完即可。需求的变动那么用例也得随着更新,或在执行过程想到新的测试点也需要新增到用例中。
第6:有充分的负面测试,一个好的项目除了正常使用外还需要一定的容错性对错误操作、输入进行一些处理
第7:测试用例没有重复没有冗余,避免重复的劳动减少工作量

28. 你会通过什么方式,快速熟悉新产品?

 正确回答通过率:75.0%

[ 详情 ] 推荐指数: ★★★★ 试题难度: 初级

参考建议
1、拿测试版动手点,点多了就知道产品的功能是什么,逻辑业务是怎么做的
2、看产品说明书,熟悉每一个功能的作用,知道是干嘛的就好理解了
3、看一遍测试用例,借助用例熟悉功能
4、查看一遍bug管理库(没管理库怎么办?)查看扣扣的聊天信息,或者遇到问题觉得不合理的时候记录下来找个时间一块问
5、自己动手梳理一遍脑图,把不知道的逻辑不清楚的记下

29. 全新项目,如何保证测试的覆盖率?

 正确回答通过率:36.0%

[ 详情 ] 推荐指数: ★★★★★ 试题难度: 高难

1、覆盖需求文档或者是产品原型图中涉及的需求,合理全面去设计可执行测试点,测试过程中运用等价类、边界值、场景法、经验等测试方法;
2、遇到问题和不懂得地方,多和产品沟通沟通,进而发现其他隐藏需求;
3、测试人员写完的用例或者测试点,主动找产品、研发、测试 leader 评审一下,这样方便我们从不同角度发现问题;
4、新项目,我们可以按照先通过冒烟测试发现主流程 BUG,再去覆盖正向流程,再去覆盖异常流程,最后覆盖非功能方面用例(兼容、易用、安全、性能等)。尽量按照这个流程去测试,效率也更高,这样我们也有时间拓展下其他测试思路。

30. 如何保证测试用例的覆盖度?

  正确回答通过率:59.0%

[ 详情 ] 推荐指数: ★★★★★ 试题难度: 高难

(1) 满足产品说明书, 需求文档等要求
(2) 编写测试用例的方法(等价类划分,边界值,场景法,正交表,因果图法,错误推断法, 判断表)
等价类划分 当测试需要数据量过大,且数据操作可以分类时进行等价类划分
边界值 如果需求规定范围或者规定了取值的个数时,可利用边界值进行测试
场景法 重点是测试流程
因果图法 这个方法考虑到功能点之间的关联,利用因果图和判定表可以筛选冗余的用例和有价值的用例。
错误推断法 根据经验或直觉推测程序中可能存在的各种错误,从而有针对性地编写检查这些错误的测试用 例的黑盒测试方法
(3) 进行测试用例评审,让不同的人参与进来
(4) 结合软件质量的八大特性进行思考
功能性、可靠性、效率性(性能)、易用性、可移植性、兼容性、安全性、便于维护性

31. 代码覆盖率有哪些的指标?

  正确回答通过率:32.0%

[ 详情 ] 推荐指数: ★★★★ 试题难度: 高难

代码覆盖率工具通常使用一个或多个标准来确定你的代码在被自动化测试后是否得到了执行,常见的覆盖率报告中看到的指标包括(代码覆盖率达到 100% 不代表设计没有问题):
分支覆盖率(Branch coverage)
针对 if…else、case 等分支语句,看代码中设计的分支是否都被测试到了
语句覆盖率(Statement Coverage)
语句覆盖率上不去时,可以查看未覆盖处的代码是测试用例的疏忽、冗余代码或是保护用途的代码,比如case的default(如果出现此类,一般是case的条件已经全部列出,可以将最后一个条件改为default);

翻转覆盖率(Toggle coverage)
包括两态翻转(0/1)和三态翻转(0/1/Z),常用的是两态翻转。对于单比特信号而言,若仿真用例使得该信号从0到1和从1到0的翻转均发生,则认为这里的翻转覆盖率是全面的(100%)。
即使翻转覆盖率达到 100%,分支覆盖率和语句覆盖率也不一定达到 100%。
条件覆盖率(Conditional coverage)
条件覆盖率可以看作是对分支覆盖率的补充。每一个分支条件表达式中,所有条件的覆盖。
状态机覆盖率(FSM coverage)
状态机覆盖率主要检查当前状态到下一个状态的跳转是否都跳转过。

32. 介绍下各种编程语言的代码覆盖率工具?

 正确回答通过率:74.0%

[ 详情 ] 推荐指数: ★★ 试题难度: 中级

c/c++: gcc+gcov+lcov;(单元测试:CUnit、CPPUnit、Google GTest等)
Java : Maven cobertura 插件,Clover,EMMA,Jtest;eclipse中也有eclemma插件
Python: PyUnit + coverage.py;
PHP: phpunit + –coverage-html + Xdebug ;
Perl: Test::Class 和 Devel::Cover;
Shell: shUnit2 + shcov;

33. 需求评审的目的和意义是什么?

 正确回答通过率:88.0%

[ 详情 ] 推荐指数: ★★★ 试题难度: 初级

需求评审的目的是使项目成员对需求理解达成共识,并第一时间发现需求不合理点或者需求遗漏。
需求评审的意义是:
1、传达产品理念;
2、完善需求;
3、建立成员的责任感。需求评审是一个统一目标,明确需求,确定实现过程的会议。

34. 需求不明确,通过哪些方式解决?

 正确回答通过率:59.0%

[ 详情 ] 推荐指数: ★★★ 试题难度: 高难

常见的问题:
营销人员或市场部提供的需求不明确,为获得清晰、准确的需求需要花费宝贵的时间。
一般下订单时难以明确需求,没有固定的表格填写,由人工随意填写文档。
需求是否能够更明确,产品客制化强烈,具有强烈的客户个性化要求,如何做好与客户端的协调很重要。
项目时间紧迫,需求分析常常不到位,同时也受到供应商交货时间的制约;
需求提供不完整,不够细,而且比较凌乱。
需求包括性能、ID要求等,现在没有明确的要求,产品部到底要提供给研发部门什么东西现在没有明确规定。同样研发部门要给工厂提供哪些文件也没有规定。
不能清晰定义样机的产品规格,很多的项目延期就是因为规格不清晰的原因。
前期需求分析不明确,往往样子已经出来了,又提出很多新的需求。导致产品变更较多,不停的在更改。
对需求了解不够精确,往往做好之后才发现不是客户所需要的。
研发对产品的需求分析不够,只注重了客户的直接需求,而忽视了客服记录的问题,导致后期维护困难。
市场调研的工作不清晰,通常是手板样机做出来后拿着样机去找客户。
研发与市场脱节,对市场需求把握不准确。如何找到有价值的需求?如何调研用户需求?
可能的对策:

传统研发型企业对需求不明确非常头疼,但是互联网企业研发反而认为获取需求非常简单。这些企业从电商销售平台、客服平台、粉丝见面会、互动平台等数据源平台可以快速获取一线用户对产品的评价。
充分记录需求,规范需求收集模板,扩大需求收集源头,如展会、客户、研发、客服等,形成统一的需求IT数据库。
需求要有规范化的记录,尽可能细化,形成需求库和完善的需求来源,需求评审要重视,真正接触市场和销售人员要参与需求评审,给出需求意见。
需求沟通过程中,经常出现用户真的不知道需求是什么,或者对需求只有朦胧的感觉,说不清楚需求,有些用户虽然心里明白想要什么,但却说不清楚需求。例如买鞋子,我们非常了解自己的脚,但很难用语言说清楚脚的大小和形状。通常拿鞋子去试,试穿时感觉到舒服才会买鞋。需求分析员必须设法弄清楚用户真正的需求,这是需求分析员职业的挑战。出色的需求分析员不仅要有过硬的专业知识,还要具备较强的交流、沟通能力。
提高产品经理本身的能力以及信息收集能力,让产品经理逐渐往产品规划方向发展。
减少模棱两可的需求,模棱两可是需求规格说明中最可怕的问题之一,模棱两可的需求会使不同的风险承担者产生不同的期望。它会使开发人员为错误问题而浪费时间,并且使测试者与开发者所期望的不一致。测试组对需求理解不一致容易导致许多测试用例重新编写并重做测试。模棱两可的需求带来不可避免的后果便是返工,重做一些已做好的事情。返工会耗费开发总费用的40%,而70%~85%的重做是由于需求方面的错误所导致的。想象一下,如果能减少一半的返工会是什么样的情况?处理模棱两可需求的方法是组织负责从不同角度审查需求的团队,在需求开发完成后认真审核,不能只简单浏览一下需求文档。
保证足够的用户参与时间,用户经常不明白为什么收集需求和确保需求质量需花费那么多时间。与用户充分接触,和他们一起工作、学习、聚会、娱乐,搜集和观察产品体验中细致的差异。把自己当成小白用户,站在用户角度,忘记自己的经验和技术。学会提问题:需求是从哪里来的?目标客户是谁?有多少人有这样的需求?这个需求紧迫吗?他们的痛点是什么?场景是什么(用产品之前/之后)?需求满足之后数据和指标上会有什么表现?
销售部门和研发部门共同制定需求录入和移交的标准,减少扯皮。

35. 如何处理线上发生的问题Bug?

 正确回答通过率:71.0%

[ 详情 ] 推荐指数: ★★★★★ 试题难度: 中级

线上bug反馈来源:
1.运营同学接收到客服的电话反馈问题;
2.在客户服务群里,客户直接反馈的问题;
3.公司老板或者公司内部工作人员反馈的问题等等
遇到线上的bug要怎么做?
1.第一时间积极响应
与发现问题的人进行沟通,了解问题发生的场景、步骤、账号、手机型号、时间等关键信息,并给以一定的回复:我们稍后问题解决了,第一时间给您回复,做到让客户放心。
一般是运营同学或测试同学对接
2.有问题之后,测试同学第一时间在生产环境复现【或是测试环境】
在生产环境使用客户提供的信息进行复现,若复现不了,第一时间找对应的开发,一起查明问题。
测试同学将其问题记录在bug管理平台,并注明是线上问题。
如友盟平台-APP端检测与分析平台,提供行为日志,快速还原错误现场,可以帮助开发快速定位问题。
3.找到原因后,评估影响域
开发评估bug影响域: 是只有个别用户会出现这种情况,还是相同APP版本都会出现问题,要是影响域较大,要求紧急修复,要是影响范围较小,可以放在下期优化。
要是严重的bug,开发产品测试一起,确定要紧急修复,并对影响的范围进行评估,并对要测的范围进度梳理。测试要做好回归工作。
4.修复线上问题后 复盘
问题处理完毕后,一定要问清楚开发的原因,并让其详细的记录在bug 备注里边。
测试同学要反思:
为啥测试环境无法复现,是否存在漏测等等;
要主动担责,不逃避;
总结经验并在以后的工作中避免。
总结:
线上出bug是很正常的一件事情,不需要怕,遇到问题积极应对处理,多复盘。
一般线上的问题会有专门指定的测试人员去收集信息,整理 并定期复盘,同开发产品一起,对问题出现的原因进行评估,并提出改进建议。
1.该优化流程就优化流程如代码提交流程不规范,上线的代码里边包含了正在开发且未提测的内容
2.代码review 不到位 3.没有对修复代码的影响范围进行评估,4.漏测 等等。

36. 对于上线后的出现漏测点怎么处理?

  正确回答通过率:50.0%

[ 详情 ] 推荐指数: ★★★★ 试题难度: 中级

在软件测试中,出现漏测的情况是很常见的,不论是因为时间紧迫、测试人员疏忽、测试用例设计不完善等原因所导致的。如果在测试过程中发现漏测了某些问题,
需要采取以下措施:

  1. 分析漏测的原因。了解漏测的原因是什么,是否是测试用例设计不完善、测试人员疏忽大意等原因,以便对相应的问题采取针对性的措施。
  2. 重新设计测试用例。如果漏测的问题是因为测试用例设计不完善,需要重新设计测试用例,包括增加新的测试用例、修改原有的测试用例等,以覆盖所有可能存在的问题。
  3. 执行回归测试。当发现漏测的问题时,需要进行回归测试,确保之前测试过的功能模块没有受到新的问题的影响,同时也需要对已修复的问题进行验证。
  4. 增加自动化测试。自动化测试可以大大提高测试效率和覆盖范围,尤其是对于重复性的测试任务,可以减少测试人员的工作量,并提高测试的准确性和可靠性。
  5. 加强沟通和协作。测试人员需要与开发人员和产品经理等其他团队成员进行充分的沟通和协作,共同解决出现的问题,以确保软件的质量和稳定性。
  6. 总结经验教训。每次漏测问题都应该进行总结和分析,找出问题的根本原因,并采取相应的措施加以解决,以提高测试质量和效率。

37. 单元测试的策略有哪些?

 正确回答通过率:66.0%

[ 详情 ] 推荐指数: ★★★★ 试题难度: 中级

逻辑覆盖、循环覆盖、同行评审、桌前检查、代码走查、代码评审、景泰数据流分析

38. QTP中的Action有什么作用?有几种?

 正确回答通过率:58.0%

[ 详情 ] 推荐指数: ★★★ 试题难度: 中级

Action的作用
1 用Action可以对步骤集进行分组
2 步骤重组,然后被整体调用
3 拥有自己的sheet
4 组合有相同需求的步骤,整体操作
5 具有独立的对象仓库
Action的种类
1 可复用Action
2 不可复用Action
3 外部Action

39. 简述软件系统中用户文档的测试要点?

 正确回答通过率:71.0%

[ 详情 ] 推荐指数: ★★★★ 试题难度: 初级

(1)读者群。文档面向的读者定位要明确。对于初级用户、中级用户以及高级用户应该有不同的定位
 (2)术语。文档中用到的术语要适用与定位的读者群,用法一致,标准定义与业界规范相吻合。
 (3)正确性。测试中需检查所有信息是否真实正确,查找由于过期产品说明书和销售人员夸大事实而导致的错误。检查所有的目录、索引和章节引用是否已更新,尝试链接是否准确,产品支持电话、地址和邮政编码是否正确。
 (4)完整性。对照软件界面检查是否有重要的分支没有描述到,甚至是否有整个大模块没有描述到。
 (5)一致性。按照文档描述的操作执行后,检查软件返回的结果是否与文档描述的相同。
 (6)易用性。对关键步骤以粗体或背景色给用户以提示,合理的页面布局、适量的图表都可以给用户更高的易用性。需要注意的是文档要有助于用户排除错误。不但描述正确操作,也要描述错误处理办法。文档对于用户看到的错误信息应当有更详细的文档解释。
 (7)图表与界面截图。检查所有图表与界面截图是否与发行版本相同。
 (8)样例与示例。像用户一样载入和使用样例。如果是一段程序,就输入数据并执行它。以每一个模块制作文件,确认它们的正确性。
 (9)语言。不出现错别字,不要出现有二义性的说法。特别要注意的是屏幕截图或绘制图形中的文字。
 (10)印刷与包装。检查印刷质量;手册厚度与开本是否合适;包装盒的大小是否合适;有没有零碎易丢失的小部件等等。

40. 单元测试主要内容是什么?

  正确回答通过率:74.0%

[ 详情 ] 推荐指数: ★★★ 试题难度: 中级

单元测试大多数由开发人员来完成,测试人员技术背景较好或者开发系统软件时可能会安排测试人员进行单元测试,大多数进行的单元测试都是开发人员调试程序或者开发组系统联合调试的过程。讨论这个问题主要是扩充一下读者的视野。
单元测试一般包括五个方面的测试:
(1)模块接口测试:模块接口测试是单元测试的基础。只有在数据能正确流入、流出模块的前提下,其他测试才有意义。模块接口测试也是集成测试的重点,这里进行的测试主要是为后面打好基础。测试接口正确与否应该考虑下列因素:
-输入的实际参数与形式参数的个数是否相同;
-输入的实际参数与形式参数的属性是否匹配;
-输入的实际参数与形式参数的量纲是否一致;
-调用其他模块时所给实际参数的个数是否与被调模块的形参个数相同;
-调用其他模块时所给实际参数的属性是否与被调模块的形参属性匹配;
-调用其他模块时所给实际参数的量纲是否与被调模块的形参量纲一致;
-调用预定义函数时所用参数的个数、属性和次序是否正确;
-是否存在与当前入口点无关的参数引用;
-是否修改了只读型参数;
-对全程变量的定义各模块是否一致;
-是否把某些约束作为参数传递。
如果模块功能包括外部输入输出,还应该考虑下列因素:
-文件属性是否正确;
-OPEN/CLOSE语句是否正确;
-格式说明与输入输出语句是否匹配;
-缓冲区大小与记录长度是否匹配;
-文件使用前是否已经打开;
-是否处理了文件尾;
-是否处理了输入/输出错误;
-输出信息中是否有文字性错误。
-局部数据结构测试;
-边界条件测试;
-模块中所有独立执行通路测试;
(2)局部数据结构测试:检查局部数据结构是为了保证临时存储在模块内的数据在程序执行过程中完整、正确,局部功能是整个功能运行的基础。重点是一些函数是否正确执行,内部是否运行正确。局部数据结构往往是错误的根源,应仔细设计测试用例,力求发现下面几类错误:
-不合适或不相容的类型说明;
-变量无初值;
-变量初始化或省缺值有错;
-不正确的变量名(拼错或不正确地截断);
-出现上溢、下溢和地址异常。
(3)边界条件测试:边界条件测试是单元测试中最重要的一项任务。众所周知,软件经常在边界上失效,采用边界值分析技术,针对边界值及其左、右设计测试用例,很有可能发现新的错误。边界条件测试是一项基础测试,也是后面系统测试中的功能测试的重点,边界测试执行的较好,可以大大提高程序健壮性。
(4)模块中所有独立路径测试:在模块中应对每一条独立执行路径进行测试,单元测试的基本任务是保证模块中每条语句至少执行一次。测试目的主要是为了发现因错误计算、不正确的比较和不适当的控制流造成的错误。具体做法就是程序员逐条调试语句。常见的错误包括:
-误解或用错了算符优先级;
-混合类型运算;
-变量初值错;
-精度不够;
-表达式符号错。
比较判断与控制流常常紧密相关,测试时注意下列错误:
-不同数据类型的对象之间进行比较;
-错误地使用逻辑运算符或优先级;
-因计算机表示的局限性,期望理论上相等而实际上不相等的两个量相等;
-比较运算或变量出错;
-循环终止条件或不可能出现;
-迭代发散时不能退出;
-错误地修改了循环变量。
模块的各条错误处理通路测试:程序在遇到异常情况时不应该退出,好的程序应能预见各种出错条件,并预设各种出错处理通路。如果用户不按照正常操作,程序就退出或者停止工作,实际上也是一种缺陷,因此单元测试要测试各种错误处理路径。一般这种测试着重检查下列问题:
-输出的出错信息难以理解;
-记录的错误与实际遇到的错误不相符;
-在程序自定义的出错处理段运行之前,系统已介入;
-异常处理不当;
-错误陈述中未能提供足够的定位出错信息。

41. 如何理解强度测试?

  正确回答通过率:71.0%

[ 详情 ] 推荐指数: ★★★★ 试题难度: 初级

强度测试是为了确定系统在最差工作环境的工作能力,也可能是用于验证在标准工作压力下的各种资源的最下限指标。
它和压力测试的目标是不同的,压力测试是在标准工作环境下,不断增加系统负荷,最终测试出该系统能力达到的最大负荷(稳定和峰值),而强度测试则是在非标准工作环境下,甚至不断人为降低系统工作环境所需要的资源,如网络带宽,系统内存,数据锁等等,以测试系统在资源不足的情况下的工作状态,通过强度测试,可以确定本系统正常工作的最差环境.
强度测试和压力测试的测试指标相近,大多都是与时间相关的指标,如并发量(吞吐量),延迟(最大\最小\平均)以及顺序指标等
强度测试需要对系统的结构熟悉,针对系统的特征设计强度测试的方法

42. 解释什么是系统瓶颈?

 正确回答通过率:92.0%

[ 详情 ] 推荐指数: ★★ 试题难度: 初级

瓶颈主要是指整个软硬件构成的软件系统某一方面或者几个方面能力不能满足用户的特定业务要求,“特定”是指瓶颈会在某些条件下会出现,因为毕竟大多数系统在投入前。
严格的从技术角度讲,所有的系统都会有瓶颈,因为大多数系统的资源配置不是协调的,例如CPU使用率刚好达到100%时,内存也正好耗尽的系统不是很多见。因此我们讨论系统瓶颈要从应用的角度讨论:关键是看系统能否满足用户需求。在用户极限使用系统的情况下,系统的响应仍然正常,我们可以认为改系统没有瓶颈或者瓶颈不会影响用户工作。
因此我们测试系统瓶颈主要是实现下面两个目的:
-发现“表面”的瓶颈。主要是模拟用户的操作,找出用户极限使用系统时的瓶颈,然后解决瓶颈,这是性能测试的基本目标。
-发现潜在的瓶颈并解决,保证系统的长期稳定性。主要是考虑用户在将来扩展系统或者业务发生变化时,系统能够适应变化。满足用户目前需求的系统不是最好的,我们设计系统的目标是在保证系统整个软件生命周期能够不断适应用户的变化,或者通过简单扩展系统就可以适应新的变化。

43. 简述文档测试主要包含什么内容?

  正确回答通过率:79.0%

[ 详情 ] 推荐指数: ★★★★★ 试题难度: 初级

在国内软件开发管理中,文档管理几乎是最弱的一项,因而在测试工作中特别容易忽略文档测试也就不足为奇了。要想给用户提供完整的产品,文档测试是必不可少的。文档测试一般注重下面几个方面:
文档的完整性:主要是测试文档内容的全面性与完整性,从总体上把握文档的质量。例如用户手册应该包括软件的所有功能模块。
描述与软件实际情况的一致性:主要测试软件文档与软件实际的一致程度。例如用户手册基本完整后,我们还要注意用户手册与实际功能描述是否一致。因为文档往往跟不上软件版本的更新速度。
易理解性:主要是检查文档对关键、重要的操作有无图文说明,文字、图表是否易于理解。对于关键、重要的操作仅仅只有文字说明肯定是不够的,应该附有图表使说明更为直观和明了。
文档中提供操作的实例:这项检查内容主要针对用户手册。对主要功能和关键操作提供的应用实例是否丰富,提供的实例描述是否详细。只有简单的图文说明,而无实例的用户手册看起来就像是软件界面的简单拷贝,对于用户来说,实际上没有什么帮助。
印刷与包装质量:主要是检查软件文档的商品化程度。有些用户手册是简单打印、装订而成,过于粗糙,不易于用户保存。优秀的文档例如用户手册和技术白皮书,应提供商品化包装,并且印刷精美。

44. 简述配置和兼容性测试的区别是什么?

  正确回答通过率:59.0%

[ 详情 ] 推荐指数: ★★★★★ 试题难度: 中级

配置测试的目的是保证软件在其相关的硬件上能够正常运行,而兼容性测试主要是测试软件能否与不同的软件正确协作。
配置测试的核心内容就是使用各种硬件来测试软件的运行情况,一般包括:
(1)软件在不同的主机上的运行情况,例如Dell和Apple;
(2)软件在不同的组件上的运行情况,例如开发的拨号程序要测试在不同厂商生产的Modem上的运行情况;
(3)不同的外设;
(4)不同的接口;
(5)不同的可选项,例如不同的内存大小;
兼容性测试的核心内容:
(1)测试软件是否能在不同的操作系统平台上兼容;
(2)测试软件是否能在同一操作系统平台的不同版本上兼容;
(3)软件本身能否向前或者向后兼容;
(4)测试软件能否与其它相关的软件兼容;
(5)数据兼容性测试,主要是指数据能否共享;
配置和兼容性测试通称对开发系统类软件比较重要,例如驱动程序、操作系统、数据库管理系统等。具体进行时仍然按照测试用例来执行。

45. 软件测试人员就是QA吗?

 正确回答通过率:73.0%

[ 详情 ] 推荐指数: ★★ 试题难度: 初级

软件测试人员的职责是尽可能早的找出软件缺陷,确保得以修复。而质量保证人员(QA)主要职责是创建或者制定标准和方法,提高促进软件开发能力和减少软件缺陷。测试人员的主要工作是测试,质量保证人员日常工作重要内容是检查与评审,测试工作也是测试保证人员的工作对象。
软件测试和质量是相辅相成的关系,都是为了提高软件质量而工作。

46. 用户共同测试(UAT测试)的注意点有哪些?

  正确回答通过率:75.0%

[ 详情 ] 推荐指数: ★★★★ 试题难度: 中级

软件产品在投产前,通常都会进行用户验收测试。如果用户验收测试没有通过,直接结果就是那不到“Money”,间接影响是损害了公司的形象,而后者的影响往往更严重。根据作者的经验,用户验收测试一定要让用户满意。
实际上用户现场测试更趋于是一种演示。在不欺骗用户的前提下,我们向用户展示我们软件的优点,最后让“上帝”满意并欣然掏出“银子”才是我们的目标。因此用户测试要注意下面的事项:
(1)用户现场测试不可能测试全部功能,因此要测试核心功能。这需要提前做好准备,这些核心功能一定要预先经过测试,证明没有问题才可以和用户共同进行测试。测试核心模块的目的是建立用户对软件的信心。当然如果这些模块如果问题较多,不应该进行演示。
(2)如果某些模块确实有问题,我们可以演示其它重要的业务功能模块,必要时要向用户做成合理的解释。争得时间后,及时修改缺陷来弥补。
(3)永远不能欺骗用户,蒙混过关。道理很简单,因为软件是要给用户用的,问题早晚会暴露出来,除非你可以马上修改。
和用户进行测试还要注意各种交流技巧,争取不但短期利益得到了满足,还要为后面得合作打好基础。

47. 写出Bug报告流转的步骤,每步的责任人及主要完成的工作?

 正确回答通过率:80.0%

[ 详情 ] 推荐指数: ★★★★★ 试题难度: 中级

测试人员提交新的Bug入库,错误状态为New。
高级测试员/测试经理验证错误,如果确认是错误,分配给开发组。设置状态为Open。如果不是错误,则拒绝,设置为Declined状态。
开发经理分配bug至对应的模块开发人员。
开发人员查询状态为Open的Bug,如果不是错误,则置状态为Declined;如果是Bug则修复并置状态为Fixed。不能解决的Bug,要留下文字说明及保持Bug为Open状态。
对于不能解决和延期解决的Bug,不能由开发人员自己决定,一般要通过某种会议(评审会)通过才能认可。
测试人员查询状态为Fixed的Bug,然后验证Bug是否已解决,如解决,置Bug的状态为Closed,如没有解决,置bug状态为Reopen。

48. 写出Bug报告当中必备的内容?

 正确回答通过率:90.0%

[ 详情 ] 推荐指数: ★★★★ 试题难度: 初级

硬件平台和操作系统
测试应用的硬件平台(Platform),通常选择“PC”。
测试应用的操作系统平台(OS)。
a) 版本
提交缺陷报告时通过该字段标识此缺陷存在于被测试软件的哪个版本。
b) Bug报告优先级
c) Bug状态
d) Bug的编号
e) 发现人
f) 提交人
g) 指定处理人
h) 概述
i) 从属关系
j) 详细描述
k) 严重程度
l) 所属模块
m) 附件
n) 提交日期

49. 您所熟悉的软件测试类型都有哪些?请试着分别比较这些不同的测试类型的区别与联系(如功能测试、性能测试……)

 正确回答通过率:73.0%

[ 详情 ] 推荐指数: ★★★★★ 试题难度: 初级

测试类型有:功能测试,性能测试,界面测试。
  功能测试在测试工作中占的比例最大,功能测试也叫黑盒测试。是把测试对象看作一个黑盒子。利用黑盒测试法进行动态测试时,需要测试软件产品的功能,不需测试软件产品的内部结构和处理过程。采用黑盒技术设计测试用例的方法有:等价类划分、边界值分析、错误推测、因果图和综合策略。
  性能测试是通过自动化的测试工具模拟多种正常、峰值以及异常负载条件来对系统的各项性能指标进行测试。负载测试和压力测试都属于性能测试,两者可以结合进行。通过负载测试,确定在各种工作负载下系统的性能,目标是测试当负载逐渐增加时,系统各项性能指标的变化情况。压力测试是通过确定一个系统的瓶颈或者不能接收的性能点,来获得系统能提供的最大服务级别的测试。
  界面测试,界面是软件与用户交互的最直接的层,界面的好坏决定用户对软件的第一印象。而且设计良好的界面能够引导用户自己完成相应的操作,起到向导的作用。同时界面如同人的面孔,具有吸引用户的直接优势。设计合理的界面能给用户带来轻松愉悦的感受和成功的感觉,相反由于界面设计的失败,让用户有挫败感,再实用强大的功能都可能在用户的畏惧与放弃中付诸东流。
  区别在于,功能测试关注产品的所有功能上,要考虑到每个细节功能,每个可能存在的功能问题。性能测试主要关注于产品整体的多用户并发下的稳定性和健壮性。界面测试更关注于用户体验上,用户使用该产品的时候是否易用,是否易懂,是否规范(快捷键之类的),是否美观(能否吸引用户的注意力),是否安全(尽量在前台避免用户无意输入无效的数据,当然考虑到体验性,不能太粗鲁的弹出警告)?做某个性能测试的时候,首先它可能是个功能点,首先要保证它的功能是没问题的,然后再考虑该功能点的性能测试

50. 请试着比较一下黑盒测试、白盒测试、单元测试、集成测试、系统测试、验收测试的区别与联系?

  正确回答通过率:62.0%

[ 详情 ] 推荐指数: ★★★★★ 试题难度: 中级

黑盒测试:已知产品的功能设计规格,可以进行测试证明每个实现了的功能是否符合要求。
  白盒测试:已知产品的内部工作过程,可以通过测试证明每种内部操作是否符合设计规格要求,所有内部成分是否以经过检查。
  软件的黑盒测试意味着测试要在软件的接口处进行。这种方法是把测试对象看做一个黑盒子,测试人员完全不考虑程序内部的逻辑结构和内部特性,只依据程序的需求规格说明书,检查程序的功能是否符合它的功能说明。因此黑盒测试又叫功能测试或数据驱动测试。黑盒测试主要是为了发现以下几类错误:
  1、是否有不正确或遗漏的功能?
  2、在接口上,输入是否能正确的接受?能否输出正确的结果?
  3、是否有数据结构错误或外部信息(例如数据文件)访问错误?
  4、性能上是否能够满足要求?
  5、是否有初始化或终止性错误?
  软件的白盒测试是对软件的过程性细节做细致的检查。这种方法是把测试对象看做一个打开的盒子,它允许测试人员利用程序内部的逻辑结构及有关信息,设计或选择测试用例,对程序所有逻辑路径进行测试。通过在不同点检查程序状态,确定实际状态是否与预期的状态一致。因此白盒测试又称为结构测试或逻辑驱动测试。白盒测试主要是想对程序模块进行如下检查:
  1、对程序模块的所有独立的执行路径至少测试一遍。
  2、对所有的逻辑判定,取“真”与取“假”的两种情况都能至少测一遍。
  3、在循环的边界和运行的界限内执行循环体。
  4、测试内部数据结构的有效性,等等。
  单元测试(模块测试)是开发者编写的一小段代码,用于检验被测代码的一个很小的、很明确的功能是否正确。通常而言,一个单元测试是用于判断某个特定条件(或者场景)下某个特定函数的行为。
  单元测试是由程序员自己来完成,最终受益的也是程序员自己。可以这么说,程序员有责任编写功能代码,同时也就有责任为自己的代码编写单元测试。执行单元测试,就是为了证明这段代码的行为和我们期望的一致。
  集成测试(也叫组装测试,联合测试)是单元测试的逻辑扩展。它的最简单的形式是:两个已经测试过的单元组合成一个组件,并且测试它们之间的接口。从这一层意义上讲,组件是指多个单元的集成聚合。在现实方案中,许多单元组合成组件,而这些组件又聚合成程序的更大部分。方法是测试片段的组合,并最终扩展进程,将您的模块与其他组的模块一起测试。最后,将构成进程的所有模块一起测试。
  系统测试是将经过测试的子系统装配成一个完整系统来测试。它是检验系统是否确实能提供系统方案说明书中指定功能的有效方法。(常见的联调测试)
  系统测试的目的是对最终软件系统进行全面的测试,确保最终软件系统满足产品需求并且遵循系统设计。
  验收测试是部署软件之前的最后一个测试操作。验收测试的目的是确保软件准备就绪,并且可以让最终用户将其用于执行软件的既定功能和任务。
验收测试是向未来的用户表明系统能够像预定要求那样工作。经集成测试后,已经按照设计把所有的模块组装成一个完整的软件系统,接口错误也已经基本排除了,接着就应该进一步验证软件的有效性,这就是验收测试的任务,即软件的功能和性能如同用户所合理期待的那样。

51. 软件的构造号与版本号之间的区别?BVT(BuildVerificationTest)

  正确回答通过率:80.0%

[ 详情 ] 推荐指数: ★★★ 试题难度: 初级

版本控制命名格式: 主版本号.子版本号[.修正版本号[.编译版本号 ]]
Major.Minor [.Revision[.Build]]

应根据下面的约定使用这些部分:
Major :具有相同名称但不同主版本号的程序集不可互换。例如,这适用于对产品的大量重写,这些重写使得无法实现向后兼容性。
Minor :如果两个程序集的名称和主版本号相同,而次版本号不同,这指示显著增强,但照顾到了向后兼容性。例如,这适用于产品的修正版或完全向后兼容的新版本。
Build :内部版本号的不同表示对相同源所作的重新编译。这适合于更改处理器、平台或编译器的情况。
Revision :名称、主版本号和次版本号都相同但修订号不同的程序集应是完全可互换的。这适用于修复以前发布的程序集中的安全漏洞。
BVT(BuildVerificationTest):
作为Build的一部分,主要是通过对基本功能、特别是关键功能的测试,保证新增代码没有导致功能失效,保证版本的持续稳定。实现BVT方式是有以下几种:1、测试人员手工验证关键功能实现的正确性。特点:这是传统开发方法中,通常采用的方式。无需维护测试脚本的成本,在测试人力资源充足,测试人员熟悉业务、并对系统操作熟练情况下效率很高,比较灵活快速。缺点:人力成本较高;对测试人员能力有一定要求;测试人员面对重复的工作,容易产生疲倦懈怠,从而影响测试质量。2、借助基于GUI的自动化功能测试工具来完成,将各基本功能操作录制成测试脚本,每次回放测试脚本验证功能实现的正确性。特点:能够模拟用户操作完成自动的测试,从UI入口到业务实现,每一层的代码实现都经过验证;节约人力成本;降低测试人员重复劳动的工作量,机器不会疲倦;缺点:对于UI变动比较频繁的系统来说,这种方式的维护成本很高,实施起来非常困难。另外,在项目周期较短且后续无延续性或继承的情况下,也不推荐使用此方式。3、由开发人员通过自动化测试工具完成业务层的BVT测试。特点:通过对业务层关键功能的持续集成测试,保证系统功能的持续稳定。可以结合DailyBuild,做为Build的一部分,自动实现并输入BVT报告。缺点:仅对业务规则实现的正确性进行了测试,对表现层无法测试到,对于诸如:前台页面控件各种事件响应、页面元素变化等方面的问题无法保证。

52. 集成测试通常都有哪些策略?

  正确回答通过率:75.0%

[ 详情 ] 推荐指数: ★★★★ 试题难度: 中级

集成测试是软件开发过程中重要的一环,它可以检查系统中各个组件之间的交互是否正确,以及整个系统是否按照设计要求运行。在进行集成测试时,可以采用以下几种策略:

1.自下而上(Bottom-up)策略
该策略从系统最底层的模块开始测试,逐层向上,直到测试整个系统。这种策略可以快速检测出模块之间的接口问题,但可能会忽略系统的整体性能。

2.自上而下(Top-down)策略
该策略从系统最高层的模块开始测试,逐层向下,直到测试整个系统。这种策略可以检测整个系统的整体性能,但可能会延迟发现模块之间的接口问题。

3.增量式(Incremental)策略
该策略将系统分为多个模块,逐个模块进行测试,并逐渐将测试的模块组合起来,最终测试整个系统。这种策略可以较早地发现系统中的问题,但测试成本相对较高。

53. 解释什么是测试评估?测试评估的范围是什么?

 正确回答通过率:55.0%

[ 详情 ] 推荐指数: ★★★★★ 试题难度: 高难

软件测试评估是指对未正式投入商业化使用的软件进行预先的小规模试验,又称小试。主要是由代码审查和合理性分析组成。
作用如下:

  1. 开发人员若得知他们的代码会被测试评估,他们会更加努力工作。
  2. 软件测试评估可以改进开发人员的编程技术
  3. 软件测试评估有利于导师制度,程序员们会学到更多
  4. 软件测试评估可以实现优质文化的传承
  5. 软件测试评估可以激发团队凝聚力
    评估的范围很广,例如功能,性能,美观,易用性的,健壮性的,安全性的,兼容性,效率等软件好坏的的衡量指标,可以参考需求
    测试评估的范围:功能,性能,界面,实用性,速度,兼容性,易用性,各模块的完善性等

54. 缺陷严重程度和优先度 ?

 正确回答通过率:89.0%

[ 详情 ] 推荐指数: ★★★ 试题难度: 初级

缺陷严重程度:
致命(Fatal)、严重(Critical)、一般(Major)、较小(Minor)。
缺陷优先级:
立即解决P1、高优先级P2、正常排队P3、低优先级P4。

55. 正交表测试用例设计方法的特点是什么?

 正确回答通过率:90.0%

[ 详情 ] 推荐指数: ★★★ 试题难度: 初级

用最少的实验覆盖最多的操作,测试用例设计很少,效率高,但是很复杂;
对于基本的验证功能,以及二次集成引起的缺陷,一般都能找出来;但是更深的缺陷,更复杂的缺陷,还是无能为力的;
具体的环境下,正交表一般都很难做的。大多数,只在系统测试的时候使用此方法

56. 针对缺陷采取怎样的管理措施?

 正确回答通过率:75.0%

[ 详情 ] 推荐指数: ★★★★ 试题难度: 中级

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

57. 常见的测试用例的边界?

  正确回答通过率:53.0%

[ 详情 ] 推荐指数: ★★★★★ 试题难度: 中级

边界值分析法就是对输入或输出的边界值进行测试的一种黑盒测试方法。通常边界值分析法是作为对等价类划分法的补充,这种情况下,其测试用例来自等价类的边界。
常见的边界值
1)对16-bit 的整数而言 32767 和 -32768 是边界
2)屏幕上光标在最左上、最右下位置
3)报表的第一行和最后一行
4)数组元素的第一个和最后一个
5)循环的第 0 次、第 1 次和倒数第 2 次、最后一次

58. 软件质量的六个特征?

 正确回答通过率:80.0%

[ 详情 ] 推荐指数: ★★★★ 试题难度: 初级

按照软件质量国家标准GB-T8566–2001G,软件质量可以用下列特征来评价:
a.功能特征:与一组功能及其指定性质有关的一组属性,这里的功能是满足明确或隐含的需求的那些功能。
b.可靠特征:在规定的一段时间和条件下,与软件维持其性能水平的能力有关的一组属性。
c.易用特征:由一组规定或潜在的用户为使用软件所需作的努力和所作的评价有关的一组属性。
d.效率特征:与在规定条件下软件的性能水平与所使用资源量之间关系有关的一组属性。
e.可维护特征:与进行指定的修改所需的努力有关的一组属性。
f.可移植特征:与软件从一个环境转移到另一个环境的能力有关的一组属性。

59. 阐述什么是边界值分析法?

  正确回答通过率:79.0%

[ 详情 ] 推荐指数: ★★★★★ 试题难度: 中级

1:什么是边界值分析法?
边界值分析法就是对输入或输出的边界值进行测试的一种黑盒测试方法。
是指对于输入等价类和输出等价类而言,稍高于其边界值及稍低于其边界值的一些特定情况。
为什么要分析边界值?
原因:是在大量测试过程发现,大量的错误都是发生在输入或输出范围的边界上,而不是在输入范围的内部。

2:如何解决边界值的问题?
1)找到测试数据的边界点,也就是有效等价类和无效等价类的边界点,对边界点数据专门进行测试。
2)一般情况下,对于0到100输入的问题,需要对边界值(0和100)以及边界值两边的数(-1和1以及101和99)分别进行测试。

3:边界值选择测试用例原则:
1) 如果输入/输出条件规定了值的范围,则应取刚达到这个范围的边界值、以及刚超越这个范围边界的值作为测试输入数据
2) 如果输入/输出条件规定了值的个数,则选取最大个数、最小个数、比最大个数多1、比最小个数少1的数作为测试数据
3) 若输入域是有序集合,则选取集合的第一个元素和最后一个元素作为测试用例
4) 如果程序使用了一个内部数据结构,则应当选择内部数据结构上得边界值作为测试用例
5) 分析需求说明,找出其他可能的边界条件

60. 阐述什么是等价类划分法?

  正确回答通过率:63.0%

[ 详情 ] 推荐指数: ★★★★★ 试题难度: 中级

等价类划分是把程序的输入域划分为若干部分,然后从每个部分中选取少数代表性数据作为测试用例。每一类的代表性数据在测试中的作用等价于这一类中的其他值,也就是说,如果某一类中的一个例子发现了错误,这一类等价类中的其他例子也能发现同样的错误;反之,如果某一类中的一个例子没有发现错误,则这一类中的其他例子也不会查出错误(除非等价类中的某些例子属于另一等价类,因为几个等价类可能相交的)。使用这一方法设计测试用例,首先必须在分析需求规格说明的基础上划分等价类,列出等价类表。

61. 阐述什么是因果图法?

  正确回答通过率:65.0%

[ 详情 ] 推荐指数: ★★★★ 试题难度: 中级

一,因果图法的定义
因果图法是一种利用图解法分析输入的各种组合情况,从而设计测试用例的方法,他适合与检查程序输入条件的各种组合情况。

二,因果图法的意义
等价类划分和边界值分析方法都是着重考虑输入条件,但没有考虑输入条件的各种组合、输入条件之间的相互制约关系。这样虽然各种输入条件可能出错的情况已经测试测试到了,但多个输入条件组合起来可能出错的情况却被疏忽了。

三,因果图法的适用场合
如果在测试时必须考虑输入条件的各种组合,则可能的组合数目将是天文数字,因此必须考虑采用一种适合于描述多种条件的组合、相应产生多个动作的形式来进行测试用例的设计,这就需要利用因果图(逻辑模型)

四,因果图法的表示
CI:原因
EI:结果
注意:其中I取“0”表示状态不出现,“1”表示状态出现,若有多状态,可取大于1的多个值表示。

五,因果图法的四种关系
恒等:原因结果同时出现,若c1是1,则e1也是1;否则e1为0.
非~:原因出现,结果不出现;原因不出现,结果出现。若c1是1,则e1是0;否则e1 是1;
或V:原因只有一个出现,结果就出现;原因都不出现,结果就不出现。若c1或c2或c3是1,则e1是1;否则e1为0。“或”可有任意个输入且/与^:原因都出现,结果才出现。若c1和c2都是1,则e1为1;否则e1为0。

六,因果图的基本约束
约束:是指输入状态还存在这某种依赖关系,这种关系称作为约束。
E约束(异):表示a,b两原因不会同时成立,最多一个能成立。
I约束(或):a、b、c三个原因中至少有一个必须成立。
O约束(唯一):a、b当中必须有一个,且仅有一个成立
R约束(要求):当a出现时,b必须也出现,不可能a出现b不出现
M约束(屏蔽):表示当a是1时,b必须是0。而当a为0时,b的值不定

七,因果图的分析步骤及案例
分析需求,获取条件和动作
分析条件与条件,条件与动作之间的关系
通过关系画出因果图
将因果图转化为判定表

62. 阐述什么是判定表法?

 正确回答通过率:80.0%

[ 详情 ] 推荐指数: ★★★★ 试题难度: 中级

一,判定表法的定义
判定表法又称决策表,判定表法(Decision table)同因果图法一般也是一种表达逻辑判断的工具。判定表是一种以表格形式分析和表达多逻辑条件下执行不同操作的工具。它能够将复杂的问题按照各种可能的情况全部列举出来,因此,利用判定表能够设计出完整的测试用例集合。

二,为什么要使用判定表法
等价类划分法和边界值分析法都是着重考虑单个输入的输入条件
并没有考虑输入条件的各种组合、输入条件与输出条件之间的相互制约关系

三,判定表法的四大组成部分
条件桩(Condition Stub):列出问题的所有条件,列出条件的次序无关紧要
动作桩(Action Stub):列出问题中可能采取的操作,操作的排列顺序没有约束
条件项(Condition Entry):列出条件对应的取值,所有可能情况下的真假值
动作项(Action Entry):列出条件项的各种取值情况下应该采取的动作结果

四,判定表的规则与合并标准
规则:
判定表中贯穿条件项和动作项的一列就是一条规则
假设有n个条件,每个条件的取值有两个(0,1),全组合就有2的n次方种规则
合并标准:
有两条或多条规则具有相同的动作,并且其条件项之间存在着极为相似的关系

五,判定表法的适用场景
针对不同逻辑条件的组合值,分别执行不同的操作
针对于多种输入、输出条件的表达组合以及条件组合
重要系统、模块、玩法的使用规则的排列顺序不会也不影响执行哪些操作规格说明以判定表形式给出,或很容易转换成判定表

63. 阐述什么是场景法?

 正确回答通过率:76.0%

[ 详情 ] 推荐指数: ★★★★ 试题难度: 中级

一,场景法的定义
软件几乎都是用事件触发来控制流程的,事件触发时的情景便形成了场景,而同一事件不同的触发顺序和处理结果就形成事件流。

二,场景法的应用场合
界面特点:
没有太多填写项
所有的操作都是通过鼠标的点击、双击、拖拽等完成。
(类似于:银行柜台操作界面、五子棋游戏,这些都是通过鼠标的点击、拖拽等来完成的。
三,场景法的核心思想
把自己当成最终的用户,使用软件,设计出在使用软件过程中重要的操作

一般包括两类:
模拟用户完成正常功能、核心业务逻辑的动作,以验证功能的正确性
模拟用户操作中出现的主要错误,以验证程序的异常处理能力
四,场景法的使用要求
对所测试产品的业务逻辑、主要功能非常精通

五,场景法的基本概念
(1)基本流(有效流):模拟用户正确的操作流程,表示通过业务流程时输入都正确,能达到目标的流程
业务流程开始——业务流程结束
(2)备选流(无效流、错误流):模拟用户错误的操作流程,表示通过业务流程时输入错误(或者操作错误)导致流程存在反复,但是经过
纠正后仍能达到能达到目标的流程
业务流程开始——业务流程存在反复——业务流程结束
业务流程开始——业务流程存在反复——业务流程中断——未结束
(3)异常流:模拟用户错误的操作流程,表示通过业务流程时输入错误(或者操作错误)产生异常终止流程
业务流程开始——业务流程中断——未结束

64. 阐述什么是错误推算法?

 正确回答通过率:56.0%

[ 详情 ] 推荐指数: ★★★★ 试题难度: 中级

一,错误推算法的定义
基于测试人员的经验和直觉推测推测程序中所有可能存在的各种错误,有针对性的设计测试用例的方法。
二,错误推算法的基本思想
基于测试人员的经验和直觉推测推测程序中所有可能存在的各种错误,有针对性的设计测试用例的方法。
三,举例
用户登录:输入错误的用户名及密码,登录失败。
体重录入:输入0、负值。(人的体重不可能是0、负值,但是还是需要验证程序是否做了控制)

65. 阐述什么是状态迁移法?

 正确回答通过率:80.0%

[ 详情 ] 推荐指数: ★★★ 试题难度: 中级

状态迁移图法主要关注被测对象的状态变化,在需求规格说明书中是否有不可达到的状态和非法的状态,是否产生非法的状态迁移。
状态:被测对象在特定输入条件下所保持的 响应形式
对于一个有限状态机,通过测试验证其在给定的条件内是否能够产生需要的状态变化,有没有不可达的状态和非法的状态,是否可能产生非法的状态转移等。通过构造能导致状态迁移的事件,来测试状态之间的转换。
状态迁移法实际测试了被测系统各种状态的转换,这些状态转换的测试在实际工作中是容易遗漏的,只要能够将这些状态的转换测试到,是否采用状态迁移法并不重要,因为状态迁移法只是提供了一种将多个状态的转换串联起来进行测试的思路(思维模式)。

实际工作中,在业务流程中都涉及到了复杂的业务场景(即业务状态的迁移)。而这些业务场景在需求规格中往往不能够完全阐述清楚,容易出现遗漏。所以当被测系统的业务场景复杂时,在工程中应用这种针对状态迁移测试的思路完成对复杂业务场景的测试有时是很有必要的。

66. 阐述什么是正交试验法?

 正确回答通过率:54.0%

[ 详情 ] 推荐指数: ★★★ 试题难度: 中级

一,正交试验法的定义
正交试验设计法依据Galois理论,从大量的(实验)数据(测试用例)中挑选适量的,有代表性的点(例),从而合理地安排实验(测试)的一种科学实验设计方法。改变了尺寸,测试程序都能自动地处理。

二,正交试验法的一些基本概念
在一项试验中,把影响试验结果的量称为试验因素(因子),简称因素
因素可以理解为试验过程中的自变量,试验结果可以看成因素的函数
在试验过程中,每一个因素可以处于不同的状态或状况,把因素所处的状态或状况,称为因素的水平,简称水平。
将正交试验选择的水平组合,列成表格,称为正交表。
正交表具有以下两个特点,即正交性
正交表必须满足这两个特点,有一条不满足,就不是正交表。

1,每列中不同数字出现的次数相等。这一特点表明每个因素的每个水平与其它因素的每个水平参与试验的几率是完全相同的,从而保证了在各个水平中最大限度地排除了其它因素水平的干扰,能有效地比较试验结果并找出最优的试验条件。
2,在任意2列其横向组成的数字对中,每种数字对出现的次数相等。这个特点保证了试验点均匀地分散在因素与水平的完全组合之中,因此具有很强的代表性
三,正交试验设计方法步骤
分析需求获取因子与水平
根据因子及水平数选择正交表
替换因子水平,获取试验次数
细化输出测试用例

67. 数据库测试需要重点关注哪些重要的方面 ?

 正确回答通过率:31.0%

[ 详情 ] 推荐指数: ★★★★★ 试题难度: 高难

  1. 数据库备份
    内容正确性、不同介质与空间的备份,备份异常处理、大数据量的备份、部分or全部备份
  2. 数据库恢复
    备份恢复操作是否正常、恢复过程中对异常情况的处理,不同环境下的恢复
  3. 数据库权限管理
    权限设备、各权限分配功能实现
  4. 视图测试
    测试数据库视图定义是否反映了用户的需求
  5. 数据库功能测试
    通过测试用例运行数据库,以验证该数据库功能的正确和无遗漏。数据库功能测试的内容包括数据定义、数据操纵、数据库安全性、并发处理等的测试
  6. 数据操作和更新
    增、删、改、查等操作
  7. 数据的完整性
    实体完整性、参照完整性、用户定义的完整性等测试
  8. 数据的有效性
    确保数据库存储信息的正确性
  9. 数据库安全测试
    测试数据库的安全措施是否发挥作用并达到预期效果,有无漏洞
  10. 并发处理测试
    为了找出数据库系统并发处理机制的可能缺陷,进行并发处理测试
  11. 数据库性能测试
    数据库性能测试分为平均性能测试、压力测试、负载测试和强度测试4种类型
  12. 空数据库测试
    数据库表中所有的内容全部清空,只留下一个管理员账户信息,检查系统的所有功能操作是否能够正常实现
  13. SQL语句优化
  14. 存储过程的接口测试
  15. 触发器的接口测试
  16. 结合业务逻辑做关联表的接口测试

68. 软件测试中的逆向测试该如何开展?

 正确回答通过率:59.0%

[ 详情 ] 推荐指数: ★★★★ 试题难度: 高难

逆向测试是一种测试方法,旨在评估软件系统的安全性和防御能力,通过尝试绕过系统的设计来发现潜在的漏洞和弱点。以下是逆向测试的基本步骤:
1 确定测试目标:明确要测试的系统或软件的功能和特性。
2 收集信息:收集有关该软件的任何可能对测试有用的信息,包括其体系结构、架构、技术构成和依赖项等。
3 制定测试计划:制定测试计划,包括测试场景、测试用例、测试环境和测试数据。测试场景应该模拟攻击者可能采取的各种方法,例如尝试未经授权的访问、注入恶意代码、篡改数据等。
4 执行测试:根据测试计划执行测试,并记录测试结果和发现的漏洞。
5 分析和整理测试结果:对测试结果进行分析和整理,以确定哪些漏洞需要修复和如何修复它们。
6 提供测试报告:汇总测试结果并生成测试报告,包括发现的漏洞、建议的解决方案和测试过程中的所有细节。
总之,逆向测试需要测试人员具备良好的技术能力和专业知识,以便能够识别并充分利用软件架构和漏洞,从而发现潜在的漏洞问题。

69. 软件测试工程师人员如何分工?分工的原则有哪些?

  正确回答通过率:64.0%

[ 详情 ] 推荐指数: ★★ 试题难度: 中级

(1)集体测试
也许专业测试里讲这种方式,很可能不叫“集体测试”。因为我根据的自己的理解起了大概符合意思的名词叫集体测试“集体测试”。
就是测试模式就是,公司里所有的测试人员抱成一团儿,来一个项目,所有测试人员就集中测试一个项目。
(2) 按测试内容分工
一个项目的测试包括文档测试,易用性测试,逻辑功能测试,界面测试,配置和兼容等多个方面。我们可以根据人员的特点为每个人员分配不同的测试内容。
(3)按测试流程划分
我们的项目测试流程一般需要,制定测试计划,编写测试用例,执行测试用例,输出测试报告等工作,我们可以根据流程中的各个阶段来进行划分。
(4)按项目模块划分
对中大型的项目,这种划分就非常必要了,项目的模块非常多,功能也非常多。不同的测试人员负责不同模块的功能,这样会使用测试工作变得更加清晰。
(5)按照测试类型分工
我们知道软件除了功能需要测试以外,软件在编码阶段需要单元测试,接口测试等,在系统测试阶段,为提高功能测试的效率,可能对某些模块进行功能自动化,我们还要考虑软件的性能、安全性等问题。这些类型也是我项目中最常见的分类。我们可以根据这些类型为测试人员分配测试工作。当然,其专业性对测试人员的要求也比较高。

70. 解释什么是测试左移?

  正确回答通过率:59.0%

[ 详情 ] 推荐指数: ★★ 试题难度: 中级

测试左移(Shift-Left Testing)是一种新兴的软件测试理念,旨在将软件测试从开发过程的末端转移到开发的初始阶段。
其目的是尽早发现软件的问题,缩短测试周期,提高软件质量,并减少测试成本。
测试左移的理念源于敏捷开发的思想,即将开发的重点转移到软件集成的早期阶段,让测试与开发同步进行。有助于发现问题,并在早期就解决它们。
所以,测试左移将测试和开发紧密结合,使开发和测试过程更加有效,以便及时发现和解决软件中的问题。
企业实践经验表明,测试左移能够有效地提高软件质量,从而提高客户满意度。
通过将测试从开发过程的末端转移到开发的初始阶段,可以更快地发现软件中存在的问题,并及时修复。
这样,可以最大限度地减少测试成本,提高开发效率,达到企业的业务目标。
举例来说,一家公司正在开发一款软件,为了确保软件的质量,公司将采用测试左移的方法。
因此,在开发过程的初始阶段,就需要进行测试工作,以确保软件的正确性和可靠性。
例如,测试工程师可以针对其中的每个模块进行测试,以确保模块之间的相互兼容性和功能性。
此外,还可以进行单元测试,以确保软件中每个部分的正确性
因此,在软件开发的初期,就对不同操作系统进行测试,以确保软件能够在各种操作系统中正常运行。
此外,还可以对软件的功能进行测试,以确保软件的功能能够实现预期的效果,并且和不同操作系统的兼容性也得到保证。
通过采用测试左移的方法,可以有效地提高软件质量。可以尽早发现软件中的问题,从而减少测试成本,提高开发效率,提高客户满意度,有助于企业实现业务目标。
因此,测试左移是一种有效的软件测试理念,值得企业采纳。

71. 解释5个常用的性能指标的名称与具体含义【综合阐述】?

  正确回答通过率:80.0%

[ 详情 ] 推荐指数: ★★★★ 试题难度: 初级

响应时间:指的是“系统响应时间”定义为应用系统从发出请求开始到客户端接收到响应所消耗的时间。把它作为用户视角的软件性能的主要体现。

最大并发用户数:有两种理解方式,一种是从业务的角度来模拟真实的用户访问,体现的是业务并发用户数,指在同一时间段内访问系统的用户数量。另一种是从服务器端承受的压力来考虑,这里的“并发用户数”指的是同时向服务器端发出请求的客户数,该概念一般结合并发测试(Concurrency Testing)使用,体现的是服务端承受的最大并发访问数。

吞吐量:是指“单位时间内系统处理的客户请求的数量”,直接体现软件系统的性能承载能力。

性能计数器(Counter)是描述服务器或操作系统性能的一些数据指标。例如,对Windows 系统来说,使用内存数(Memory In Usage),进程时间(Total Process Time)等都是常见的计数器。
思考时间(Think Time),也被称为“休眠时间”,从业务的角度来说,这个时间指的是用户在进行操作时,每个请求之间的间隔时间。从自动化测试实现的角度来说,要真实地模拟用户操作,就必须在测试脚本中让各个操作之间等待一段时间,体现在脚本中,具体而言,就是在操作之间放置一个Think 的函数,使得脚本在执行两个操作之间等待一段时间。

TPS:Transaction per second,每秒钟系统能够处理的交易或者事务的数量。它是衡量系统处理能力的重要指标。

点击率:HPS,每秒钟用户向WEB服务器提交的HTTP请求数。

72. Excel中如何设计你的用例?

 正确回答通过率:57.0%

[ 详情 ] 推荐指数: ★★★ 试题难度: 中级

所有的接口信息维护在一个表单。
关于接口的用例数据维护在一个表单。
接口传参一列来传,通过构造json格式的字符串即可解决传多个参数的问题,同时提升了用例的可维护性。

73. 什么是敏捷测试,敏捷测试有哪些特点?

  正确回答通过率:72.0%

[ 详情 ] 推荐指数: ★★★★★ 试题难度: 中级

首先敏捷测试(Agile testing)是测试的一种,原有测试定义中通过执行被测系统发现问题,通过测试这种活动能够提供对被测系统提供度量等概念还是适用的。

敏捷测试是遵循敏捷宣言的一种测试实践:
①强调从客户的角度,即从使用系统的用户角度,来测试系统。
②重点关注持续迭代地测试新开发的功能,而不再强调传统测试过程中严格的测试阶段。
③建议尽早开始测试,一旦系统某个层面可测,比如提供了模块功能,就要开始模块层面的单元测试,同时随着测试深入,持续进行回归测试保证之前测试过内容的正确性。

● 敏捷测试的特点●
既然敏捷测试属于一种新的测试实践,那么到底它有什么的特点呢?我用“四个更”来归纳:
① 更强的协作
敏捷开发人员和测试人员工作得更加紧密,喜欢更直接的沟通方式而不是通过邮件文档这种一来一回反反复复的沟通模式;
② 更短的周期
需求验证或测试的时间不再是按月来计算,而是按天甚至按小时计算。用户验收测试在每个sprint的结尾都会进行;
③ 更灵活的计划
敏捷测试也需要拥抱变化,测试计划不再是一成不变的文档,而会根据业务价值交付的顺序进行灵活的调整;
④ 更高效的自动化
相比传统测试,自动化在敏捷测试中扮演了极其重要的角色。它是实现快速交付确保质量的一种非常有效的手段

74. 作为测试工程师如何做到不漏测?

 正确回答通过率:76.0%

[ 详情 ] 推荐指数: ★★★★ 试题难度: 中级

  1. 吃透业务需求
    需求评审阶段,产品经理、开发、测试在开会之前,一般都会收到一份需求文档和原型图。

2.提高用例质量
提高用例覆盖率,结合业务设计有效业务场景,保证测试有效性。

  1. 做好用例评审
    测试人员结合用例对需求进行反串讲,把对需求的理解讲一遍,列出所有的测试点和测试场景,产品和开发同事评审是否有遗漏场景,如果没有异议,这样就可以很大程度上避免漏测了。

4.增加交叉测试
一个人精力毕竟有限,如果条件和时间允许,可以把测试过的功能交给你的搭档,让他帮忙再测试一下,毕竟每个人的测试思路不一样,也许也有收获也不一定呢。

5.有效回归测试
梳理主流程用例,尤其随着版本迭代和功能的增加,回顾测试用例极为重要,毕竟每次发版时,要保证主流程没问题吧,主流程都有问题,难道还敢上线?

  1. bug仲裁
    在上线前,查看还有哪些问题,是未解决的,与产品、开发、测试经理商量,哪些bug是允许带到线上的,如果三方达成一致,那么线上再出问题,也是已知的,就没什么问题了。

  2. 做好漏测复盘
    对待漏测态度上必须要重视,分析为何会漏测,是哪个环节出了问题,是流程问题还是技术问题?

75. 请阐述单元测试用例常见的清单 ?

  正确回答通过率:56.0%

[ 详情 ] 推荐指数: ★★★★★ 试题难度: 高难

输入数据验证:
本节包含了一系列检查,这些检查通常可以对输入到应用程序系统中的数据采用。

必传项测试
唯一字段值测试
空值测试
字段只接受允许的字符
负值测试
字段限于字段长度规范
不可能的值
垃圾值测试
检查字段之间的依赖性
等效类划分和边界条件测试
错误和异常处理测试
日期验证:
这构成了日期字段的一组条件。

各种日期格式
美式风格的日期格式
有效日期
无效的日期,例如
月份00和13
Day不包含00和32作为其值
28、29、30已正确验证
检查周末和银行假期的影响
年与2月29日之间的链接
时间验证:
这构成了时间字段的一组条件

各种时间格式,例如12/24小时格式,AM / PM
检查有效时间
检查无效时间
检查周末和工作假期的影响
邮政编码验证:
这构成了邮政编码字段的一组条件

测试部分邮政编码输入并检查邮政编码格式
测试空间/无空间
检查是否有手动输入地址的选项
系统接口:
这构成了在多个应用程序系统之间传输的字段的一组条件。

检查接口上的所有字段/参数是否正确执行
所有数据字段都需要按照验证列表正常工作
跨自动化接口的安全性测试
检查继承关系
可用性:
这构成一组条件,有助于验证应用程序系统的可用性。

检查布局是否与设计标准一致
检查字体,颜色,大小等。
测试品牌准则
检查每个应用程序的窗口标题是否都有应用程序的名称和窗口名称
检查对齐
检查屏幕是否可调整大小和最小化
拼写检查
必要时测试默认值
必填字段需要用星号符号突出显示
安全:
这构成一组条件,有助于验证应用程序系统的安全性。

密码不可见
访问测试-多个级别
更改密码
错误消息不应泄露任何系统信息
检查是否正确部署了SSL
检查是否应用了锁定规则
检查密码是否以明码或加密方式保存
使用有效的UserId和无效的UserId验证应用程序
使用有效密码和各种无效密码验证应用程序
通过直接输入有效的URL来检查对应用程序的访问。系统应询问登录详细信息。
确保浏览器不记得密码
记录,审核和跟踪:
这由一组条件组成,这些条件有助于验证应用程序系统的审核记录,系统日志等。

检查是否在指定时间段内保存了日志
检查日志中是否包含个人数据
检查是否记录了管理员功能
检查是否记录了用户锁定事件
业务应用程序逻辑:
这构成一组条件,有助于验证应用程序系统的应用程序逻辑和业务处理。

检查是否探索了所有可用产品的选项
检查所有升级和降级路径及选项
验证升级和降级已应用于计费,网络,自助等
停止/断开连接/终止行为
设备故障行为
检查计算金额的舍入
确保使用的测试帐户的完整范围,类型/状态/条件
检查是否按要求显示货币符号
验证没有重复的记录。
在涉及算术的情况下,使用大量或非常大的数量/数字,以显示的和实际的数据形式检查溢出
报告:
本节包含一组检查,这些检查有助于验证系统提供的报告功能。

所有字段均可用
字段应有足够的空间
启用滚动和平移
页码指示报告大小(N个,共M个),并应允许访问报告中的中/终点
报告已正确导出到Excel / Word文档
报告可以正确打印,所有数据正确显示
检查报告中的所有页面是否都可访问
环境:
本节包含一组检查,这些检查有助于验证AUT的环境或设备要求。

使用所有浏览器进行测试
通过启用和禁用Java脚本进行测试
电邮:
本节包含一组可用于验证电子邮件功能的检查

验证在发送电子邮件时是否提供确认消息
验证电子邮件中提供的链接是否正常运行
确认回复地址正确
验证电子邮件中的字体,大小和文本对齐是否正确
搜索条件:
本节包含对应用程序系统搜索功能的一系列检查。

验证滚动条已实现
验证对齐结果正确无误
验证是否为搜索条件的任意组合显示了有效的结果。
验证是否针对AND / OR条件检索到正确的结果
验证结果以字母顺序或指定顺序显示
验证列标题是否可排序

  • 7
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

我思故我在7896

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值