软件极限测试,软件测试极限测试

http://www.itjxue.com  2023-01-17 10:07  来源:未知  点击次数: 

软件测试方法是什么?

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、数据库(mysql 、oracle、sql server),增删改查必须会 ,这个是入门,尽量会点存储过程等其他高深点的,面试表现出来,绝对是加分项。

3、Linux,必须会,现在很多WEB测试环境都是搭建在centos下,所以建议直接学习centos7,服务器一般用的这个系统,Ubuntu这些有些地方和centos还是有一点区别。

软件测试必学基本理论知识-APP测试

业务功能测试

APP专项测试(兼容性测试、安装、卸载、升级、交叉事件、Push消息推送、性能测试、用户体验、极限、边界、权限

手机型号、操作系统、分辨率(Android:1080x1920,720x1280;IOS:2208x1242,1334x750)尺寸(4.7,5.5)、网络环境(Wi-Fi、2G、3G、4G、5G)

拨打接听电话

接收/发送短信

插拔耳机

网络切换

1.一定数量的真机上进行

2.借助testin等云平台

3.模拟器:Xcode、Genymotion()

第三方在线统计排名(腾讯移动分析、百度研究院)

官方数据(Android、IOS官网)

埋点技术(技术手段)

push消息应该按设定规则发送特定用户

APP在后台运行时,应能正常收到其push消息

设备锁屏状态下,应能正常收到APP的push消息

设置网络段断开后再一次建立连接是,应能收到push消息

系统设置不接收APP通知消息时,用户应该不再接收push消息

安装渠道:Android-应用商城、IOS-APP Store

正常情况 :

正常安装测试、检查是否安装成功

APP本本覆盖测试

回退版本测试

在不同型号、系统、屏幕大小、分辨率上的手机进行安装

安装完成后能否正常启动应用程序

异常情况

安装时内存不足

安装过程中的意外情况(强行断电、断网、来电话、查看信息)等

能否取消安装

正常情况:

用自己的卸载程序进行卸载,检查是否卸载干净

用第三方工具,检查是否卸载干净

不同系统、硬件环境、网络环境下进行卸载

卸载后再次安装、是否正常使用

异常情况:

卸载中出现异常情况能否恢复(比如手机关机、内存、没电等),程序是否还能运行

卸载后是否有残留,是否能够再次进行安装

是否可以取消卸载,软件恢复使用

更新版本需要提示用户

考虑是否进行强制升级(软件存在严重缺陷、软件不能够向前兼容)

是否能够跨版本升级

性能测试指标:内存、CPU、流量、电量、启动速度、界面切换速度

内存溢出与内存泄漏

1.内存溢出out of memory,是指程序在申请内存时,没有足够的内存空间供其使用,出现溢出

2.内存泄漏out of leak,是指程序在申请内存后,无法释放已申请的内存空间,一次内存泄漏危害可以忽略,但内存泄漏堆积后果很严重,无论多少内存,迟早会被占光

3.二者的关系:内存泄漏会导致内存溢出

冷启动与热启动

1.指app被后台杀死后,在这个状态打开app,这种启动方式叫做冷启动

2.热启动:指app没有被后台杀死,仍然在后台运行,通常我们再次打开这个app,这种启动方式叫做热启动

用户体验

边界(极限测试)

权限测试

App的兼容性测试尤为重要:由于手机厂商生产的手机型号及相关软硬件存在千千万万的差异性,进而APP端需要着重考虑分辨率,系统版本,尺寸,主流机型等

App性能测试指标不一样,除了需要和web一样考虑APP客户端的性能外,我们还需要考虑电量、流量的消耗、GPU渲染等

APP网络测试场景的复杂性:如2G、3G、4G、5G、Wi-Fi、弱网环境等

APP基于手机载体存在的交叉事件测试、前后台切换,安装/卸载/升级测试

APP基于手机载体特有的一些用户操作习惯类测试,如横竖屏切换,多点触控,事件触发区域等

内测发布平台

工作流程:1.开发将打好的程序包上传到内测发布平台上2.内测分发平台基于上传的安装包生成唯一的二维码3.测试扫描二维码即可进行下载,安装并测试

蒲公英:

fir.im(

线上发布平台:

应用商店、APP Store

前置基础:瀑布模型(不适用快速变化的需求)、快速原型

互联网特点:请求创新、要求的高度不确定性

移动互联网的解决方案:快速的反馈机制、快速试错

基本可以和快速原型划等号。

scrum:提供了一套基于团队的敏捷方法。

角色:产品负责人(整理需求)、项目经理、开发团队

输出物:产品待办列表、迭代待办列表、产品增量(可工作的软件)

5个活动:迭代、迭代计划、每日站会、评审会、迭代回顾

1.需求分析与评审

2.编写测试计划(测试方案)

3.设计测试用例与评审

4.执行测试用例与缺陷跟踪

5.编写测试报告

兼容测试

交叉事件

弱网测试

极限边界

权限测试

删除请求:remove all

设置过滤

查看请求和响应数据

修改响应数据

辅助定位bug

构建模拟测试场景

APP弱网模拟测试

前端性能分析及优化

重定向、API接口测试

为什么抓包?

通过抓包工具截取观察网站的请求信息,帮助我们更深入了解系统

通过用抓包工具截取,观察网站的请求与返回信息,帮助我们进行bug的定位与描述

步骤

1.打开Fiddler,设置代理(tools-option-connection-勾选Allow remote computers to connect,并允许远程连接

2.手机连接电脑的热点网络或者在同一个局域网内

3.手机网络连接中,设置网络代理,IP是电脑的同网段IP地址,端口是8888

4.手机访问APP或者用手机浏览器访问网络,电脑Fiddler观察抓包情况

1.概念

在当今移动互联网盛行的时代,网络的形态除了有线连接,还有2G/3G/Edge/4G/Wi-Fi

等多种手机网络连接方式,不同的协议、不同的制式、不同的速率使移动应用运行的场景更加丰富。

2.原理

通过Fiddler来模拟限速,提供客户端请求前和服务器响应前的回调接口,Fiddler的模拟限速是在客户端请求前自定义限速,通过延迟发送数据或接收数据的时间来限制网络的下载和上传速度,从而达到限速的效果

打开网速模拟模式开关(Rules-Performances-simulate Modem speeds)

自定义网络:rules-customize rules

(知识就是力量,我将会持续更新软件测试相关知识哟 )

软件测试属于什么部门?

问题一:软件测试公司 一般有什么部门 5分 软件测试公司一般根据测试类型进行部门分类,硬件测试部、软件测试部,软件测试部有分为功能测耽(系统测试)部门、性能测试部门、安全性测试部门,每个部门都有部门测试经理,当然,不同的公司不一定,毕竟纯软件测试的公司还是不交少的。

问题二:软件公司的测试部门有哪些常见的组织? 测试总监-对应-开发总监

-测试经理-对应-开发经理

-测试组长-对应开发组长

-各级别测试人员(普通测试工程师)

每个级别的人的工作内容有所不同

有的企业里面还有测试架构师,测试设计师这样的职位。其中测试架构师和测试总监或者测试经理是平级的,测试设计师一般和测试组长是评级的,但是他们对于人员管理没有权限弧管理的是项目本身。不过这类的职位一般在国内不多见。

还有,有些企业会把QA和QC分离,就是普通的测试部门(QC)和质量管理部(QA),质量管理部是在软件项目开始的时候和进行中进行规则管理和规划的人员。都需要知道类似于CMMi之类的东西。督促测试或者开发在流程上的一些强化定义,并且确保整个过程中的流程上的质量。

QA和QC糅合的企业也很多。两者的工作都有。只是看更加注重什么。

测试根据测试的角度可以氛围很多种。有些企业可以细化(规模大的)比如ST,UAT分成不同的部门。黑盒测试,白盒测试,灰盒测试是不同的team负责,自动化测试和手工测试等等。看公司定位,客户需求以及项目特点。

问题三:软件测试到底是什么岗位 CM,俗称配置管理员(Software Configuration Management Engineer).

问题四:软件测试的主要工作内容是什么? 10分 不论是对软件的模块还是整个系统,总有共同的内容要测试,如正确性测试,容错性测试,性能与效率测试,易用性测试,文档测试等。“白盒测试”是指开发人员从程序内部对上述内容进行测试,而“黑盒测试”是指独立的测试人员从程序外部对上述内容进行测试。

1 正确性测试

正确性测试又称功能测试,它检查软件的功能是否符合规格说明。由于正确性是软件最重要的质量因素,所以其测试也最重要。

基本的方法是构造一些合理输入,检查是否得到期望的输出。这是一种枚举方法。倘若枚举空间是无限的,那可惨了,还不如回家种土豆有盼头。测试人员一定要设法减少枚举的次数,否则没好日子过。关键在于寻找等价区间,因为在等价区间中,只需用任意值测试一次即可。等价区间的概念可表述如下:

记(A, B)是命题f(x) 的一个等价区间,在(A, B)中任意取x1进行测试。

如果f (x1) 错误,那么f (x) 在整个(A, B)区间都将出错。

如果f (x1) 正确,那么f (x) 在整个(A, B)区间都将正确。

上述测试方法称为等价测试,来源于人们的直觉与经验,可令测试事半功倍。

还有一种有效的测试方法是边界值测试。即采用定义域或者等价区间的边界值进行测试。因为程序员容易疏忽边界情况,程序也“喜欢”在边界值处出错。

例如测试 的一段程序。凭直觉等价区间应是(0, 1)和(1, +∞)。可取x=0.5以及x=2.0进行等价测试。再取 x=0以及x=1进行边界值测试。

有一些复杂的程序,我们难以凭直觉与经验找到等价区间和边界值,这时枚举测试就相当有难度。

在用“白盒测试”方式进行正确性测试时,有个额外的好处:如果测试发现了错误,测试者(开发人员)马上就能修改错误。越早改正错误,付出的代价就越低。所以大多数软件公司要求程序员在写完程序时,马上执行基于单步跟踪的“白盒测试”。

2 容错性测试

容错性测试是检查软件在异常条件下的行为。容错性好的软件能确保系统不发生无法意料的事故。

比较温柔的容错性测试通常构造一些不合理的输入来引诱软件出错,例如:

(1)输入错误的数据类型,如“猴”年“马”月。

(2)输入定义域之外的数值,上海人常说的“十三点”也算一种。

粗暴一些的容错性测试俗称“大猩猩”测试,除了不能拳打脚踢嘴咬,什么招术都可以使出来。这里我举不出例子,因为我没有对程序粗暴过,并且这辈子也不打算学会粗暴。

3 性能与效率测试

性能与效率测试主要是测试软件的运行速度和对资源的利用率。有时人们关心测试的“绝对值”,如数据送输速率是每秒多少比特。有时人们关心测试的“相对值”,如某个软件比另一个软件快多少倍。

在获取测试的“绝对值”时,我们要充分考虑并记录运行环境对测试的影响。例如计算机主频,总线结构和外部设备都可能影响软件的运行速度;若与多个计算机共享资源,软件运行可能慢得像蜗牛爬行。

在获取测试的“相对值”时,我们要确保被测试的几个软件运行于完全一致的环境中。硬件环境的一致性比较容易做到(用同一台计算机即可)。但软件环境的因素较多,除了操作系统,程序设计语言和编译系统对软件的性能也会产生较大的影响。如果是比较几个算法的性能,就要求编程语言和编译器也完全一致。

性能与效率测试中很重要的一项是极限测试,因为很多软件系统会在极限测试中崩溃。例如,连续不停地向服务器发请求,测试服务器是否会陷入死锁状态不能自拔;给程序输入特别大的数据,看看它是否吃得消。

4 易用性测试

易用性测试没有一个量化的指标,主观性较强。调查表明,当用户不理解软件中的某个特性时,大多数人首先会向同事、朋友请教。要是再不起作用,就向......

问题五:软件测试工程师的岗位职责是什么? 其实就是找bug的能力

不同公司开发的项目类型不同,相对的你要有这方面的专业知弧,如果开发数据库,你得有数据库的专业知识。而为了尽可能的找出所有的bug(那是不可能的),你必须会用一些测试方法写案例去找到bug。

现在工具用的很多,不过大多是辅助类的,主要是写案例的能力。

问题六:软件测试的具体工作内容是什么? 1.搭建测试环境

2.写测试用例

3.执行测试用例

4.写测试计划、测试报告

5.测试,并提交BUG单

6.跟踪BUG修改情况

7.自动化测试,编写脚本,执行,分析,报告

8.性能测试,编写脚本,执行,分析,调优,报告

大概的是这些。

问题七:软件测试的工作流程是什么?? 软件测试的测试流程有1、制定测试计划2、编辑测试用例3、执行测试用例4、发现并提交BUG

5、开发组修正BUG6、对已修正BUG进行返测7、修正完成的BUG将状态置为已关闭,未正确修正的BUG重新激活,参考什么是软件测试和软件测试原则note.youdao/...e=note

问题八:华为师兄看过来,软件测试岗哪个部门好一些 其实软件开发岗位和软件测试岗位本身职位就有差异,不管是在华为还是其他公司软件开发俗话来讲就是敲代码软件测试俗话来讲就是找bug这个是工作差异论薪资的话一般来说开发会比软件测试要高,不过高级软件测试工程师又另当别论了

问题九:软件测试是干什么的? 软件测试,在专业上区分,也是有所区分的,分黑盒和白盒测试两种,白盒测试一般在一些大的软件工程项目里面使用得到,要求的技术层次相对较高,基本上是半个以上研发人员的技术水平要求。(具体两者区分可以自行百度)这里具体说说软件测试中,两种测试工种的工作内容。

白盒测试,往往要直接接触程序的源代码,所以白盒测试人员任职的一个很重要的条件就是读懂对应开发语言,最好是半个以上的开发人员。

黑盒测试,则没有要能读懂程序源代码要求(当然有软件开发这方面知识的更佳),黑盒测试人员的要求往往更侧重测试人员对软件测试理论和对应行业了解。

现在很多的测试人员对于白盒测试这个工作近乎有一种膜拜的心态,个人觉得没有必要。做你喜欢做的,做你最擅长做的,坚持你所做的,我想最后被人膜拜的人就是你。

两者在工作的内容上存在相同之处也存在不同之处。

相同之处在于:都要进行测试用例设计,也都要执行测试用例,报告缺陷。

不同之处在于:白盒测试人员是在能看到程序内部实现、及程序需求的情况下进行的测试用例设计,而黑盒测试人员只能通过程序的需求文档进行测试用例设计;往往黑盒测试用例的量相对白盒测试而言要多一些。

(责任编辑:IT教学网)

更多