软件测试工程师笔试准备

来源:互联网 发布:手机改ip软件 编辑:程序博客网 时间:2024/05/19 01:09
测试阶段的基本任务应该是根据软件开发各阶段的文档资料和程序的内部结构,精心设计一组“高产”的测试用例(一组输入数据与之对应的预期的输出结果,在设计测试用例时,应包括合理的输入数据不合理的输入数据),利用这些用例执行程序,找出软件潜在的缺陷。一个好的测试用例很可能找到至今为止尚未发现的缺陷;一个成功的测试则是指揭示了至今为止尚未发现的缺陷的测试。 

软件测试的原则应该是: 
(1)应当把“尽早地和不断地进行软件测试”作为软件开发者的座右铭。 
(2)测试用例应由测试输入数据和与之对应的预期输出结果这两部分组成。 
(3)程序员应避免检查自己的程序。
(4)在设计测试用例时,应当包括合理的输入条件不合理的输入条件。 
(5)充分注意测试中的群集现象。(软件测试中一个功能部件已发现的缺陷越多,找到它的更多未发现的缺陷的可能性就越大) 
(6)严格执行测试计划,排除测试的随意性。 
(7)应当对每一个测试结果做全面检差。 
(8)妥善保存测试计划,测试用例,出错统计和最终分析报告,为维护提供方便。

2. 什么是软件测试? 
答:测试是为发现错误而执行程序的过程 
软件测试就是利用测试工具按照测试方案和流程对产品进行功能和性能测试,甚至根据需要编写不同的测试工具,设计和维护测试系统,对测试方案可能出现的问题进行分析和评估。执行测试用例后,需要跟踪故障,以确保开发的产品适合需求。

一个规范化的软件测试过程通常包括以下基本的测试活动:
拟定软件测试计划    
编制软件测试大纲     
确定软件测试环境     
设计和生成测试用例     
实施测试  
生成软件测试报告

软件测试方法一般分为两大类:[  ] 方法和[  ]方法。动态/静态,黑盒/白盒

5.动态测试通过[ 运行程序 ]发现错误。根据[  ]的设计方法不同,动态测试又分为 [ 黑盒测试 ] 与 [ 白盒测试 ] 两类。所谓软件的动态测试,就是通过
运行软件来检验软件的动态行为和运行结果的正确性。 
6.静态测试采用[ 数据流测试 ]和[同行评审 ]的手段对程序进行检测。

循环覆盖是对程序内部有 [ 循环结构 ] 存在的逻辑结构设计测试用例,它通过限制  [ 循环次数 ] 来测试。

黑盒测试是[ 功能测试或数据驱动 ]测试,用黑盒技术设计测试用例有4种方法: [ 边界值分析 ]、[ 错误推测 ]、[ 等价划分 ]  和[ 因果图 ] 

17.等价类划分从程序的[ 规格 ] 说明,找出一个输入条件(通常是 [ 有效值 ] 或[ 无效值 ]  ),然后将每个输入条件划分成两个或多个[ 等价类 ] 。
18.边界值分析是将测试[边界] 情况作为重点目标,选取正好等于、刚刚大于或刚刚小于 [ 边界值 ] 的测试数据。如果输入或输出域是一个有序集合,则应选取集合的 [ 最大 ] 元素和 [ 最小 ]元素作为测试用例。 
19.在测试程序时,根据经验或直觉推测程序中可能存在的各种错误,称为 [ 错误推测法 ]。 
20.因果图的基本原理是通过画  [ 因果图 ]图,把用自然语言描述的[ 功能说明 ]  转换为[ 判定表 ] ,最后为  [ 判定表 ]每一列设计一个测试用例。

软件测试一般经过4个测试:[ 单元 ] 、 [ 集成 ]、[ 系统 ] 和 [ 验收 ] 。

Alpha 测试在系统开发接近完成时对应用系统的测试;测试后仍然会有少量的设计变更。这种测试一般由最终用户或其它人员完成,不能由程序或测试员完成。 

10 描述软件测试活动的生命周期? 答: 
测试周期分为计划、设计、实现、执行、总结。其中: 
计划:对整个测试周期中所有活动进行规划,估计工作量、风险,安排人力物力资源,安排进度等; 
设计:完成测试方案,从技术层面上对测试进行规划; 
实现:进行测试用例和测试规程设计; 
执行:根据前期完成的计划、方案、用例、规程等文档,执行测试用例。 
总结:记录测试结果,进行测试分析,完成测试报告。

1、软件测试的目的是?测试中要注意那些原则?  
答:软件测试的目的是发现软件中存在的错误。好的测试用例可以发现至今没有发现的错误。要提供输入数据还要提供输出数据、保留测试用例、检查它是否做了应该做的还要检查它是否做了不该做的、避免自己测试自己的程序、错误多的地方要更严格的测试。

