软件测试特训,系统测试,WEB测试,UFT与Selenium自动化测试,LR性能测试

1.系统集成的模式与方法

1.1   软件集成测试前的准备

◇人员安排

◇测试计划

◇测试内容

◇集成模式

◇测试方法

1.2  集成测试的模式

渐增式测试模式与非渐增式测试模式 
非渐增式测试模式:先分别测试每个模块,再把所有模块按设计要求放在一起结合成所要的程序,如大棒模式。
渐增式测试模式:把下一个要测试的模块同已经测试好的模块结合起来进行测试,测试完以后再把下一个应该测试的模块结合进来测试。

1.3  自顶向下和自底向上集成方法

驱动程序/驱动模块(driver),用以模拟被测模块的上级模块。驱动模块在集成测试中接受测试数据,把相关的数据传送给被测模块,启动被测模块,并打印出相应的结果。

桩程序/桩模块(stub),也有人称为存根程序,用以模拟被测模块工作过程中所调用的模块。桩模块由被测模块调用,它们一般只进行很少的数据处理,例如打印入口和返回,以便于检验被测模块与其下级模块的接口

1.3.1  自顶向下法(Top-down Integration)

1.3.2   自底向上法(Bottom-up Integration)

1.3.3  混合策略(Modified Top-down Integration)

混合法:对软件结构中较上层,使用的是“自顶向下”法;对软件结构中较下层,使用的是“自底向上”法,两者相结合

1.3.4  大棒集成方法(Big-bang Integration)

采用大棒集成方法,先是对每一个子模块进行测试(单元测试阶段),然后将所有模块一次性的全部集成起来进行集成测试 。

因为所有的模块一次集成的,所以很难确定出错的真正位置、所在的模块、错误的原因。这种方法并不推荐在任何系统中使用,适合在规模较小的应用系统中使用。

1.3.5  三明治集成方法(Sandwich Integration)

采用三明治方法的优点是:它将自顶向下和自底向上的集成方法有机地结合起来,不需要写桩程序因为在测试初自底向上集成已经验证了底层模块的正确性。采用这种方法的主要缺点是:在真正集成之前每一个独立的模块没有完全测试过。

改善的三明治集成方法

改进的三明治集成方法,不仅自两头向中间集成,而且保证每个模块得到单独的测试,使测试进行得比较彻底 。

1.4  几种集成方法性能的比较

2.功能测试

2.1  目的和内容

程序安装、启动正常,有相应的提示框、错误提示等
 每项功能符合实际要求
 系统的界面清晰、美观
 菜单、按钮操作正常、灵活,能处理一些异常操作
 能接受正确的数据输入,对异常数据的输入有提示、容错处理等
 数据的输出结果准确,格式清晰,可以保存和读取
 功能逻辑清楚,符合使用者习惯
 系统的各种状态按照业务流程而变化,并保持稳定
 支持各种应用的环境
 能配合多种硬件周边设备
 软件升级后,能继续支持旧版本的数据
 与外部应用系统的接口有效

2.2  功能测试的方法

等价类划分法
边界值分析法
错误推测法
因果图法
组合分析法

2.2.1  等价类划分法

划分好等价类测试:防止遗漏测试案例。

2.2.2   边界值分析法

例子:排序程序,边界条件有:
 序列为空;
 序列仅有一个数据;
 序列为满,用猜错法补充一下测试用例;
 序列已经按要求排好序;
 序列的顺序与要求的顺序恰好相反;
 序列中的所有数据全部相等。

因为错误最容易发生在边界值附近,所以边界值分析法对于多变量函数的测试很有效,尤其是对于像C/C++数据类型要求不是很严格的语言有利 。

2.2.3   错误推测法

这个错误到底在哪呢?

2.2.4  因果图法

2.2.5  组合分析法

组合分析是一种基于每对参数组合的测试技术,主要考虑参数之间的影响是主要的错误来源和大多数的错误起源于简单的参数组合。

3.系统测试

回归测试(Regression test)
压力测试 (Stress test) 
容量测试 (Capacity test) 
性能测试 (Performance test) 
安全测试 (Security test) 
容错测试 (Recovery test) 
可靠性测试(Reliability test)

3.1  回归测试

回归测试的目的 
 所做的修改达到了预定的目的,如错误得到了改正,新功能得到了实现,能够适应新的运行环境等;
 不影响软件原有功能的正确性。

回归测试的方法
  再测试全部用例 
 基于风险选择测试 
 基于操作剖面选择测试 
 再测试修改的部分

回归测试的组织和实施

3.2  压力测试,容量测试和性能测试

压力测试、容量测试和性能测试的测试目的虽然有所不同,但其手段和方法在一定程度上比较相似,通常会使用特定的测试工具,来模拟超常的数据量、负载等,监测系统的各项性能指标,如CPU和内存的使用情况、响应时间、数据传输量等。

3.3  性能测试

看看在各种情况下CPU使用的效率

性能测试的目的: 为了验证系统是否达到用户提出的性能指标,同时发现系统中存在的性能瓶颈,起到优化系统的目的。

