软件测试简答

1. 比较自顶向下集成测试和自底向上集成测试的优劣?


自顶向下:
优点:
1)尽早的发现结构设问题;
2)不需要编写设计驱动模块;
缺点:
1)底层的实现模块的缺陷在后期发现;
2)需要编写大量的桩模块;
自底向上:
优点:
1)尽早的发现底层实现模块的缺陷;
2)不需要编写桩模块;
缺点
1)结构设计问题较晚发现,可能造成项目的延期或反工;
2)需要编写大量的驱动模块;


2. 什么叫α测试(Alpha 测试)?什么叫β测试(beta 测试)?α测试和β测试有什么区别?


1.α测试
α测试是由一个用户在开发环境下进行的测试,也可以是公司内部的用户在模拟实际操作环境下进行的测试。α测试的目的是评价软件产品的FLURPS(即功能、局域化、可用性、可靠性、性能和支持)。尤其注重产品的界面和特色。
α测试可以从软件产品编码结束之时开始,或在模块(子系统)测试完成之后开始,也可以在确认测试过程中产品达到一定的稳定和可靠程度之后再开始。α测试即为非正式验收测试。
2.β测试
β测试是指软件开发公司组织各方面的典型用户在日常工作中实际使用β版本,即发放一部分给用户进行测试,并要求用户报告异常情况、提出批评意见,然后软件开发公司再对β版本进行改错和完善。β测试也是黑盒测试。黑盒测试也称功能测试,它是通过测试来检测每个功能是否都能正常使用。
3.区别
1.
α测试是指把用户请到开发方的场所来测试
β测试是指在一个或多个用户的场所进行的测试。
2.
α测试的环境是受开发方控制的,用户的数量相对比较少,时间比较集中。
β测试的环境是不受开发方控制的, 用户数量相对比较多,时间不集中。
3.
α测试先于β测试执行。通用的软件产品需要较大规模的β测试,测试周期比较长


3. 常用的逻辑覆盖测试方法有哪几种?并简单描述各种方法的目的。


逻辑覆盖可分为:语句覆盖、判定覆盖、条件覆盖、判定/条件覆盖及路径覆盖。
语句覆盖:要求设计若干个测试用例,运行被测程序,使程序中的每个可执行语句至少被执行一次。
判定覆盖:要求设计若干测试用例,运行被测程序,使得程序中每个判断的取真分支和取假分支至少执行一次,即判断的真假值均要被检测。判定覆盖又称为分支覆盖。
条件覆盖:要求设计若干测试用例,执行被测程序,使得程序中每个判断的每个条件的可能取值至少被执行一次。
判定/条件覆盖:要求设计足够的测试用例,执行被测程序,使得判断中每个条件的所有可能取值至少被执行一次,同时每个判断的所有可能判断结果也至少被执行一次。
路径覆盖:要求设计足够多测试用例,覆盖程序中所有可能的路径。


4. 什么是白盒测试?白盒测试主要采用的技术有哪些? 白盒测试有那几种方法?并简单描述各种方法的特点。


白盒测试又称为结构测试、逻辑驱动测试或基于程序的测试。它依赖于对程序细节的严密的检验。针对特定条件和循环集设计测试用例,对软件的逻辑路径进行测试。在程序的不同点检验程序的状态,来进行判定其实际情况是否和预期的状态相一致。
白盒测试包括:逻辑覆盖、基路径测试、数据流测试、程序插装等。 总体上分为静态方法和动态方法两大类
静态:关键功能是检查软件的表示和描述是否一致,没有冲突或者没有歧义
动态:语句覆盖、判定覆盖、条件覆盖、判定条件覆盖、条件组合覆盖、路径覆盖。


5. 什么是黑盒测试?黑盒测试主要采用的技术有哪些?


黑盒测试又称为功能测试、数据驱动测试和基于规格说明的测试。它从用户观点出发的测试。用这种方法进行测试时,把被测试程序当作一个黑盒,在不考虑程序内部结构的内部特性、测试者只知道该程序输入和输出之间的关系或程序功能的情况下,依靠能够反映这一关系和程序功能需求规格的说明书,来确定测试用例和推断测试结果的正确性。
黑盒测试的方法包括:边界值分析、等价类测试、基于决策表的测试和因果图等。