2、什么是白盒法?有那些覆盖标准?比较他们的检错能力。 
答:将程序看成是白盒子,认真的分析程序的结构和功能制定测试用例来测试。有逻辑覆盖(语句覆盖、判断覆盖、条件覆盖、判断/条件覆盖、条件组合覆盖、路径覆盖) 

3、什么是黑盒法?有那些测试方法?特点? 
答:将程序当成是黑盒子以设计中的功能为标准在程序的接口出进行测试看它能否达到功能要求。等价类划分、边界值分析、因果图、错误推测。 

4、软件测试要经过那些步骤?这些步骤和开发那些阶段对应? 
答:单元测试对应详细设计和编码、集成测试对应概要设计、确认测试对应需求分析。

5、单元测试有那些内容? 
答:测试模块的接口、数据结构、重要的执行路径、错误处理、边界条件。 

6、什么是集成测试?非渐增式和渐增式有什么区别?渐增式如何组装模块? 
答:将模块组合起来成为一个完整的系统对其进行测试。非渐增式是将模块先进行单元测试然后组装在一起进行测试。渐增式是逐个将未测试的模块组装到已经测试过的模块上去进行集成测试,每加入一个就测试一次。非渐增式需要桩模块和驱动模块、非渐增式开始可以并行测试、渐增式可以及时的发现接口错误,非渐增式很难发现接口发现错误、渐增式开始不能并行测试、渐增式测试比较彻底。 
渐增式组装模块有自顶向下和自底向上两种组装方式

7、什么是确认测试?该阶段有那些工作? 
答:按照需求规格说明书中的确定指标对系统进行功能与性能的测试。进行确认测试(对照需求规格说明书用黑盒法进行测试)、软件配置检查。(文档的完整性、正确性,发现遗漏和错误及时补充和修改) 

8、 调试的目的是什么?调试的技术有那些?  
答:调试的目的是发现错误的位置并改正错误。简单调试、演绎调试、递归调试、回溯调试。

5、软件的安全性应从哪几个方面去测试?(5分)
 参考答案: 
(1)用户认证机制:如数据证书、智能卡、双重认证、安全电子交易协议 
(2)加密机制 
(3)安全防护策略:如安全日志、入侵检测、隔离防护、漏洞扫描 
(4)数据备份与恢复手段:存储设备、存储优化、存储保护、存储管理 
(5)防病毒系统

测试用例(Test Case)指:对一项特定的软件产品进行测试任务的描述,体现测试方案、方法、技术和策略。内容包括测试目标、测试环境输入数据、测试步骤、预期结果、测试脚本等,并形成文档。

影响软件测试的因素很多,例如软件本身的复杂程度、开发人员(包括分析、设计、编程和测试的人员)的素质、测试方法和技术的运用等等。

在这些bug管理工具里,bug的一个最重要的属性就是“状态”,一般又有“新增(New或Active)”,“处理中(in progress)”,“已修正(Fixed)”,“重新打开(reopened)”,“关闭(Close)”等几个,这几个状态一看就很明白一个bug从发现到排除要走哪些流程: 
1.测试人员发现bug,提交。bug状态为New 
2.开发人员接收bug,bug状态为in Progress 
3.开发人员修改完毕,提交,bug状态改为Fixed 
4.测试人员针对开发人员作的修改,再次对bug进行测试,如果bug依然存在,就把bug状态置为reopened,流程到第二步重新开始,如果问题已经解决,就直接改为close,该bug的流程就走完了。

软件的黑盒测试意味着测试要在软件的接口处进行。这种方法是把测试对象看做一个黑盒子,测试人员完全不考虑程序内部的逻辑结构和内部特性,只依据程序的需求规格说明书,检查程序的功能是否符合它的功能说明。因此黑盒测试又叫功能测试数据驱动测试。黑盒测试主要是为了发现以下几类错误:   
1、是否有不正确或遗漏的功能? 
2、在接口上,输入是否能正确的接受?能否输出正确的结果?   
3、是否有数据结构错误或外部信息(例如数据文件)访问错误?   
4、性能上是否能够满足要求?   
5、是否有初始化或终止性错误?   

软件的白盒测试是对软件的过程性细节做细致的检查。这种方法是把测试对象看做一个打开的盒子,它允许测试人员利用程序内部的逻辑结构及有关信息,设计或选择测试用例,对程序所有逻辑路径进行测试。通过在不同点检查程序状态,确定实际状态是否与预期的状态一致。因此白盒测试又称为结构测试逻辑驱动测试。白盒测试主要是想对程序模块进行如下检查: 
1、对程序模块的所有独立的执行路径至少测试一遍。 
2、对所有的逻辑判定,取“真”与取“假”的两种情况都能至少测一遍。   
3、在循环的边界和运行的界限内执行循环体。  
4、测试内部数据结构的有效性,等等。 

