1.软件测试(英语:Software Testing),描述一种用来促进鉴定软件的正确性、完整性、安全性和质量的过程。
2.软件测试[1-2] 是使用人工操作或者软件自动运行的方式来检验它是否满足规定的需求或弄清预期结果与实际结果之间的差别的过程。
3.没有发现错误的测试也是有价值的,完整的测试是评定软件质量的一种方法。
4.回归测试、压力测试、性能测试 ,黑盒测试,白盒测试,冒烟测试,交叉测试
回归测试:回归测试是指修改了旧代码后,重新进行测试以确认修改没有引入新的错误或导致其他代码产生错误。自动回归测试将大幅降低系统测试、维护升级等阶段的成本。回归测试作为软件生命周期的一个组成部分,在整个软件测试过程中占有很大的工作量比重,软件开发的各个阶段都会进行多次回归测试。在渐进和快速迭代开发中,新版本的连续发布使回归测试进行的更加频繁,而在极端编程方法中,更是要求每天都进行若干次回归测试。因此,通过选择正确的回归测试策略来改进回归测试的效率和有效性是非常有意义的。回归测试包括两部分:函数本身的测试、其他代码的测试。在
对被修改的函数重新测试。如果函数的设计功能没有变化,直接运行函数测试就可以了。如果修改了设计功能,则要根据增减的功能点,增加或删除测试用例。另外,还要完成白盒覆盖。
函数代码的修改可能导致调用该函数的代码产生错误,所以需要测试其他代码。如果函数是私有函数并且未涉及到全局变量,应运行类测试,否则应运行工程测试。在函数列表中选择类测试或工程测试,编译运行测试工程,即可执行对其他代码的回归测试。
冒烟测试:自由测试的一种。冒烟测试(smoketest)在测试中发现问题,找到了一个Bug,然后开发人员会来修复这个Bug。这时想知道这次修复是否真的解决了程序的Bug,或者是否会对其它模块造成影响,就需要针对此问题进行专门测试,这个过程就被称为SmokeTest。在很多情况下,做SmokeTest是开发人员在试图解决一个问题的时候,造成了其它功能模块一系列的连锁反应,原因可能是只集中考虑了一开始的那个问题,而忽略其它的问题,这就可能引起了新的Bug。SmokeTest优点是节省测试时间,防止build失败。缺点是覆盖率还是比较低。
白盒测试:
是测试人员要了解程序结构和处理过程,按照程序内部逻辑测试程序,检查程序中的每条通路是否按照预定要求正确工作.它主要的针对被测程序的源代码,测试着可以完全不考虑程序的功能.
白盒测试流程:
源程序-->分析程序内部逻辑结构-->流程图-->制定测试用例-->被测程序-->执行路径-->覆盖情况分析
黑盒测试:
是根据功能需求来测试程序是否按照预期工作,是要从用户的角度分析.尽量发现代码所表现的外部行为的错误.黑盒测试应该是由测试团队来完成的.根据某个给定的输入,应该能够理解并详细说明程序的预期输出.
黑盒测试流程:
功能需求-->产生测试用例-->被测程序-->输出实际结果-->与预期结果比较-->分析功能是否实现.
性能测试:
性能测试是指通过特定方式,对被测系统按照一定策略施加压力,获取系统响应时间、TPS(Transaction Per Second)【
指应用系统每秒钟处理完成的交易数量】、吞吐量(指单位时间内系统处理的客户请求的数量,直接体现应用系统的性能承载能力)、资源利用率(资源利用率是指系统在负载运行期间,数据库服务器、应用服务器、web服务器的CPU、内存、硬盘、外置存储,网络带宽的使用率。据经验,低于20%的利用率为资源空闲,20%-60%的使用率为资源使用稳定,60%-80%的使用率表示资源使用饱和,超过80%
的资源使用率必须尽快进行资源调整与优化。)等性能指标,以期保证生产系统的性能能够满足用户需求的过程。
软件性能的范畴较广,通常包括执行效率、资源占用、稳定性、安全性、兼容性、可扩展性、可靠性。
性能测试的类型:
1,负载测试
通过逐步增加系统负载,测试系统性能的变化,并最终确定在满足性能指标的情况下,系统所能承受的最大负载量的测试。
2,压力测试
通过逐步增加系统负载,测试系统性能的变化,并最终确定在什么负载条件下系统性能处于失效状态,并以此来获得系统能够提供的最大服务级别的测试。
压力测试是一种特定类型的负载测试。
3,疲劳强度测试
通常是采用系统稳定运行情况下能够支持的最大并发用户数或者日常运行用户数,持续执行一段时间业务,通过综合分析交易执行指标
和资源监控指标来确定系统处理最大工作量强度性能的过程。
疲劳强度测试可以反映出系统的性能问题,例如内存泄漏等
4,大数据量测试
对特定存储、传输、统计、查询业务的测试。
1.操作系统监控
CPU
内存
IO:通过lostat查看iowait的运行情况
文件系统空间监控
2.中间件
执行线程数
数据库连接数
查看队列状态(空闲执行线程数/队列长度)
查看Weblogic启动的内存大小、Jvm大小以及输出
3.数据库
建索引
共享池-命中率
避免全表扫描
交叉测试:
交叉测试也就是嵌入式软件测试或嵌入式测试。嵌入式软件测试在4个阶段上进行,即模块测试、集成测试、系统测试、硬件/软件集成测试。前3个阶段适用于任何软件的测试,硬件/软件集成测试阶段是嵌入式软件所特有的,目的是验证嵌入式软件与其所控制的硬件设备能否正确地交互。
兼容测试:
兼容测试:主要是检查软件在不同的软硬件平台上是否可以正常的运行,即软件可移植性。
兼容的类型:细分为平台的兼容,网络兼容,数据库兼容,以及数据格式的兼容。
兼容测试的重点:对兼容环境的分析。通常,是在运行软件的环境不是很确定的情况下,才需要做兼容测试。
兼容和配置测试的区别:做配置测试通常不是Clean OS下做测试,而兼容测试多是在Clean OS的环境下做的。