6. 软件测试工作过程有哪些?


1、单元测试。单元测试又称为模块测试,是针对软件设计的最小单位程序模块进行正确性检查的测试工作,单元测试需要从程序内部结构出发设计测试用例,多个模块可以平行地独立进行单元测试。

2、集成测试。又称为组装测试或联合测试,在单元测试的基础上,需要将所有模块按照概要设计说明书和详细设计说明书的要求进行组装。

3、确认测试。确认测试的目标是验证软件的功能和性能以及其他特性是否与用户的要求一致。确认测试一般包括有效性测试和软件配置复查。一般有第三方测试机构进行。

4、系统测试。软件作为计算机系统的一部分,与硬件、网络、外设、支撑软件、数据以及人员结合在一起,在实际或模拟环境下,对计算机系统进行测试,目的在于与系统需求比较,发现问题。

5、验收测试以用户为主的测试,软件开发人员和质量保证人员参加,由用户设计测试用例。不是对系统进行全覆盖测试,而是对核心业务流程进行测试。


7. 测试工具LoadRunner简介。



8. Web系统测试通常包括哪些?


1.性能测试:Web性能测试是通过模拟多种正常负载、峰值以及异常负载条件同时访问Web服务器,来对系统的各项性能指标进行测试,获得系统的性能数据。 主要有压力测试、负载测试、强度测试等。

2.功能测试:

3.界面测试:

4.安全测试:


9. 什么是软件测试?软件测试的目的和作用是什么?


什么是软件测试:

简单的说,软件测试就是为了发现错误而执行程序的过程,软件测试是一个找错的过程,测试是为了找出程序中的错误,而不是证明程序无错。
软件测试的目的
是以最少的时间、人力和物力找出软件中潜在的各种错误和缺陷,通过修正各种错误和缺陷提高软件质量,回避软件发布后由于潜在的软件缺陷和错误造成的隐患所带来的商业风险。
此外,尽早发现软件缺陷,降低修复缺陷成本、对软件进行质量评估、提高软件质量也是软件测试的目的。
软件测试作用
产品质量评估:为软件产品发布(验收测试)、软件系统部署(性能规划测试)、软件产品鉴定(第三方独立测试)和其他决策提供产品质量所需的各种信息和报告。
持续的质量反馈:通过持续的测试(需求评审、设计评审、代码评审)对产品质量提供持续的、快速的反馈,从而在开发中不断地及时解决质量问题,改进产品质量、减少各种返工。最大限度地降低软件开发的劣质和成本。
客户满意度提升:通过测试发现要交付产品的各种缺陷,降低或消除产品的质量风险,提高客户的满意度。
缺陷预防:分析缺陷,找根本原因(流程缺失、不遵守流程、错误的行为方式、不良习惯等原因),总结出软件缺陷模式,采取措施纠正深层次问题,避免将来再犯同样的错误。


10.什么是桩模块,什么是驱动模块?


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

驱动模块要完成以下事情:
1.接受测试输入
2.对输入进行判断
3.将输入传给被测单元,驱动被测单元执行
4.接受被测单元执行结果,并对结果进行判断
5.将判断结果作为用例执行结果输出测试报告

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

11.用黑盒测试设计测试用例有哪些常用方法?



12.什么是测试用例?


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

13.性能测试常用指标有哪些?



14.性能测试类别有哪些?



15.请简述自动化测试使用的技术。



16.常见的性能测试指标有哪些?

答: 响应时间:响应时间反映完成某个业务所需要的时间。在性能测试中通过事务函数来实现对响应时间的统计,事务是指做某件事情的操作,事务函数会记录开始做这件事情和该事情做完之间的时间差,使用Transaction Response Time(事务响应时间)这个词来表示。 吞吐量:吞吐量反映单位时间内能够处理的事务数目。在性能测试工具中,吞吐量也称为TPS (Transaction Per Second,每秒事务数),即在单位时间内能完成的事务数量。TPS一般用一段时间内通过的事务数除以时间来计算。 服务器资源占用:服务器资源占用反映了负载下系统资源的利用率。服务器资源的占用率越低,说明系统越优秀。