性能测试指标的来源: 用户对各项指标提出的明确需求;如果用户没有提出性能指标则根据用户需求、测试设计人员的经验来设计各项测试指标。(需求+经验)

主要的性能指标: 服务器的各项指标(CPU、内存占用率等)、后台数据库的各项指标、网络流量、响应时间

性能测试要点:

测试环境应尽量与产品运行环境保持一致,应单独运行尽量避免与其他软件同时使用。
性能测试一般使用测试工具和测试人员编制测试脚本来完成。
性能测试的重点在于前期数据的设计与后期数据的分析。
性能测试的用例主要涉及到整个系统架构的问题,所以测试用例一旦生成,改动一般不大,所以做性能测试的重复使用率一般比较高。

性能测试的方法和技巧:

两种负载类型:
“flat”测试
ramp-up测试

对于企业级的系统,性能测试的方法主要有:
基准测试
性能规划测试
渗入测试
峰谷测试
两种负载类型:

3.3.1  “Flat”测试

对于一次给定的测试,应该取响应时间和吞吐量的平均值。精确地获得这些值的唯一方法是一次加载所有的用户,然后在预定的时间段内持续运行。

3.3.2  Ramp-up测试:

用户是交错上升的(每几秒增加一些新用户)。ramp-up测试不能产生精确和可重现的平均值,这是因为由于用户的增加是每次一部分,系统的负载在不断地变化。其优点是,可以看出随着系统负载的改变,测量值是如何改变的?据此选择要运行的flat测试的范围。

3.3.3  基准测试

将系统置于相同的高负载下,将请求之间间隔时间设为零。这样服务器会立即超载,并开始构建执行队列。如果请求(虚拟用户)数保持一致,基准测试的结果会非常精确? flat运行是获得基准测试数据的理想模式

3.3.4  性能规划测试

性能规划类型的测试其目标是找出在特定的环境下,给定应用程序的性能可以达到何种程度。例如,如果要以5秒或更少的响应时间支持8,000个当前用户,需要多少个服务器?

 要确定系统的容量,需要考虑几个因素:
用户中有多少是并发与服务器通信的。
每个用户的请求间时间间隔是多少。

如何加载用户以模拟负载状态?
最好的方法是模拟高峰时间用户与服务器通信的状况。
如果用户负载状态是在一段时间内逐步达到的,选择ramp-up测试,每隔几秒增加x个用户;
如果所有用户是在一个非常短的时间内同时与系统通信,就应该使用flat测试,将所有的用户同时加载到服务器

什么是确定容量的最好方法?
结合两种负载类型的优点,并运行一系列的测试
  如:首先使用ramp-up测试确定系统支持的用户范围?该范围内不同的并发用户负载进行一系列的flat测试,更精确地确定系统的容量。

3.3.5  渗入测试

渗入测试是一种比较简单的性能测试。渗入测试所需时间较长,它使用固定数目的并发用户测试系统的总体健壮性。这些测试将会通过内存泄漏、增加的垃圾收集(GC)或系统的其他问题,显示因长时间运行而出现的任何性能降低。
  
   建议运行两次测试——一次使用较低的用户负载(要在系统容量之下,以便不会出现执行队列),一次使用较高的负载(以便出现积极的执行队列)。

3.3.6  峰谷测试

兼有容量规划ramp-up测试和渗入测试的特征,目标是确定从高负载(例如系统高峰时间的负载)恢复、转为几乎空闲、然后再攀升到高负载、再降低的能力。

性能测试的过程:

3.4  压力测试

在一种需要反常(如长时间的峰值)数量、频率或资源的方式下,执行可重复的负载测试,以检查程序对异常情况的抵抗能力,找出性能瓶颈。从本质上来说,测试者是想要破坏程序。
步骤:
 测试压力估算 
 测试环境准备 
 问题的分析 
 累积效应 
---------------------
作者:飘走的我
来源:CSDN
原文:https://blog.csdn.net/qq_33642117/article/details/54313390
版权声明:本文为博主原创文章,转载请附上博文链接!

原文地址:https://www.cnblogs.com/rjcs168/p/9940750.html

时间: 2024-10-11 03:22:00

软件测试特训,系统测试,WEB测试,UFT与Selenium自动化测试,LR性能测试的相关文章

软件测试·系统测试·安全性测试

软件测试主要是为了测试发现软件系统中的BUG,并进行改正,以保证在软件交付给客户是能够保证客户需求达到实现.但在交付之后,并不意味着软件就不会再出现错误,哪怕软件的运行BUG已经完全被解决,而病毒及非法黑客的入侵往往造成的损失比软件自身的BUG还大.因此在软件测试中进行安全性的测试成为一个不可缺少的环节.在实现安全性的测试时,软件工程师则把其放在了系统测试这一环节中,因为系统测试是为了软件能够在与其他程序配合使用时的稳定性,也就是说系统测试更加接近我们软件运行的日常环境.大家都知道病毒的载入往往

