软件测试

静态测试:只测试不运行的部分--只是检查和审核;

动态测试是指通常意义上的测试--使用和运行软件。

回归测试是指修改了旧代码后,重新进行测试以确认修改没有引入新的错误或导致其他代码产生错误。


开发人员修复缺陷后,如何保证不影响其他功能:

答案:Bug的修复以及新功能的添加都有可能对版本造成一些影响,为了避免,在新版本发布以后,首先会对新版本做一个基础的流程测试也叫做冒烟测试,如果测试基本流程都顺利通过没有任何问题,那么测试人员可以继续进行详细的测试,否则就将冒烟测试中出现 的问题以及问题有可能出现的原因反馈给开发人员,由开发人员修正后再次发版,进行测试。这是一个迭代的过程。


缺陷报告包括那些项

答案:编写人被测系统的版本号测试环境预期结果实际结果对于实际结果如有必要附上截图测试用例数测试用例通过数测试用例的通过率、对缺陷的一个分析汇总。


缺陷报告严重级别的划分

严重级别的错误:影响系统整体基本流程运行的错误,由于某一操作造成系统死循环或服务器崩溃的错误。

较严重:功能实现错误、内部计算错误。

一般:UI错误,一些易用性的错误或建。


测试总结报告包括那些项

答案:测试用例的通过数,测试用例的未通过数,以及测试用例的通过率,未通过的功能都集中在哪几个功能模块 ,根据测试经验以及测试结果进行一个缺陷的分析和建议。


测试工作进行到一半是,发现时间不够,你如何处理。

答案:1.与客户沟通本次发布的版本什么是最重要的,什么是其次,我会安排一个优先级来对整体测试功能进行一个筛选。 2.我会和测试组原体人员一起加班。


在实际项目中你是如何做测试计划

答案:1.对客户提供的或需求分析人员编写的用户需求文档或需求规格说明书进行分析,提炼出测试要点2.根据测试要点编写测试用例3.由评审组对测试用例进行评审--修改--再次评审--初步定稿 4.执行测试 4.1 按照测试用例对系统进行功能验证及客户的需求验证4.2 将测试过程中产生的Bug录入缺陷管理系统4.3 新版本发布后,对本次版本新增加的功能以及开发人员修正的Bug进行回归测试 4.4 根据项目需要提交测试报告。


测试计划都包括那些项

答案:1.测试计划目标 2.测试参考文档 3.测试术语与定义 4. 测试内容 5. 测试人员的分工 6. 测试进度 7. 测试流程 8. 测试工具 9.测试缺陷管理 10. 测试的风险分析


缺陷处理流程

1.讲缺陷的详细信息录入缺陷管理系统,并分配给对应的开发人员

2.如果遇到一些难以再现的缺陷,在开发人员修正过程中配合开发人员进行Bug的再现。

3.开发人员修正Bug后,会在缺陷管理系统中将修正后的Bug状态更改,通常为Fixed状态。

4.新版本发布后,测试人员会讲bug状态已经更改为Fixed的Bug进行回归测试。如果测试通过,则将该Bug关闭,如果仍未通过,则将该Bug从Fixed更改为Reopen状态,继续让开 发人员来修正。并等待下一个新版本发布后的二次回归测试。


测试类型共划分为哪些?

1)功能测试:对软件功能进行测试,检查软件的各项功能是否实现了软件功能说明书(软件需求)上的要求。

2)界面测试:对用户界面进行测试,检查用户界面的美观度、统一性、易用性等方面的内容。

3)流程测试:按操作流程进行测试,主要有业务流程、数据流程、逻辑流程、正反流程,检查软件在按照流程操作时是否能够正确处理。

4)并发测试:在网络环境、并发环境和多用户条件下对软件进行的测试。

5)极限测试:在软件的极限条件下进行的测试,主要有对数据的极限值、边界值操作,对软件进行致命操作等。

6)数据处理测试:对软件数据接口进行的测试,主要检查软件数据处理中输入、处理、输出数据过程。

7)安全测试:对软件安全性方面的测试,主要检测软件中加密、解密、数据备份、恢复、病毒检测等问题。

8)性能测试:对软件整体性能的测试,测试内容有适应性、健壮性、可恢复性、灾难恢复能力等

9)安装测试:在不同PC条件、操作系统、模拟客户机等条件下进行软件的安装测试,主要检查软件打包或发布之后存在的问题。

10)性能测试:对软件整体性能进行测试,测试的内容有适应性、健壮性、可恢复性、灾难恢复能力等


测试计划的目的是什么?

目的是规定测试活动的范围、方法、资源和进度明确正在测试的项目,要测试的功能特性,要执行的测试任务,每个任务的负责人,以及与计划相关的风险。