17 如何有效的进行性能测试?

答: 针对系统的性能指标,建立性能测试模型,制定性能测试方案,制定监控策略,在场景条件之下执行性能场景,分析判断性能瓶颈并调优,最终才能得出可靠性能结果来评估系统的性能指标是否满足既定值。

18.性能测试的工具有很多,请总结性能测试工具的共性特点。

答:性能测试最常用的工具有loadrunner与jmeter,无论是什么样的测试工具最终要达到的目标有几点: 录制或编写脚本功能(参数化/关联功能) 场景功能 报告生成功能 对于一个性能测试工具来说,如果能实现上面所说的几大功能,那么就基本上就满足了性能测试工具的功能。

19.一般的性能测试流程是什么?

答: 制定性能测试目标 选择性能测试工具 设计性能测试 监控分析系统 性能调优

20 请说明性能测试的分层模型。

答:包括三层:前端层、网络层、后端层。 前端层:前端层主要是指用户看到的页面。 网络层:网络是连接前后端的命脉,网络质量的好坏对系统性能也有很大的影响。 后端层:不论是Web端还是移动APP端,在后端层实施性能测试的方法都是类似的,都是模拟大量客户端请求发送给后端层,同时监控后端服务器的处理能力。

21.为什么要进行性能测试?

答: 评估系统的能力,测试中得到的负荷和响应时间数据可以被用于验证所计划的模型的能力,并帮助作出决策。 识别体系中的弱点:受控的负荷可以被增加到一个极端的水平,并突破它,从而修复体系的瓶颈或薄弱的地方。 系统调优:重复运行测试,验证调整系统的活动得到了预期的结果,从而改进性能。 检测软件中的问题:长时间的测试执行可导致程序发生由于内存泄露引起的失败,揭示程序中的隐含的问题或冲突。 验证稳定性可靠性:在一个生产负荷下执行测试一定的时间是评估系统稳定性和可靠性是否满足要求的唯一方法。

22.简述软件测试的V模型,W模型。

23.关闭浏览器中quit和close的区别是什么?

答:close方法是关闭当前的窗口,如果是打开了多个窗口,那么close关闭的是driver操作的当前窗口,如果当前浏览器只打开一个窗口,那么close方法相当于关闭浏览器了;quit方法则是完全关闭所有窗口,退出浏览器。

24.请说明WebDriver的原理。

答:测试人员编写的Selenium-client测试代码无法直接操作浏览器,WebDriver(也就是浏览器所对应的驱动程序)在Selenium脚本和浏览器之间扮演了类似中介的角色,测试人员编写的代码通过WebDriver调用浏览器原生组件驱动浏览器操作。

25.到目前为止,自动化测试的模型有哪些?请解释数据驱动的含义。

答:自动化测试框架有模块驱动测试、数据驱动测试、关键字驱动测试。
模块驱动测试:把脚本中相同的代码部分独立出来形成模块或库,这样做可以提高开发效率,同时方便代码的维护。
数据驱动测试:利用数据的改变(更新)驱动自动化测试的执行,从而自动引起测试结果的改变。在具体的自动化测试脚本开发中,数据驱动反映在脚本的参数化功能上。可以在脚本中输入不同的参数数据,当测试执行时参数数据的变化会自动引起输出结果的变化。参数化数据可以存放在数组、字典、函数或csv、txt等各种类型的文件中,参数化数据使自动化测试脚本实现了数据与脚本的分离。在参数化时传入一千条数据,就可以通过脚本的自动执行返回一千条结果。
关键字驱动测试:提升了测试软件的易用性,测试环境本身封装了很多底层的东西,测试人员使用这类软件进行自动化测试时只要考虑三个问题:做什么?对谁做?怎么做?就可以完成测试任务。

26.在Selenium自动化测试过程中,请举例说明可能遇到的异常?

答案
答:在Selenium自动化测试过程中,一定会碰到很到异常,下面列举一些:
ElementNotSelectableException :元素不能选择异常
ElementNotVisibleException :元素不可见异常

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值