1 软件测试存在正反两面的观点你是怎样认识的?
正向思维:
评价一个程序或系统的特性或能力并确定是否达到预期的结果 -> 在设计规定的环境下运行软件的所有功能.直至全部通过
逆向思维:
测试是为发现错误而针对某个程序或系统的执行过程 -> 寻找容易犯错误的地方和系统的薄弱环节试图破坏系统.直至找不出问题。
正面:
测试是为了验证软件是否符合用户需求,即验证软件产品是否能正常工作,是正向思维,针对软件系统的所有功能点,逐个验证其正确性。
反面:
人们无法证明软件是正确的,只能认定软件是有错误的,然后去发现尽可能多的错误,以提高软件产品的质量。
这两种观点都有一定的局限性,正向思维有利于界定测试工作的范畴,促进与开发人员协作,但可能降低测试工作的效率。而逆向思维有利于测试人员主观能动性的发挥,可以使测试人员发现更多的问题,但也容易使测试人员忽视用户的需求,使测试工作存在一定的随意性和盲目性。实际上,测试可以看作这两者的统一,既要尽可能地、快速地发现问题,加快测试的进程;又能对实现的各项功能进行验证,保证测试的完整性和全面性。
2 软件测试的基本原则包括哪些?
软件测试的基本原则(Myers原则)
- 尽早地和不断地进行测试
- 程序员应避免测试自己编写的程序
- 一段程序中存在错误的概率与在这段程序中已发现的错误数成比例
- 全面检查每一个测试结果
- 测试是一项具有很大创造性的工作
3 从不同的角度对软件测试方法进行分类可分为哪几种?
按阶段
- 底层测试:单元测试
- 接口层次:集成测试
- 系统层次:系统测试
- 用户层次:验收测试
是否运行
是否查看源代码
其他
功能测试,回归测试,性能测试,可靠性测试,安全性测试和兼容性测试等。
这其实来源于软件质量,即系统的功能性需求和非功能性需求。这些测试类型也可以发生在不同层次,如单元测试、单元性能测试、系统功能测试、系统性能测试。
验收测试、系统测试、集成测试、单元测试。
4 简述哪些情况可以判定为软件缺陷。
软件缺陷的定义:
软件缺陷就是软件产品中所存在的问题,最终表现为用户所需要的功能没有完全实现,不能满足或不能完全满足用户的需求。
例如表现为:
- 设计不合理,不是用户所期望的风格、格式等
- 部分实现了软件的某项功能
- 实际结果和预期结果不一致
- 系统崩溃,界面混乱
- 数据结果不正确,精度不够
- 存取时间过长,界面不美观
5 什么是测试用例,有何作用,如何维护?
测试用例就是为了特定测试目的而设计的测试条件、测试数据及与之相关的操作过程序列的一个特定的使用实例或场景。测试用例也可以被称为有效地发现软件缺陷的最小测试执行单元,即可以被独立执行的一个过程,这个过程是一个最新的测试实体,不能再被分解。
设计测试用例就是为了更有效地发现缺陷而设计的,具有很高的有效性和可重复性,可以节约测试时间,提高测试效率。具有良好的组织性和可跟踪性,有利于测试的管理。是测试执行的基础,可以避免测试的盲目性,降低测试成本并提高测试效率,是必不可少的测试件。
测试用例应当随着测试的不断深入,持续改进测试用例,不断提高测试用例的覆盖率,和需求变化保持同步。
6 手工测试与自动化测试的区别?为什么手工测试发现错误的概率更高?
手工测试:
发现缺陷率高、容易实施、具有创造性灵活性、覆盖率量化困难、重复测试效率低、不一致、可靠性低、依赖人力资源
自动化测试:
速度快、测试结果准确、高复用性、永不疲劳、可靠、能力强
手工测试过程中,人具有创造性,容易受到前面操作或结果的启发,能举一反三,从一个测试用例,想到其他一些测试情景,发现更多的问题。
7 软件测试与软件开发之间的关系
1、没有软件开发就没有测试,软件开发提供软件测试的对象。
2、软件开发和软件测试都是软件生命周期中的重要组成部分
3、软件开发和软件测试都是软件过程中的重要活动。
4、软件测试是保证软件开发产物质量的重要手段。
8 软件测试的新趋势有哪些?
-
自动化是测试的未来 -
AI、机器学习、IOT这些未来技术也会对测试产生影响
9 在进行等价类划分方法设计测试用例时,有效等价类和无效等价类它们测试先后顺序是什么?为什么?
应当先测试有效等价类,再测试无效等价类。
先测试有效等价类是为了确定系统的功能逻辑应当是正确的,若有效等价类测试错误,那么无效等价类的测试就没有意义。
10 什么是系统瓶颈?如何找到瓶颈?
瓶颈主要是指整个软硬件构成的软件系统某一方面或者几个方面能力不能满足用户的特定业务要求。
(1)发现“表面”的瓶颈。主要是模拟用户的操作,找出用户极限使用系统时的瓶颈,然后解决瓶颈,这是性能测试的基本目标。
(2)发现“潜在”的瓶颈并解决,保证系统的长期稳定性。主要是考虑用户在将来扩展系统或者业务发生变化时,系统能够适应变化。满足用户目前需求的系统不是最好的,我们设计系统的目标是在保证系统整个软件生命周期能够不断适应用户的变化,或者通过简单扩展系统就可以适应新的变化。
11 LoadRunner分哪三部分?各部分的作用是什么?LR进行测试的流程是什么?
loadrunner 分为脚本生成器,场景控制器,结果分析器三个部分。
虚拟脚本生成器(Virtual User Generator)------录制、编辑、调试测试脚本。
控制器(Controller)-------创建场景、运行场景、监控场景、收集测试数据。
结果分析器(Analysis)----把收集到的测试数据以图表的形式展示出来,生成测试报告。
测试流程:
(1)测试 (2)创建虚拟用户脚本 (3)创建运行场景 (4)运行测试脚本 (5)监视场景 (6)分析测试的结果
12 如何进行测试结果分析?
对测试覆盖率进行评估,通过了解测试覆盖率的值,可以知道测试是否充分、测试能否结束。
分析不同的测试环境下,硬件设备的性能指标与预期的性能指标进行对比,确定是否达到了我们需要的结果。针对没有达到预期的指标,分析具体的瓶颈点。
分析不同的测试环境下,分析应用服务器、数据库服务器、中间件等组件的性能指标。
在性能测试执行过程中,可能会发现某些功能上的不足或存在的缺陷,以及需要优化的地方。
13 当开发人员说不是BUG时,你作为测试人员如何应付?
1、首先明确开发说不是bug的理由。
2、如果是需求变更, 那就找产品经理确认是否是需求变更。
3、如果开发说测试环境问题, 让他说明清楚测试环境问题是什么,按照他说的验证一遍, 如果确实如他所说, 关闭bug,但是不是他说的那样,继续激活bug给开发解决,确保产品质量。
4、如果开发说用户不存在这种使用场景, 但是我们不认可他说的,把这个bug 知会到测试经理,让测试经理去判定。
14 什么是并发?在LoadRunner中,如何进行并发的测试?集合点失败了会怎么样?
在操作系统中,是指一个时间段中有几个程序都处于已启动运行到运行完毕之间,且这几个程序都是在同一个处理机上运行,但任一个时刻点上只有一个程序在处理机上运行。
就是同一业务在1个时间点多次发生,比如10个注册业务。设置集合点和业务的数量来测试并发,集合点设置失败就不能保证你设置的业务在同一时间点发生。
15 性能测试与功能测试的区别是什么?性能测试与负载测试,压力测试的联系是什么?
功能测试:依据产品设计规格说明书完成对产品功能的操作,以验证系统是否满足用户的功能需求。
性能测试:模拟用户负载来测试系统在负载情况下,系统的响应时间,吞吐量等,目的是为了获取系统的指标。
性能测试是为了获得系统在某种特定条件下的性能指标数据,而负载测试和压力测试是为了发现软件系统中所存在的问题,包括性能瓶颈、内存泄漏等。虽然他们的测试目的不同,但他们的手段和方法在一定程度上比较相似,通常会使用相同的测试环境和测试工具,而且都会监控系统所占用的资源情况以及其他相应的性能指标。
16 如何进行缺陷分析?
实时趋势分析
¤实时数据,由每日或每周发生的数据构成的时间序列
¤对随时间变化的趋势进行分析
累积趋势分析
¤累积数据是将前面产生的数据不断累加起来所构成的时间序列
¤累积曲线趋势特征更明显
缺陷分布分析
¤缺陷分布分析,主要借助于圆饼图、直方图等工具进行分析
¤包括功能模块、来源分布 、不同类型、开发团队等各种分布
17 为什么有些缺陷严重程度高的缺陷修复优先级反而较低,试举例说明。
有些缺陷比较严重,但由于技术的限制或第三方产品的限制,暂时没法修正,其优先级就会低。
例如项目截至日期临近,即时有从技术层面看严重级别高的缺陷,但是优先级却不高,这是由于这个缺陷表明的功能问题对整个项目运作不是最关键的。
18 画出软件测试的V模型图。
|