如何使用jmeter进行并发登录测试
白盒和黑盒的区别,你是怎么运用的?
黑盒测试:已知产品的功能设计规格,可以进行测试证明每个实现了的功能是否符合要求。利用其检查功能是否符合需求说明书,能够正常使用,
白盒测试:已知产品的内部工作过程,可以进行测试证明每种内部操作是否符合设计规格要求,所有内部成分是否经过检查 利用其检查程序模块的内部逻辑走向,主要覆盖程序内的逻辑。
如何设计测试用例?什么样子的测试用例是好用例?
掌握边界值分析、等价类划分、错误推测等方法来设计测试用例 是一个完备的集合,它能够覆盖所有等价类以及各种边界值;需要从软件功能需求出发,全面地,无遗漏地识别出测试需求;最好是代码覆盖测试也全面的测试
功能测试在 beta 版本对外的上线标准是什么?
测试用例全部跑完并且bug都已经关闭,然后业务验收后可以上线
请描述下你公司的测试流程?
需求分析讨论-确定测试策略-设计测试用例-测试用例评审-beta测试-uat测试-测试报告
UAT测试全称为用户验收测试,也称为最终用户测试,是指由最终用户在模拟软件使用场景下对系统进行的测试。在开发周期末期,通常会邀请一些真实用户来参加UAT测试,验证软件是否满足用户需求和期望,确保软件的质量和稳定性。
beta测试,由用户在公司内部环境进行测试
如果让你作为测试去测试你写的接⼝,可以从哪些⽅⾯测试
1. 功能性测试: 确保接⼝按照规范执⾏其预期功能。这包括验证接⼝是否正确地处理输⼊、输
出和参数。
2. 数据验证: 验证接⼝是否正确地传输和处理数据。包括数据的完整性、准确性、格式等⽅⾯
的检查。
3. 性能测试: 确保接⼝在不同负载下能够快速、可靠地执⾏。这包括测试响应时间、吞吐量和
并发⽤户数。
- 安全性测试: 检查接⼝是否受到潜在的安全威胁和攻击的保护。这包括认证、授权、输⼊验
证和数据保护。
5. 兼容性测试: 验证接⼝在不同的操作系统、浏览器、设备和⽹络环境下是否正常运⾏。
- 错误处理和异常情况测试: 测试接⼝在错误条件下的⾏为,例如⽆效输⼊、超时、服务不可
⽤等情况。
7. 回归测试: 针对接⼝的任何更改或更新,确保之前的功能仍然正常⼯作。
8. 性能监控和分析: 建⽴性能监控和分析机制,以便在⽣产环境中持续监测接⼝性能,并及时
4识别和解决问题。
9. ⾃动化测试: 开发⾃动化测试脚本来执⾏常规的接⼝测试任务,提⾼效率和可重复性。
10. 负载测试: 在不同的负载条件下测试接⼝,以确保其能够处理⾼负载和峰值流量。
11. 安全认证和授权测试: 验证接⼝是否正确地验证和授权⽤户和系统。
12. 异常处理: 测试接⼝在异常情况下是否能够适当地处理错误,并提供有⽤的错误信息。
13. ⽇志打印: 确保对于⽇志的打印不要涉及到⼀些敏感的信息。
14. 性能优化: 分析性能测试结果,识别瓶颈,并提出性能优化建议。
**15. 安全漏洞扫描: **使⽤安全⼯具扫描接⼝以查找潜在的漏洞和弱点。
写⾃动化case注意什么
1、准备好环境和数据,数据要想好覆盖哪些场景,以及数据的稳定性。
2、按照规范编写测试⽤例代码,保证代码的可阅读性和维护性。---构造请求参数,发送请求,返回结果校验。针对接⼝的返回特点选择合适的效验⽅式--diff,assert规则校验。
3、保证case的稳定性
case不稳定有很⼤⼀部分原因是数据不稳定:线下测试数据被改了,被删了,别的case影响到了这条数据,数据有效时间到了。所以可以使⽤写sql的⽅式来保证数据是⾃⼰想要的,⽤完就删。但是对于⾮⾃增键这种⼿动插⼊⽅式会出现错误,可选择调⽤开发api的⽅式去做,但这依赖于开发api接⼝的稳定性和正确性。
4、⼀个接⼝⼀个class⽂件,同⼀个接⼝的所有⽤例放在同⼀个类⾥去维护。额外准备⼀个类设计全链路测试⽤例。
B/S架构与C/S的区别
C/S架构和B/S架构的区别在于其应用程序部署的位置和架构方式。
C/S架构是指客户端/服务器架构, 应用程序分为客户端和服务器两部分,客户端在本地运行,向服务器请求数据和服务,服务器处理请求并返回结果。 C/S架构的优点是客户端能够获得更好的用户体验和界面交互,但缺点是需要安装客户端软件,部署和维护成本较高。
B/S架构是指浏览器/服务器架构,应用程序部署在服务器上,用户通过浏览器访问应用程序,服务器处理请求并返回结果。 B/S架构的优点是无需安装客户端软件,部署和维护成本较低,但缺点是用户体验受到限制,需要考虑浏览器的兼容性和性能问题。
系统负载 对当前CPU工作量的度量,被定义为特定时间间隔内运行队列中的平均线程数。
软件测试分类
按测试阶段划分
- 单元测试:单元测试是针对软件设计的最小单位––程序模块甚至代码段进行正确性检验的测试工作,通常由开发人员进行。
- 集成测试:集成测试是将模块按照设计要求组装起来进行测试,主要目的是发现与接口有关的问题。
- 系统测试:系统测试是在集成测试通过后进行的,目的是充分运行系统,验证各子系统是否都能正常工作并完成设计的要求。
- 验收测试:验收测试以需求阶段的《需求规格说明书》为验收标准,测试时要求模拟实际用户的运行环境。对于实际项目可以和客户共同进行,对于产品来说就是最后一次的系统测试。测试内容为对功能模块的全面测试,尤其要进行文档测试。
按照执行主体划分
- α测试是指软件开发公司组织内部人员模拟各类用户对即将面市软件产品(称为α版本)进行测试,试图发现错误并修正。α测试的关键在于尽可能逼真地模拟实际运行环境和用户对软件产品的操作并尽最大努力涵盖所有可能的 用户操作方式。经过α测试调整的软件产品称为β版本。
- β测试是由软件的多个用户在实际使用环境下进行的测试,这些用户返回有关错误信息给开发者。在β测试中,由用户记下遇到的所有问题,包括真实的以及主观认定的,定期向开发者报告 只有当α测试达到一定的可靠程度时,才能开始β测试。它处在整个测试的最后阶段。同时,产品的所有手册文本也应该在此阶段完全定稿。
- 第三方测试有别于开发人员或用户进行的测试,其目的是为了保证测试工作的客观性。
按照执行状态划分
- 静态方法是指不运行被测程序本身,仅通过分析或检查源程序的语法、结构、过程、接口等来检查程序的正确性。对需求规格说明书、软件设计说明书、源程序做结构分析、流程图分析、符号执行来找错。
- 动态测试方法是指通过运行被测程序,检查运行结果与预期结果的差异,并分析运行效率、正确性和健壮性等性能。
静态测试和动态测试的区别:
按照测试技术划分
| 测试方法 | 介绍 |
|---|---|
| 白盒测试 | 白盒测试也称为结构测试,主要用于检测软件编码过程中的错误。程序员的编程经验、对编程软件的掌握程度、工作状态等因素都会影响到编程质量,导致代码错误。 |
| 黑盒测试 | 黑盒测试又称为功能测试,主要检测软件的每一个功能是否能够正常使用。在测试过程中,将程序看成不能打开的黑盒子,不考虑程序内部结构和特性的基础上通过程序接口进行测试,检查程序功能是否按照设计需求以及说明书的规定能够正常打开使用。 |
| 灰盒测试 | 灰盒测试,是介于白盒测试与黑盒测试之间的一种测试,灰盒测试多用于集成测试阶段,不仅关注输出、输入的正确性,同时也关注程序内部的情况。灰盒测试不像白盒那样详细、完整,但又比黑盒测试更关注程序的内部逻辑,常常是通过一些表征性的现象、事件、标志来判断内部的运行状态。 |
软件测试模型
软件测试模型是软件测试工作的框架,描述了软件测试过程所包含的主要活动,以及活动之间的相互关系等。软件测试模型有:V模型、W模型、H模型、X模型、前置模型等。
V模型
V模型存在一定的局限性,它仅仅把测试过程作为在需求分析、概要设计、详细设计及编码之后的一个阶段。容易使人理解为测试是软件开发的最后的一个阶段,主要是针对程序进行测试寻找错误,而需求分析阶段的隐藏的问题一直到后期的验收测试才被发现。
W模型
相对于V模型而言,W模型增加了软件各开发阶段中应同步进行的验证和确认(V&V)活动。 W模型由两个V字型模型组成,分别代表测试与开发过程,测试伴随着整个软件开发周期,测试的对象不仅仅是程序,需求、设计等同样要测试,也就是说,测试与开发同步进行。
W模型体现了“尽早地和不断地进行软件测试”的原则。W模型也存在局限性。在W模型中,需求、设计、编码等活动被视为串行,测试和开发活动保持着一种线性的前后关系,上一阶段结束,才开始下一个阶段工作,因此,W模型无法支持迭代开发模型
H模型
V模型和W模型都认为软件开发是需求、设计、编码等一系列串行的活动,而事实上,这些活动在大部分时间内可以交叉,因此,相应的测试也不存在严格的次序关系,单元测试、集成测试、系统测试之间具有反复迭代。正因为V模型和W模型存在这样的问题,H模型将测试活动完全独立出来,使得测试准备活动和测试执行活动清晰地体现出来。
H模型揭示了软件测试作为一个独立的流程贯穿于软件整个生命周期,与其他流程并发地进行,并指出软件测试要尽早准备,尽早执行。不同的测试活动可以按照某个次序先后进行,也可能是反复的,只要某个测试达到准备就绪点,测试执行活动就可以开展。
H模型的特点 :
- 测试准备与测试执行分离,有利于资源调配,降低成本,提高效率。
- 充分体现测试过程(不是技术)的复杂性。
X模型
X模型的左边描述的是针对单独程序片段所进行的编码和测试
X模型右上方定位了已通过集成测试的成品进行封版并提交给用户,也可以作为更大规模和范围内集成的一部分。
X模型右下方定位了探索性测试。这是不进行事先计划的特殊类型的测试,往往是在测试计划之外发现软件错误。
前置模型
前置模型的特点:
- 开发和测试相结合
- 对每一个交付内容进行测试
- 在设计阶段进行计划和测试设计
- 让验收测试和技术测试保持相互独立
- 反复交替的开发和测试
前置模型的优缺点:
优点:
- 质量保证和质量控制严格,增强测试质量
- 测试贯穿于开发的时时刻刻,有效地提高了测试
- 对验收测试非常强调,并用双重方式测试,保证系统能成功验收
缺点:
- 流程管理复杂
- 需求变化时很难应付
- 对文档、质量管理、配置管理、项目管理要求较高
测试用例
测试用例(Test Case)是将软件测试的行为活动做一个科学化的组织归纳,目的是能够将软件测试的行为转化成可管理的模式;同时测试用例也是将测试具体量化的方法之一,不同类别的软件,测试用例是不同的。 测试用例的设计方法主要有黑盒测试法和白盒测试法
测试用例的作用
- 指导测试的实施
- 规划测试数据的准备
- 评估测试结果的度量基准
- 保证软件可维护性和可复用性
- 分析缺陷的标准
测试用例的设计要求
-
有效性
-
经济性
-
多重性
-
完备性
-
可判定性
-
可再现性
QTP中的action
QTP管理代码上概念很简单,简单举例,如:登录、查询、新增、修改、退出。。。你可以把这个步骤 “拆分” 成不同的ACTION来管理。
这样有什么用呢,你可以把这些步骤通过不同组合来完成你不同业务流的测试(RunAction)
用例1:登录->查询->退出
用例2:登录->新增->查询->退出
用例3:登录->新增->修改->退出
这里也看出QTP很方便回归测试业务流,代码也可以重复调用,而代码管理就是一个TEST下面全面为ACTION,LoadAndRunAction函数还可以外部调用你不同Test的Action, 当然你还可以外部调用VBScript脚本
关于QTP的TEST、Action的概念,可详细了解RunAction、LoadAndRunAction等Action调用函数
Action的作用
1)用Action可以对步骤集进行分组
2)步骤重组,然后被整体调用
3)拥有自己的sheet
4)组合有相同需求的步骤,整体操作
5)具有独立的对象仓库
Action的种类
1)可复用Action
2)不可复用Action
3)外部Action
如何提交高质量的软件缺陷(bug)记录
驱动模块和桩模块的区别
驱动模块(driver),就是模拟所测试模块上一级模块,相当于主程序。它接受测试数据,将这些数据传给所测模块,执行北侧模块,输出相应结果。
桩模块(stub),模拟所测模块调用的模块,相当于下级模块,桩模块接受被测模块的数据,一般不执行功能。