【测试理论基础之功能/自动化/性能测试】

功能测试:


根据产品特性、操作描述和用户方案,测试一个产品的特性和可操作行为以确定它们满足设计需求。关于功能测试重点在对被测系统的了解上
,是完全基于需求文档的黑盒测试,俗称点点点的点工。
想做好功能测试要做好四点:
1. 非常了解被测试系统,各个功能和各个业务逻辑。
2. 需求文档,如果你不知道怎么测,那你一定没看需求文档,通过需求文档判断是否为bug。
3. 测试方法的学习,方法不难理解,如何运用到项目中是关键。
4. 测试用例,在上面三点的基础上写用例,一个用例可以体现出你对上面三点的掌握程度。

自动化测试:


自动化测试是把以人为驱动的测试行为转化为机器执行的一种过程。一句话解释自动化测试,就是用工具去代替人工去执行一些复用性高的用。最常见的就是接口和ui自动化
一般借助工具(selinum,QTP,Appium等)或者开发自动化框架代码实现。
衡量是否有必要去进行自动化测试,衡量标准主要看三个方面:
1.需求是否变动较小--否
2.是否为一个周期长的项目--是
3.可复用性高不高--高
自动化测试的意义:
手工测试可以解决70%的bug,剩下的30%才是自动化测试解决的。可见这个效率试不高的,但自动化测试依旧逐渐成为公司的关注方向,主要是因为它可以保证新增功能后,已有功能的正确性。在此过程中,为了节省人力、时间或硬件资源,提高测试效率,便引入了自动化测试的概念。所以转回测试人员的角度,我们是需要去不断更新这方面的知识的。


关于自动化测试框架的原理和搭建后续讲解。

性能测试:


系统的性能是一个很大的概念,覆盖面非常广泛,包括执行效率、资源占用、系统稳定性、安全性、兼容性、可靠性、可扩展性等,性能测试就是描述测试对象与性能相关的特征并对其进行评价而实施的一类测试。
性能测试是通过自动化的测试工具模拟多种正常、峰值以及异常负载条件来对系统的各项性能指标进行测试。
性能测试需要借助工具,如loadrunner,jmeter,但做性能测试,工具玩的好不算本事。
性能测试目的: 验证软件系统是否能够达到用户提出的性能指标,同时发现软件系统中存在的性能瓶颈,优化软件,最后起到优化系统的目的。所以性能测试水很深,也是最难做的。
包括以下几个方面
1.评估系统的能力,测试中得到的负荷和响应时间数据可以被用于验证所计划的模型的能力,并帮助作出决策。
2.识别体系中的弱点:受控的负荷可以被增加到一个极端的水平,并突破它,从而修复体系的瓶颈或薄弱的地方。
3.系统调优:重复运行测试,验证调整系统的活动得到了预期的结果,从而改进性能。
检测软件中的问题:长时间的测试执行可导致程序发生由于内存泄露引起的失败,揭示程序中的隐含的问题或冲突。
4.验证稳定性(resilience)可靠性(reliability):在一个生产负荷下执行测试一定的时间是评估系统稳定性和可靠性是否满足要求的唯一方法。

所以,有效的性能测试≠有用的性能测试。前者是在规定好的测试环境里,利用合适的测试方法 ,规定好用户和压力点,在录制脚本后给出最后的测试结果。但实际中,系统中的每个组成部分都会成为影响性能的关键,那么系统又是什么呢?
为什么说它不一定是有用的,你了解系统架构么?知道数据库、中间件、前端程序的运行方式和处理机制么?了解网络协议么?了解操作系统么?熟悉开发系统的语言么?内在机理知道么?这些都是系统运行的一部分,都在影响着系统的性能。如果不了解这些,你如何做出有价值的有参考意义的性能测试。如果你的性能测试没有参考意义,那不是自已在逗自己玩么。最后的最后分析性能瓶颈和性能调优才是最nb的。

性能测试


性能测试是一个统称,它其实包含多种类型。主要有负载测试、压力测试、并发测试、配置测试等,每种测试类型都有其侧重点。
1.负载测试

负载测试是指逐步增加系统负载,测试系统性能的变化,并最终确定在满足系统性能指标的情况下,系统所能够承受的最大负载量。负载测试类似于举重运动,通过不断给运动员增加重量,确定运动员身体状况保持正常的情况下所能举起的最大重量。
对于负载测试来说,前提是满足性能指标要求。例如一个软件系统的响应时间要求不超过2s,则在这个前提下,不断增加用户访问量,当访问量超过1万人时,系统的响应时间就会变慢,超过2s,从而可以确定系统响应时间不超过2s的前提下最大负载量是1万人。
2.压力测试
压力测试也叫强度测试,它是指逐步给系统增加压力,测试系统的性能变化,使系统某些资源达到饱和或系统崩溃的边缘,从而确定系统所能承受的最大压力。
压力测试与负载测试是有区别的,负载测试是在保持性能指标要求的前提下测试系统能够承受的最大负载,而压力测试则是使系统性能达到极限的状态。例如软件系统正常的响应时间为2s,负载测试确定访问量超过1万时响应时间变慢。压力测试则继续增加用户访问量观察系统的性能变化,当用户增加到2万时系统响应时间为3s,当用户增加到3万时响应时间为4s,当用户增加到4万时,系统崩溃无法响应。由此确定系统能承受的最大访问量为4万。
压力测试可以揭露那些只有在高负载条件下才会出现的Bug(缺陷),如同步问题、内存泄漏等。
3.并发测试
并发测试是指通过模拟用户并发访问,测试多用户并发访问同一个应用、同一个模块或者数据记录时是否存在死锁或其他性能问题。并发测试一般没有标准,只是测试并发时会不会出现意外情况,几乎所有的性能测试都会涉及一些并发测试,例如多个用户同时访问某一条件数据,多个用户同时在更新数据,那么数据库可能就会出现访问错误、写人错误等异常情况。
4.配置测试
配置测试是指调整软件系统的软硬件环境,测试各种环境对系统性能的影响,从而找到系统各项资源的最优分配原则。配置测试不改变代码,只改变软硬件配置,例如安装版本更高的数据库、配置性能更好的CPU和内存等,通过更改外部配置来提高软件的性能。
5.可靠性测试
可靠性测试是指给系统加载一定的业务压力,使其持续运行一段时间(如7×24h),测试系统在这种条件下是否能够稳定运行。由于加载有业务压力且运行时间较长,因此可靠性测试通常可以检测出系统是否有内存泄漏等问题。
6.容量测试
容量测试是指在一定的软硬件及网络环境下,测试系统所能支持的最大用户数、最大存储量等。容量测试通常与数据库、系统资源(如CPU、内存、磁盘等)有关,用于规划将来需求增长(如用户增长、业务量增加等)时,对数据库和系统资源的优化。

关于性能测试指标以及意义后续讲解


 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值