软件测试的目的是什么:从测试工程师的角度分析:发现程序中的错误、降低代码出错风险、保证代码质量。从公司的角度分析:降低公司成本


软件测试应该划分几个阶段?简述各个阶段应重点测试的点?各个阶段的含义?
 
大体上来说可分为单元测试,集成测试,系统测试,验收测试,每个阶段又分为以下五个步骤:
测试计划,测试设计,用例设计,执行结果,测试报告。


白盒测试的目的:
通过检查软件内部的逻辑结构,对软件中的逻辑路径进行覆盖测试;在程序不同地方设立检查点,检查程序的状态,以确定实际运行状态与预期状态是否一致。

白盒测试的实施步骤:
测试计划阶段:根据需求说明书,制定测试进度。
测试设计阶段:依据程序设计说明书,按照一定规范化的方法进行软件结构划分和设计测试用例。
测试执行阶段:输入测试用例,得到测试结果。
测试总结阶段:对比测试的结果和代码的预期结果,分析错误原因,找到并解决错误。
5)白盒测试的方法:总体上分为静态方法和动态方法两大类。

白盒测试的特点:
依据软件设计说明书进行测试、对程序内部细节的严密检验、针对特定条件设计测试用例、对软件的逻辑路径进行覆盖测试。


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

只是对缺陷的生命周期进行管理和跟踪,Bugzilla或者TD已经足够了,

 1.要更好的管理缺陷,必须引入缺陷管理工具,商用的或者开源的都可。

 2.根据缺陷的生命周期,考虑缺陷提交的管理、缺陷状态的管理和缺陷分析的管理。

 3.所有发现的缺陷(不管是测试发现的还是走读代码发现的)都必须全部即时的、准确的提交到缺陷管理工具中,这是缺陷提交的管理。

 4.缺陷提交后,需要即时的指派给相应的开发人员,提交缺陷的人需要密切注意缺陷的状态,帮助缺陷的尽快解决。缺陷解决后需要即时对缺陷的修复进行验证。这样的目的有两个:一个是让缺陷尽快解决;二是方便后面缺陷的分析(保证缺陷相关的信息准确,如龄期等),这是缺陷状态的管理。

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


驱动模块是用来模拟被测试模块的上一级模块,相当于被测模块的主程序。它接收数据,将相关数据传送给被测模块,启用被测模块,并打印出相应的结果。
桩模块(Stub)是指模拟被测试的模块所调用的模块,而不是软件产品的组成的部分。


错误推测方法的基本思想: 列举出程序中所有可能有的错误和容易发生错误的特殊情况,根据他们选择测试用例.

例如,测试手机终端的通话功能,可以设计各种通话失败的情况来补充测试用 例:
1) 无SIM 卡插入时进行呼出(非紧急呼叫)
2) 插入已欠费SIM卡进行呼出
3) 射频器件损坏或无信号区域插入有效SIM卡呼出
4) 网络正常,插入有效SIM卡,呼出无效号码(如1、888、333333、不输入任何号码等)
5) 网络正常,插入有效SIM卡,使用“快速拨号”功能呼出设置无效号码的数字


如果你是测试组长你如何对项目及组员进行管理

答案: 首先要从需求开始,充分了解被测系统的功能以及业务需求,并在遇到问题的时候及时有效的与开发人员以及其他项目相关人员进行沟通,做到最被测系统的十分熟悉。并了解整个测试组的成员他们的测试技能以及擅长的工作,做到测试任务的合理分配,得以让测试工作快速,稳定高效的进行!


按照开发阶段划分,软件测试可分为单元测试集成测试系统测试和验收测试。
单元测试:针对每个单元的测试, 以确保每个模块能正常工作为目标。
集成测试:对已测试过的模块进行组装,进行集成测试。目的在于检验与软件设计相关的程序结构问题。
确认(有效性)测试:是检验所开发的软件能否满足所有功能和性能需求的最后手段。有的划分方法中,也将确认测试合并入系统测试中。
系统测试:检验软件产品能否与系统的其他部分(比如,硬件、数据库及操作人员)协调工作。
系统测试是将经过集成测试的软件,作为计算机系统的一个部分,与系统中其他部分结合起来,在实际运行环境下对计算机系统进行的一系列严格有效地测试,以发现软件潜在的问题,保证系统的正常运行。
验收(用户)测试:检验软件产品质量的最后一道工序。主要突出用户的作用,同时软件开发人员也应有一定程度的参与。

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


