1. 常用的性能测试方法有哪些
1.负载测试
在这里,负载测试指的是最常见的验证一般性能需求而进行的性能测试,在上面我们提到了用户最常见的性能需求就是“既要马儿跑,又要马儿少吃草”。因此负载测试主要是考察软件系统在既定负载下的性能表现。我们对负载测试可以有如下理解:
(1)负载测试是站在用户的角度去观察在一定条件下软件系统的性能表现。
(2)负载测试的预期结果是用户的性能需求得到满足。此指标一般体现为响应时间、交易容量、并发容量、资源使用率等。
2.压力测试
压力测试是为了考察系统在极端条件下的表现,极端条件可以是超负荷的交易量和并发用户数。注意,这个极端条件并不一定是用户的性能需求,可能要远远高于用户的性能需求。可以这样理解,压力测试和负载测试不同的是,压力测试的预期结果就是系统出现问题,而我们要考察的是系统处理问题的方式。比如说,我们期待一个系统在面临压力的情况下能够保持稳定,处理速度可以变慢,但不能系统崩溃。因此,压力测试是能让我们识别系统的弱点和在极限负载下程序将如何运行。
例子:负载测试关心的是用户规则和需求,压力测试关心的是软件系统本身。对于它们的区别,我们可以用华山论剑的例子来更加形象地描述一下。如果把郭靖看做被测试对象,那么压力测试就像是郭靖和已经走火入魔的欧阳峰过招,欧阳锋蛮打乱来,毫无套路,尽可能地去打倒对方。郭靖要能应对住,并且不能丢进小命。而常规性能测试就好比郭靖和黄药师、洪七公三人约定,只要郭靖能分别接两位高手一百招,郭靖就算胜。至于三百招后哪怕郭靖会输掉那也不用管了。他只要能做到接下一百招,就算通过。
思考
我们在做软件压力测试时,往往要增加比负载测试更多的并发用户和交易,这是为什么?
3.并发测试
验证系统的并发处理能力。一般是和服务器端建立大量的并发连接,通过客户端的响应时间和服务器端的性能监测情况来判断系统是否达到了既定的并发能力指标。负载测试往往就会使用并发来创造负载,之所以把并发测试单独提出来,是因为并发测试往往涉及服务器的并发容量,以及多进程/多线程协调同步可能带来的问题。这是要特别注意,必须测试的。
4.基准测试
当软件系统中增加一个新的模块的时候,需要做基准测试,以判断新模块对整个软件系统的性能影响。按照基准测试的方法,需要打开/关闭新模块至少各做一次测试。关闭模块之前的系统各个性能指标记下来作为基准(Benchmark),然后与打开模块状态下的系统性能指标作比较,以判断模块对系统性能的影响。
5.稳定性测试
“路遥知马力”,在这里我们要说的是和性能测试有关的稳定性测试,即测试系统在一定负载下运行长时间后是否会发生问题。软件系统的有些问题是不能一下子就暴露出来的,或者说是需要时间积累才能达到能够度量的程度。为什么会需要这样的测试呢?因为有些软件的问题只有在运行一天或一个星期甚至更长的时间才会暴露。这种问题一般是程序占用资源却不能及时释放而引起的。比如,内存泄漏问题就是经过一段时间积累才会慢慢变得显着,在运行初期却很难检测出来;还有客户端和服务器在负载运行一段时间后,建立了大量的连接通路,却不能有效地复用或及时释放。
6.可恢复测试
测试系统能否快速地从错误状态中恢复到正常状态。比如,在一个配有负载均衡的系统中,主机承受了压力无法正常工作后,备份机是否能够快速地接管负载。可恢复测试通常结合压力测试一起来做。
提示:每种测试有其存在的空间和目的。当我们接手一个软件项目后,在有限的资源条件下,选择去做哪一种测试,这应该根据当前软件过程阶段和项目的本身特点来做选择。比如,在集成测试的时候要做基准测试,在软件产品每个发布点要做性能测试。
2. 软件测试的方法一共有几种
1、从是否关心内部结构来看
(1)白盒测试:又称为结构测试或逻辑驱动测试,是一种按照程序内部逻辑结构和编码结构,设计测试数据并完成测试的一种测试方法。
(2)黑盒测试:又称为数据驱动测试,把测试对象当做看不见的黑盒,在完全不考虑程序内部结构和处理过程的情况下,测试者仅依据程序功能的需求规范考虑,确定测试用例和推断测试结果的正确性,它是站在使用软件或程序的角度,从输入数据与输出数据的对应关系出发进行的测试。
(3)灰盒测试:是一种综合测试法,它将“黑盒”测试与“白盒”测试结合在一起,是基于程序运行时的外部表现又结合内部逻辑结构来设计用例,执行程序并采集路径执行信息和外部用户接口结果的测试技术。
2、从是否执行代码看
(1)静态测试:指不运行被测程序本身,仅通过分析或检查源程序的语法、结构、过程、接口等来检查程序的正确性。
(2)动态测试:是指通过运行被测程序,检查运行结果与预期结果的差异,并分析运行效率、正确性和健壮性等性能指标。
3、从开发过程级别看
(1)单元测试:又称模块测试,是针对软件设计的最小单位----程序模块或功能模块,进行正确性检验的测试工作。其目的在于检验程序各模块是否存在各种差错,是否能正确地实现了其功能,满足其性能和接口要求。
(2)集成测试:又叫组装测试或联合,是单元测试的多级扩展,是在单元测试的基础上进行的一种有序测试。旨在检验软件单元之间的接口关系,以期望通过测试发现各软件单元接口之间存在的问题,最终把经过测试的单元组成符合设计要求的软件。
(3)系统测试:是为判断系统是否符合要求而对集成的软、硬件系统进行的测试活动、它是将已经集成好的软件系统,作为基于整个计算机系统的一个元素,与计算机硬件、外设、某些支持软件、人员、数据等其他系统元素结合在一起,在实际运行环境下,对计算机系统进行一系列的组装测试和确认测试。
在系统测试中,对于具体的测试类型有:
(1)功能测试:对软件需求规格说明书中的功能需求逐项进行的测试,以验证功能是否满足要求。
(2)性能测试:对软件需求规格说明书的功能需求逐项进行的测试,以验证功能是否满足要求。
(3)接口测试:对软件需求规格说明中的接口需求逐项进行的测试。
(4)人机交互界面测试:对所有人机交互界面提供的操作和显示界面进行的测试,以检验是否满足用户的需求。
(5)强度测试:强制软件运行在异常乃至发生故障的情况下(设计的极限状态到超出极限),验证软件可以运行到何种程序的测试。
(6)余量测试:对软件是否达到规格说明中要求的余量的测试。
(7)安全性测试:检验软件中已存在的安全性、安全保密性措施是否有效的测试,
(8)可靠性测试:在真实的或仿真的环境中,为做出软件可靠性估计而对软件进行的功能(其输入覆盖和环境覆盖一般大于普通的功能测试)
(9)恢复性测试:对有恢复或重置功能的软件的每一类导致恢复或重置的情况,逐一进行的测试。
(10)边界测试:对软件处在边界或端点情况下运行状态的测试。
(11)数据处理测试:对完成专门数据处理功能所进行的测试。
(12)安装性测试:对安装过程是否符合安装规程的测试,以发现安装过程中的错误。
(13)容量测试:检验软件的能力最高能达到什么程度的测试。
(14)互操作性测试:为验证不同软件之间的互操作能力而进行的测试。
(15)敏感性测试:为发现在有效输入类中可能引起某种不稳定性或不正常处理的某些数据的组合而进行的测试。
(16)标准符合性测试:验证软件与相关国家标准或规范(如军用标准、国家标准、行业标准及国际标准)一致性的测试。
(17)兼容性测试:验证软件在规定条件下与若干个实体共同使用或实现数据格式转换时能满足有关要求能力的测试。
(18)中文本地化测试:验证软件在不降低原有能力的条件下,处理中文能力的测试。
4、从执行过程是否需要人工干预来看
(1)手工测试:就是测试人员按照事先为覆盖被测软件需求而编写的测试用例,根据测试大纲中所描述的测试步骤和方法,手工地一个一个地输 入执行,包括与被测软件进行交互(如输入测试数据、记录测试结果等),然后观察测试结果,看被测程序是否存在问题,或在执行过程中是否会有一场发生,属于比较原始但是必须执行的一个步骤。
(2)自动化测试:实际上是将大量的重复性的测试工作交给计算机去完成,通常是使用自动化测试工具来模拟手动测试步骤,执行用某种程序设计语言编写的过程(全自动测试就是指在自动测试过程中,不需要人工干预,由程序自动完成测试的全过程;半自动测试就是指在自动测试过程中,需要手动输入测试用例或选择测试路径,再由自动测试程序按照人工指定的要求完成自动测试)
5、从测试实施组织看
(1)开发测试:开发人员进行的测试
(2)用户测试:用户方进行的测试
(3)第三方测试:有别于开发人员或用户进行的测试,由专业的第三方承担的测试,目的是为了保证测试工作的客观性
6、从测试所处的环境看
(1)阿尔法测试:是由一个用户在开发环境下进行的测试,也可以是公司内部的用户在模拟实际操作环境下进行的测试
(2)贝塔测试:是用户公司组织各方面的典型终端用户在日常工作中实际使用贝塔版本,并要求用户报告
软件测试的内容:
1 得到需求、功能设计、内部设计说书和其他必要的文档
2 得到预算和进度要求
3 确定与项目有关的人员和他们的责任、对报告的要求、所需的标准和过程 ( 例如发行过程、变更过程、等等 )
4 确定应用软件的高风险范围,建立优先级、确定测试所涉及的范围和限制
5 确定测试的步骤和方法 ── 部件、集成、功能、系统、负载、可用性等各种测试
6 确定对测试环境的要求 ( 硬件、软件、通信等 )
7 确定所需的测试用具 (testware) ,包括记录 / 回放工具、覆盖分析、测试跟踪、问题 / 错误跟踪、等等
8 确定对测试的输入数据的要求
9 分配任务和任务负责人,以及所需的劳动力
10 设立大致的时间表、期限、和里程碑
11 确定输入环境的类别、边界值分析、错误类别
12 准备测试计划文件和对计划进行必要的回顾
13 准备白盒测试案例
14 对测试案例进行必要的回顾 / 调查 / 计划
15 准备测试环境和测试用具,得到必需的用户手册 / 参考文件 / 结构指南 / 安装指南,建立测试跟踪过程,建立日志和档案、建立或得到测试输入数据
16 得到并安装软件版本
17 进行测试
18 评估和报告结果
19 跟踪问题 / 错误,并解决它
20 如果有必要,重新进行测试
21 在整个生命周期里维护和修改测试计划、测试案例、测试环境、和测试用具
3. 什么是注塑模具技术参数主要包括哪些数据
一模具设计方面的控制
1、首先要对模具结构,材料,硬度,精度等着多方面用户的技术要求进行充分了解,包括成形塑材的收缩率是否正确,产品3D尺寸造型是否完整,合理进行处理分析。
2、对注塑产品的缩孔、流痕、拨模斜度、熔接线及裂纹等外观有影响的各个地方作充分考虑。
3、在不妨碍注塑件产品功能及图案造形的前提下,尽可能简化模具的加工方法。
4、分型面的选择是否适当,对模具加工、成形外观和成形件去毛刺都要作仔细的选择。
5、推顶方式是否适当,采用推杆、卸料板、推顶套管等方式还是其它方式,推杆和卸料板的位置是否恰当。
6、侧面抽芯机构的采用是否合适,动作灵活可靠,应无卡滞现象。
7、温度控制用何种方法容易对塑件产品更合适,对控温油、控温水、冷却液等用哪种结构循环糸统,冷却液孔的大小,数量,位置等是否恰当。
8、浇口形式,料道和进料口的大小,浇口位置及大小是否恰当。
9、各类模块与模芯热处理变形影响及标准件的选用是否合适。
10、注射成形机械的注射量,注射压力和锁模力是否充分,喷嘴 R,浇口套孔径等是否匹配合适。
等等这些方面进行综合分析准备,从产品件初始阶段就应受到严格控制。
二 工艺制造方面的控制
虽然在设计阶段进行了全面充分考虑和安排,但在实际生产中还会出现不少问题和困难,我们要尽可能在生产中符合设计的原意图,找出实际加工中更加有效、更加经济合理的工艺手段。
1、选择经济适应的机床设备,作2D和3D的加工方案。
2、也可考虑适当的工装夹具进行生产中的辅助准备工作,刀具的合理运用,防止产品件出现变形,防止产品件收缩率的波动,防止产品件脱模变形,提高模具制造的精度,减小误差,防止模具精度发生变化等等,一系列生产工艺要求和解决措施。
3、这里提一下有关英国塑料协会 (BPF) 的成形件尺寸误差产生原因及其所占比例的分配情况:
A:模具制造误差约1/3 ,B由模具磨损产生的误差1/6C 由成形件收缩率不均衡所产生的误差约1/3, D 预定收缩率与实际收缩率不一致所产生的误差约1/6
总的误差=A+B+C+D,因此可见模具制造公差应是成形件尺寸公差的1/3以下,否则模具难以保证成形件的几何尺寸。
三通常生产方面的控制
塑件成形后发生几何尺寸的波动是普遍存在的问题,并且是经常会发生的现象:
1、料温、模温的控制,不同牌号的塑料必需不同的温度要求,塑材流动性差的和二种以上混合料的使用都会有不一样的情况发生,应该把塑材控制在最佳流动值范围内,这些通常容易做到,但模温的控制就比较复杂一些,不同的成形件几何形状、尺寸,壁厚比例的不同对冷却糸统有一定的要求,模具温度在很大程度上控制着冷却时间,因此尽量使模具保持在可允许的低温状态,以利于缩短注射周期,提高生产效率,模具温度发生变化,那么收缩率也会有变化,模温保持稳定,尺寸精度也就稳定,从而防止成形件的变形、光泽不良、冷却斑等缺陷,使塑料的物理性能处于最佳状态,当然这还有一个调试的过程,特别是多腔模成形件更复杂一些。
2、压力与排气的调整控制:
注射压力的恰当,锁模力的匹配应在调试模具时得到确定,在模具型腔和型芯所形成空隙中的空气以及塑料所产生的气体必须要从排气槽排出模具之外,如排气不畅会出现充填不足,产生熔接痕或烧伤,这三种成形缺陷有时会间或地在同一部位出现,当成形件簿壁部分的周围有厚壁存在时,模具温度过低时就会出现充填不足,模具温度过高则又会出现烧伤现象,通常在烧伤部位又会同时出现熔接痕,排气槽往往会被忽视,一般都处于偏小状态,因此通常情况下只要不产生毛边,排气凸肩的深度尽量深些,凸肩后部开设尺寸较大的通气槽,以便通过凸肩后的气体能迅速排出模具外,如有特别需要的时候在顶杆上开排气槽,道理是一样的,一是不出现废边,二是出气快能很好起到效果就行。
3、注塑成形件尺寸的补充整形控制
有些塑件因外形和尺寸的不同,脱模后随温度与失压的变化,会发生不同情况的变形翘曲等,这时可作些辅助工装夹具进行调整,在成形件出模后及时迅速采取补救措施,待其自然冷却定形后就能取得较好的校正、调整效果。如果在整个注塑工艺上保证严格管理,那么注塑成形件的尺寸就会得到非常理想的控制。