近年来,手机app的热起,越来越多的公司企业也引入或者投资到android和ios的app行业当中,继而产生手机软件测试的蓬勃发展。而作为基础行业的web测试,和手机app测试又有什么的相同点与不同之处呢?

1.相同点 不管是传统行业的web测试,还是新兴的手机app测试,都离不开测试的基础知识,即是不管怎么变,测试的原理依然会融入在这两者当中. 1)设计测试用例时,依然都是依据边界值分析法.等价类划分等: 2)多数采用黑盒的测试方法,来验证业务功能是否得到正确的应用: 3)需要检查界面的布局.风格和按钮等是否简洁美观.是否统一等: 4)测试页面载入和翻页的速度.登录时长.内存是否溢出等: 5)测试应用系统的稳定性等. 2.不同点 相对于web测试,手机软件测试,除了要考虑基本的功能测试.性能等,还

web测试常用的用例及知识

  1.      Web测试中关于登录的测试... 1 2.      搜索功能测试用例设计... 2 3.      翻页功能测试用例... 3 4.      输入框的测试... 5 5.      Web测试的常用的检查点... 6 6.      用户及权限管理功能常规测试方法... 8 7.      Web测试之兼容性测试... 9 8.      Web测试-sql注入... 10 9.      Web测试中书写用例时要考虑的检查点... 11 10.        手机电子邮

Web 测试经验总结

Web功能测试常用方法 1.页面链接检查每一个链接是否都有对应的页面,并且页面之间切换正确: 2.相关性检查删除/增加一项会不会对其他项产生影响,如果产生影响,这些影响是否都正确. 3.检查按钮的功能是否正确如update, cancel, delete, save等功能是否正确. 4.字符串长度检查输入超出需求所说明的字符串长度的内容, 看系统是否检查字符串长度,会不会出错. 5.字符类型检查在应该输入指定类型的内容的地方输入其他类型的内容(如在应该输入整型的地方输入其他字符类型),看系统是否

软件测试之Web测试

web测试 一.简介 基于Web的系统测试与传统的软件测试既有相同之处,也有不同的地方,对软件测试提出了新的挑战.基于Web的系统测试不但需要检查和验证是 否按照设计的要求运行,而且还要评价系统在不同用户的浏览器端的显示是否合适.重要的是,还要从最终用户的角度进行安全性和可用性测试.主要包括功能测试.性能测试.可用性测试.客户端兼容性测试以及安全性测试等. 二.功能测试 1.链接测试 链接是Web应用系统的一个主要特征,它是在页面之间切换和指导用户去一些不知道地址的页面的主要手段.链接测试可分为

Web测试的常用测试用例与知识

1. Web测试中关于登录的测试 2. 搜索功能测试用例设计 3. 翻页功能测试用例 4. 输入框的测试 5. Web测试的常用的检查点 6. 用户及权限管理功能常规测试方法 7. Web测试之兼容性测试 8. Web测试-sql注入 9. Web测试中书写用例时要考虑的检查点 10. 手机电子邮件测试用例 11. 记事本与日历的测试用例 12. Web测试总结 13. 让web站点崩溃最常见的七大原因 14. Web应用程序是否存在跨站点脚本漏洞 15. Web测试总结(全) 16. 理解we

[转载]软件测试之Web测试经典总结

转载自:软件测试之Web测试经典总结   基于Web的系统测试在基于Web的系统开发中,如果缺乏严格的过程,我们在开发.发布.实施和维护Web的过程中,可能就会碰到一些严重的问题,失败的可能性很大.而且,随着基于Web的系统变得越来越复杂,一个项目的失败将可能导致很多问题.当这种情况发生时,我们对Web和Internet的信心可能会无法挽救地动摇,从而引起Web危机.并且,Web危机可能会比软件开发人员所面对的软件危机更加严重.更加广泛. 在Web工程过程中,基于Web系统的测试.确认和验收是一

web测试与app测试的区别

看过了千里大腿的blog,再加上最近也有一些同学问我web与app测试的区别.所以在这里也献丑,写一篇随笔.希望对大家有所帮助. 笔者做了快三年的测试了.大部分时间都在做app的测试,web测试也做了半年左右.其实我觉得这两者并没有什么大的区别. 仅仅从功能测试的层面上来讲的话,在流程和功能测试上是没有区别的.那么区别在哪里呢? 我个人觉得就是由于载体不一样,所以系统测试和一些细节可能会不一样. 那么我们就要先来了解,web和app的区别. web项目,一般都是b/s架构,基于浏览器的,而app

Web测试到底是在测什么(资料合集)

http://www.cnblogs.com/idotest/p/6838583.html 图片略模糊 看得清就好 Web测试, 进行抽离拆分,基本上就如上一些内容. 不管是测什么系统,什么功能,基本都差不多. 唯一区别是,一些特性 & 细节 . 今天, 老徐摘录了一些通用的测试点,根据你的实际情况,删减,即可. 正式开始之前, 说下为什么要整理这个主题. 其实,很不想整理的. 1. 没价值,网上太多,一搜大把. 2. 资料会给大家一些思维定式,有了这份大纲后,很多人会不思进取,以为已经掌握了W