如果能够执行完美的黑盒测试,还需要进行白盒测试吗?

   黑盒测试:从用户角度出发,根据规格说明设计测试用例,并不涉及程序的内部特性和内部结构,只依靠被测程序输入和输出之间的关系或程序的功能设计测试用例。黑盒测试有两个显著特点:

   (1)黑盒测试与软件的具体实现过程无关,在软件实现的过程发生变化时,测试用例仍然可以用。

   (2)黑盒测试用例的设计可以和软件实现同时进行,这样能够压缩总的开发时间。

    黑盒测试主要是为了发现以下几类错误:

   1、是否有不正确、遗漏或额外的功能实现

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

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

    4、性能上是否能够满足要求

    5、是否有初始化或终止性错误

  白盒测试:已知程序的内部结构,检查内部操作是否按规定执行。主要对程序细节进行严密检验,针对特定条件和循环设计测试用例对程序的逻辑路径进行测试通过在程序的不同点检查程序状态,确定实际状态是否与预期的状态一致。

    白盒测试主要是想对程序模块进行如下检查:

   1、程序的所有语句至少执行一次

    2、对所有的逻辑条件都能至少执行一次

    3、在循环的边界和运行的界限内执行循环体

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

   从以上可以看出就算执行了完美的黑盒测试也是无法测试程序内部特定部位,另外当规格说明本身有误,也不能发现问题。而白盒测试能对程序的内部特定部位进行覆盖测试,所以黑盒和白盒测试为互补关系,结合起来进行测试用例的设计更为合理。

经验表明,通常在进行单元测试时采用白盒测试方法,集成测试采用灰盒测试方法,系统测试采用黑盒测试方法。



单元测试、集成测试、系统测试的侧重点是什么?答题建议:围绕重点简单概括即可。如下:单元测试的重点是系统的模块,包括子程序的正确性验证等。集成测试的重点是模块间的衔接以及参数的传递等。系统测试的重点是整个系统的运行以及与其他软件的兼容性。

一个测试工程师应具备那些素质和技能?答题建议:一个好的测试工程师,不仅要基础扎实,对自身的性格、责任心都有非常高的要求。具体如下:(1)掌握基本的测试基础理论(2)本着找出软件存在的问题的态度进行测试,即客观吧,不要以挑刺形象出现(3)可熟练阅读需求规格说明书等文档(4)以用户的观点看待问题(5)有着强烈的质量意识(6)细心和责任心(7)良好的有效的沟通方式(与开发人员及客户)(8)具有以往的测试经验(9)能够及时准确地判断出高危险区在何处。

集成测试通常都有那些策略?答题建议:大致说四点即可,当然说全更好。集成测试有十种策略:(1)大爆炸集成(2)自顶向下集成(3)自底向上集成(4)三明治集成(5)分层集成(6)基干集成(7)基于功能的集成(8)基于消息的集成(9)基于风险的集成(10)基于进度的集成.


现在一个程序实现这样的功能:读入三个整数值,这三个整数值表示三角形的三个边长,该程序打印信息表明三角形是不等边三角形、等腰三角形或等边三角形。请开发一个测试用例集测试该程序,注意涵盖尽可能多的情形,并加入适当的出错处理 (1)正常的不等边三角形 (2)正常的等边三角形 (3)正常的等腰三角形,包括两条相等的边的三种不同的排列方法 (4)正常的直角三角形 
(5)正常等腰直角三角形,包括两边相等的三种不同的排列方法 (6)退化的三角形(即,两边之和等于第三边),包括三种不同的排列方法 (7)三条边不能构成三角形(两边之和小于第三边),包括三种排列方法 (8)一条边长度为零,两条边为零,三边为零的9种排列方法(9)输入数据包含负数 (10)输入数据不全(只知道2边的长度不知道第三边) (11)输入的数据不符合程序规定的数据类型


静态黑盒测试:指检查产品说明书,并在软件编写之前找出问题。

动态黑盒测试:指不了解软件如何工作的前提下进行测试。

静态白盒测试(结构化分析):指通过正式审查和检验检查代码的细节。在不执行软件的条件下,有条理地仔细审查软件设计、体系结构和代码,从而找出软件缺陷。

动态白盒测试(结构化测试)指在看到软件的工作方式时,根据获得的信息对软件进行测试。利用查看代码功能和实现方式得到的信息确定哪些需要测试、哪些不需要测试、如何开展测试。

 静态白盒测试的好处:尽早发现软件缺陷,以找出动态黑盒测试难以发现或隔离的软件缺陷,使修复的时间和费用大幅降低。另一个好处是,为黑盒测试员在接受软件进行测试时设计和应用测试用例提供思路。黑盒测试员不必了解代码的细节,但是通过听审查评论可以确定有问题或者容易产生软件缺陷的特性范围。

灰盒测试:边看着代码,便利用代码的信息帮助测试。它不像白盒测试一样详细地检查代码。代码用来协助测试,但是测试并不是完全基于代码。






评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值