测试计划工作的目的是什么?测试计划工作的内容都包括什么?其中哪些是最重要的? 
答:软件测试计划是指导测试过程的纲领性文件,包含了产品概述、测试策略、测试方法、测试区域、测试配置、测试周期、测试资源、测试交流、风险分析等内容。借助软件测试计划,参与测试的项目成员,尤其是测试管理人员,可以明确测试任务和测试方法,保持测试实施过程的顺畅沟通,跟踪和控制测试进度,应对测试过程中的各种变更。 
测试计划和测试详细规格、测试用例之间是战略和战术的关系,测试计划主要从宏观上规划测试活动的范围、方法和资源配置,而测试详细规格、测试用例是完成测试任务的具体战术。所以其中最重要的是测试测试策略和测试方法(最好是能先评审)。

你以前工作时的测试流程是什么?
        公司对测试流程没有规定如何做,但每个测试人员都有自己的一套测试流程。我说下我1年来不断改正(自己总结,吸取同行的方法)后的流程吧。需求评审(有开发人员,产品经理,测试人员,项目经理)->需求确定(出一份确定的需求文档)->开发设计文档(开发人员在开始写代码前就能输出设计文档)->想好测试策略,写出测试用例->发给开发人员和测试经理看看(非正式的评审用例)->接到测试版本->执行测试用例(中间可能会补充用例)->提交bug(有些bug需要开发人员的确定(严重级别的,或突然发现的在测试用例范围之外的,难以重现的),有些可以直接录制进TD)->开发人员修改(可以在测试过程中快速的修改)->回归测试(可能又会发现新问题,再按流程开始跑)。

基于WEB信息管理系统测试时应考虑的因素有哪些?
 一、功能测试     
1、链接测试      
2、表单测试      
3、Cookies测试     
4、设计语言测试      
5、数据库测试 
二、性能测试 
1、连接速度测试      
2、负载测试        
3、压力测试    
三、可用性测试     
1、导航测试        
2、图形测试     
3、内容测试     
4、整体界面测试 
四、客户端兼容性测试     
1、平台测试         
2、浏览器测试    
五、安全性测试

16. 在您以往的工作中,一条软件缺陷(或者叫Bug)记录都包含了哪些内容?如何提交高质量的软件缺陷(Bug)记录?  
BUG应该包含的信息有:标题、基本信息、测试的软件和硬件环境、软件版本、类型、严重程度、处理优先级、重复缺陷的操作步骤、缺陷实际结果描述、期望的正确结果描述、注释文字和截取的缺陷图像。 
高质量的bug应该符合5C原则: 
Correct 准确,每个组成部分的描述准确,不会引起误解。 
Clear 清晰,每个组成部分描述清晰,易于理解 
Concise 简洁,只包含必不可少的信息,不包括任何多余的内容。 
Complete 完整,包含复现该缺陷的完整步骤和其他本质信息 
Consistent一致,按照一致的格式书写全部缺陷报告。










作为一名优秀的测试工程师,首先要对测试工作有兴趣:测试工作很多时候都是显得有些枯燥的,因此热爱测试工作,才更容易做好测试工作。因此,除了具有前面的专业技能和行业知识外,测试人员应该具有一些基本的个人素养,即下面的“五心”。

专心:主要指测试人员在执行测试任务的时候要专心,不可一心二用。经验表明,高度集中精神不但能够提高效率,还能发现更多的软件缺陷,业绩最棒的往往是团队中做事精力最集中的那些成员。

细心:主要指执行测试工作时候要细心,认真执行测试,不可以忽略一些细节。某些缺陷如果不细心很难发现,例如一些界面的样式、文字等。

耐心:很多测试工作有时候显得非常枯燥,需要很大的耐心才可以做好。如果比较浮躁,就不会做到“专心”和“细心”,这将让很多软件缺陷从你眼前逃过。

责任心:责任心是做好工作必备的素质之一,测试工程师更应该将其发扬光大。如果测试中没有尽到责任,甚至敷衍了事,这将会把测试工作交给用户来完成,很可能引起非常严重的后果。

自信心:自信心是现在多数测试工程师都缺少的一项素质,尤其在面对需要编写测试代码等工作的时候,往往认为自己做不到。要想获得更好的职业发展,测试工程师们应该努力学习,建立能“解决一切测试问题”的信心。

“五心”只是做好测试工作的基本要求,测试人员应该具有的素质还很多。例如测试人员不但要具有团队合作精神,而且应该学会宽容待人,学会去理解“开发人员”,同时要尊重开发人员的劳动成果——开发出来的产品。





































0 0
原创粉丝点击