客户端都以为在一个真实运行环境中,虚拟脚本生成器能通过这种方式截获数据流;虚拟用户脚本生成器在截获数据流后对其进行了协议层上的处理,最终用脚本函数将数据流交互过程体现为我们容易看懂的脚本语句。
2、压力生成器则是根据脚本内容,产生实际的负载,扮演产生负载的角色。
3、用户代理是运行在负载机上的进程,该进程与产生负载压力的进程或是线程协作,接受调度系统的命令,调度产生负载压力的进程或线程。
4、压力调度是根据用户的场景要求,设置各种不同脚本的虚拟用户数量,设置同步点等。
5、监控系统则可以对数据库、应用服务器、服务器的主要性能计数器进行监控。
6、压力结果分析工具是辅助测试结果分析。
15. 您认为性能测试工作的目的是什么?做好性能测试工作的关键是什么?
目的是验证软件系统是否能够达到用户提出的性能指标,同时发现软件系统中存在的性能瓶颈,优化软件,最后起到优化系统的目的。包括以下几个方面
一.评估系统的能力,测试中得到的负荷和响应时间数据可以被用于验证所计划的模型的能力,并帮助作出决策。
二.识别体系中的弱点:受控的负荷可以被增加到一个极端的水平,并突破它,从而修复体系的瓶颈或薄弱的地方。
三.系统调优:重复运行测试,验证调整系统的活动得到了预期的结果,从而改进性能。
检测软件中的问题:长时间的测试执行可导致程序发生由于内存泄露引起的失败,揭示程序中的隐含的问题或冲突。
四.验证稳定性(resilience)可靠性(reliability):在一个生产负荷下执行测试一定的时间是评估系统稳定性和可靠性是否满足要求的唯一方法。
关键点:
1、整体工作计划
一个提纲携领的工作执行详细说明,必须是实施层面的。大至阶段划分,小到重装机器,是为性能测试工作的指导书
2、性能测试需求调研
一项工作,总有目的,需求调研即是解决这个问题。要在了解系统架构的前提下,确定测试目标。如:高峰期并发1000,交易平均响应时间不超过10S。但这种目标存在问题,因为并发1000是绝对并发还是按照业务人员操作习惯的并发不确定,所以,最好的测试目标是直接确定到系统TPS,而这种需求,是必须来源于实际生产中的数据,其它的,都属于拍脑袋的范畴。确定TPS有一定的策略,如八二原则等等。
3、测试数据
测试数据包括基础数据和脚本数据,都有可能成为测试任务的风险点。性能测试中,基础数据可以大部分为垃圾数据。脚本数据可以通过直接撰写SQL语句来挑选。
4、脚本编写
也是我的一个弱项,技术层面上的问题比较多,有一些特殊的系统,做起来脚本中的关联相当的困难
5、系统调优
这个我认为是性能测试中最重要的事情。性能测试包括两个层面,性能验证和性能调优。性能调优需要调优者具备多方面的能力,包括操作系统、中间件、数据库、网络、存储等等,目前我还没有碰到过一个对如此多方面均有所涉猎的人,所以说,一个全面的系统调优专家不存在,存在的只有领域专家,如何把相关领域专家更好的结合到性能测试中,是一个测试经理需要做的事情
6、测试报告撰写
测试报告,是反映本次测试成果的最直接和直观的输出物。一个好的测试报告,必须能够反映出测试过程中所有的问题和解决措施,必须能够结合所有的测试数据,体现出系统的性能瓶颈和调优建议。它应该包括:背景、过程review、结果分析、调优建议,甚至包括容量规划。
16. 在您以往的工作中,一条软件缺陷(或者叫Bug)记录都包含了哪些内容?如何提交高质量的软件缺陷(Bug)记录?
记录的内容为:发现了哪些bug、解决了哪些bug、遗留的bug对软件的影响
answer2: 缺陷名词/描述/缺陷等级/严重程度/发现模块/发现步骤和过程/是否可以重现
提交高质量的Bug记录的方法:
1.用统一的Bug管理系统
2.在执行完一个测试用例并且通过时,应向Bug管理系统提交一个Bug报告
3.Bug报告必须清晰描述Bug产生的环境,产生Bug的用例、Bug产生的条件、具体详细的BUG现象,当前被测的软件版本,测试员人的建义等内容,以便BUG处理人员能重视现象BUG,能有效的找出现象BUG的原因BUG并进行修正。
4.BUG提交以“轮”为单位,也就是每个具体的BUG必须属于具体的被测软件产品版本。
5.每个提交的BUG经过处理或修正后放在下一个被测版本中进行回归测试,测试通过后,此BUG才会转换为CLOSE状态,结束此BUG的生命周期,否则,此BUG会处于相应的生存状态,直到最终处理完成后转为CLOSE状态。
6.BUG生命周期中各BUG处理过程必须有详细准确的处理记录,在BUG管理系统中能详细的看到此BUG的生命历程。
17. 您以往所从事的软件测试工作中,是否使用了一些工具来进行软件缺陷(Bug)的管理?如果有,请结合该工具描述软件缺陷(Bug)跟踪管理的流程。
使用过BugFree等免费工具
18. 您以往是否曾经从事过单元测试和集成测试?如果有,请谈一下这些工作的实际开展情况。
19. 您如何看待软件过程改进?在您曾经工作过的企业中,是否有一些需要改进的东西呢?您期望的理想的测试人员的工作环境是怎样的?
将先进的经验或思想固化到过程中,通过过程改进和能力提高来改进软件质量。
20. 您以往工作过的企业中,是否开展了软件配置管理工作?您能否描述一下这项工作的开展情况和您对这项工作的认识?
21. 您是否熟悉一些主流的软件工程方法论和思想,如RUP、CMM、CMMI、XP、PSP、TSP。如果熟悉,您是否可以谈一下对这些方法论和思想的认识?
22. 您认为在测试人员同开发人员的沟通过程中,如何提高沟通的效率和改善沟通的效果?维持测试人员同开发团队中其他成员良好的人际关系的关键是什么?
对事不对人,一切以公司利益、客户为重
23. 在您以往的测试工作中,最让您感到不满意或者不堪回首的事情是什么?您是如何来对待这些事情的?
24. 在即将完成这次笔试前,您是否愿意谈一些自己在以往的学习和工作中获得的工作经验和心得体会?(可以包括软件测试、过程改进、软件开发或者与此无关的其他方面)
软件测试工程师笔试试题 2
判断题(每题1分,12 分,正确的√,错误的╳)
1.软件测试的目的是尽可能多的找出软件的缺陷。(错)
软件测试的目的就是为了发现软件中的缺陷,从这个意义上面说上面的这个论断是正确的。不少人会认为软件测试可以保证软件的质量,其实这个观点是错误,测试只是软件质量控制中的一个角色,其活动并不能达成软件质量保证的效果。所以不要认为一个公司里面如果有了软件测试人员,产品的质量就会好起来。
2.Beta 测试是验收测试的一种。(错)
Beat测试和验收测试是两种不同的测试。验收测试的目的是为了以发现”未实现的需求”为目的,以评估”适合使用”为目标,该类测试的不是以发现缺陷为主要目的。beta测试是一模拟真实的使用环境从而发现缺陷的一种测试。所以两者之间的是非包容关系。
3.验收测试是由最终用户来实施的。(错)
验收测试也可由软件生产的企业内部人员来实施,例如产品经理。当软件以项目的形式出现,那么验收测试由最终用户来实施的情况是比较常见的。但是对于产品形式的软件,生产企业内部的验收测试会更多。
4.项目立项前测试人员不需要提交任何工件。(对 )
应该说这道题目没有明确的答案,在项目立项前测试人员是不是要把一些准备工作以工件的形式给记录下来是完全取决于该企业的软件开发