收藏 分享(赏)

软件测试基础.doc

上传人:精品资料 文档编号:8825825 上传时间:2019-07-13 格式:DOC 页数:24 大小:750.28KB
下载 相关 举报
软件测试基础.doc_第1页
第1页 / 共24页
软件测试基础.doc_第2页
第2页 / 共24页
软件测试基础.doc_第3页
第3页 / 共24页
软件测试基础.doc_第4页
第4页 / 共24页
软件测试基础.doc_第5页
第5页 / 共24页
点击查看更多>>
资源描述

1、1软件测试基础2目录一、软件测试是什么 .二、软件测试发展的历程 .三、软件测试的职业发展 .自动化测试 性能测试 转岗 四、互联网公司的人员结构 .五、软件测试的分类 .按方法分类 按方向分类 按阶段分类 按对象分类 按状态分类 其他测试类型 六、研发模型 .瀑布型 V字型 W字型 .螺旋形 H字型 .敏捷模型 .七、测试流程 测试常识 .需求分析阶段 .测试设计阶段 .测试执行阶段 .测试总结阶段 .八、测试方法 边界值 .等价类 .3场景法 因果图 判定表 .路径覆盖法 .错误推测法 .正交排列法 .九、的管理 .六要素 的状态 的生命周期 常见的管理系统 十、版本管理 十一、测试应用

2、测试 .测试 .十二、软件的典型结构 . .十三、评审 4一、 软件测试是什么预期结果 = 实际结果 ? 测试通过 :软件 Bug ;经典定义是:在规定的条件下对程序进行操作,以发现程序错误,衡量软件质量,并对其是否能满足设计要求进行评估的过程。标准定义(IEEE):软件测试是使用人工或自动的手段来运行或测定某个 软件系统的过程,其目的在于检验它是否满足规定的需求或弄清预期结果与实际结果之间的差别。二、 软件测试发展的历程软件测试就是去证明软件是正确的软件测试就是去证明软件是错误的软件测试就是通过一系列的手段去保证软件的质量是符合用户需求的一个过程正在经历的阶段(国外:通过管理的手段去控制软件

3、的质量。国内:通过技术的手段去控制软件的质量)三、 软件测试的职业发展 功能测试工程师自动化测试、性能测试、转岗1、 自动化测试(自动化测试是把以人为驱动的测试行为转化为机器执行的一种过程)测试开发:协助开发编写单元测试,规范开发输出;帮助功能测试人员提升技术实力,能够独立完成自动化测试工作;开发测试平台;挖掘测试需求,通过技术手段帮助测试团队提升测试效率。持续集成:是一种软件开发实践,即团队开发成员经常集成他们的工作,通常每个成员每天至少集成一次,也就意味着每天可能会发生多次集成。每次集成都通过自动化的构建(包括编译,发布,自动化测试)来验证,5从而尽早地发现集成错误。TestOps(测试运

4、维):其主要的目的是推动整个研发体系 与发布体系更多在质量方面,是从测试角度推动研发和运维2、 性能测试高级性能测试(性能调优)性能测试是通过自动化的测试工具模拟多种正常、峰值以及异常负载条件来对系统的各项性能指标进行测试。负载测试和压力测试都属于性能测试,两者可以结合进行。3、 转岗产品、运维、开发等四、 互联网公司的人员结构项目经理(负责对整个项目负责,包括了时间、人物、资源的安排和分配) 、产品经理(对产品负责,负责需求的设计、收集、整理等等) 、开发(前端、后端) 、测试、运维、设计(设计 UI 排版、配色) 、运营五、 软件测试的分类1、 按方法分类黑盒测试:在测试中,把程序看作一个

5、不能打开的黑盒子,在完全不考虑程序内部结构和内部特性的情况下,在程序接口进行测试,它只检查程序功能是否按照需求规格说明书的规定正常使用,程序是否能适当地接收输入数据而产生正确的输出信息。黑盒测试着眼于程序外部结构,不考虑内部逻辑结构,主要针对软件界面和软件功能进行测试。白盒测试:白盒测试又称结构测试、透明盒测试、逻辑驱动测试或基于代码的测试。“白盒“法全面了解程序内部逻辑结构、对所有逻辑路径进行测试。“白盒“ 法是穷举路径测试。在使用这一方案时,测试者必须检查程序的内部6结构,从检查程序的逻辑着手,得出测试数据。灰盒测试:多用于集成测试阶段,不仅关注输出、输入的正确性,同时也关注程序内部的情况

6、。灰盒测试不像白盒那样详细、完整,但又比黑盒测试更关注程序的内部逻辑,常常是通过一些表征性的现象、事件、标志来判断内部的运行状态。2、 按方向分类功能测试(手工测试、自动化测试):就是对产品的各功能进行验证,根据功能测试用例,逐项测试,检查产品是否达到用户要求的功能。性能测试:压力测试:通常是在高负载情况下来对系统的稳定性进行测试,更有效地发现系统稳定性的隐患和系统在负载峰值的条件下功能隐患等。负载测试:是通过改变系统负载方式、增加负载等来发现系统中所存在的性能问题。并发测试:主要指当测试多用户并发访问同一个应用、模块、数据时是否产生隐藏的并发问题,如内存泄漏、线程锁、资源争用问题安全测试:是

7、在 IT 软件产品的生命周期中,特别是产品开发基本完成到发布阶段,对产品进行检验以验证产品符合安全需求定义和产品质量标准的过程 。 (SQL 注入、渗透测试、暴力破解、跨域攻击、DOS 攻击等等)3、 按阶段分类单元测试:(代码、方法、函数、类)是指对软件中的最小可测试单元进行检查和验证。集成测试:(接口/API)也叫组装测试或联合测试。在单元测试的基础上,7将所有模块按照设计要求(如根据结构图)组装成为子系统或系统,进行集成测试。系统测试:(功能、性能、安全、易用性(用户体验) 、兼容性(APP(IOS/Android)/WEB ) 、稳定性、UI 等等)是对整个系统的测试,将硬件、软件、操

8、作人员看作一个整体,检验它是否有不符合系统说明书的地方。验收测试(交付测试):目的是确保软件准备就绪,并且可以让最终用户将其用于执行软件的既定功能和任务。4、 按对象分类APP 测试、WEB 测试、物联网测试、车联网测试、小程序测试、数据库测试、大数据测试、AI 测试、嵌入式测试等等。5、 按状态分类动态测试:动态测试方法是指通过运行被测程序,检查运行结果与预期结果的差异,并分析运行效率、正确性和健壮性等性能。静态测试:静态方法是指不运行被测程序本身,仅通过分析或检查源程序的语法、结构、过程、接口等来检查程序的正确性。6、 其他测试类型冒烟测试:是针对软件版本包进行详细测试之前的预测试,执行冒

9、烟测试的主要目的是快速验证软件基本功能是否有缺陷。即测试前的测试,检查软件是否具备可测试性。回归测试:是指修改了旧代码后,重新进行测试以确认修改没有引入新的错误或导致其他代码产生错误。即检查上一个版本的 BUG 是否修改。8 测试(内测):由一个用户在开发环境下进行的测试,也可以是公司内部的用户在模拟实际操作环境下进行的测试。 测试的目的是评价软件产品的 FLURPS(即功能、局域化、可用性、可靠性、性能和支持) 。尤其注重产品的界面和特色。 测试(公测):是指软件开发公司组织各方面的典型用户在日常工作中实际使用 版本,即发放一部分给用户进行测试,并要求用户报告异常情况、提出批评意见,然后软件

10、开发公司再对 版本进行改错和完善。六、 研发模型1、 瀑布流:瀑布模型是将软件生存周期的各项活动规定为按固定顺序而连接的若干阶段工作,形如瀑布流水,最终得到软件产品。优点:为项目提供了按阶段划分的检查点;当前一阶段完成后,只需要去关注后续阶段;可在迭代模型中应用瀑布模型。缺点:阶段之间产生大量的文档,极大地增加了工作量;由于开发模型是线性的,用户只有等到整个过程的末期才能见到开发成果,从而增加了开发风险;92、V 字型:与瀑布模型基本无差异,将开发与测试的工作做了对照关系。3、W 字型优点:测试的活动与软件开发同步进行;测试的对象不仅仅是程序,还包括需求和设计;尽早发现软件缺陷可降低软件开发的

11、成本。4、螺旋形10螺旋模型最大的特点在于引入了其他模型不具备的风险分析,使软件在无法排除重大风险时有机会停止,以减小损失。同时,在每个迭代阶段构建原型是螺旋模型用以减小风险的途径。螺旋模型更适合大型的昂贵的系统级的软件应用。5、H 字型H 模型揭示了一个原理:软件测试是一个独立的流程,以独立完整“微循环”流程,参与产品生命周期的各个阶段,与其他流程并发地进行。H 模型指出软件测试要尽早准备,尽早执行,只要某个测试达到准备就绪点,测试执行活动就可以开展,并且不同的测试活动可按照某个次序先后进行,但也可以是11反复进行的。6、敏捷模型敏捷测试应该是一套解决方案、一类测试操作与管理的框架、一组实践

12、或由一定顺序的测试活动构成的特定的测试流程。如站立会、集中办公、高效的沟通、小黑板、工作日报七、 测试流程测试常识:软件是程序、文档、数据的集合。文档测试也是测试的一部分。5W1H/六合分析法(是对选定的项目、工序或操作,都要从原因(何因Why) 、对象(何事 What) 、地点(何地 Where) 、时间(何时 When) 、人员(何人 Who) 、方法(何法 How)等六个方面提出问题进行思考) 。测试是无穷无尽的1、 需求分析阶段需求文档/产品原型(工具:墨刀)/口述学习业务流程、软件功能编写需求分析说明书提取功能点(树状结构模型)2、测试设计阶段为什么要编写测试计划?领导能够根据测试计

13、划做宏观调控,进行相应资源配置等;测试人员能够了解整个项目测试情况以及项目测试不同阶段的所要进行的工作等;便于其他人员了解测试人员的工作内容,进行有关配合工作12什么时间开始编写测试计划?(测试需求分析前总体测试计划书/测试需求分析后详细测试计划书);由谁来编写测试计划?具有丰富经验的项目测试负责人;测试计划编写 6 要素?( 5W1H)why为什么要进行这些测试;what测试哪些方面,不同阶段的工作内容;when测试不同阶段的起止时;where 相应文档,缺陷的存放位置,测试环境等;who 项目有关人员组成,安排哪些测试人员进行测试 how如何去做,使用哪些测试工具 以及测试方法进行测试。测

14、试计划:对人员、时间、任务、资源的分配测试策略:对于测试活动的执行的优先级的管理、针对有可能出现的意外进行控制(风险分析) 、制定管理的标准(测试开始和结束的标准)测试方案:具体的测试应该怎么去做测试用例:编号:编号是绝对唯一的用例名称:要求言简意赅,让人看到就知道这个用例的作用前置条件:在执行这个用例之前的软件必须达到的一个状态优先级:和执行用例的时间相关,即测试的顺序重要级:和被测的功能的重要性相关测试数据:测试步骤:预期结果:实际结果:133、测试执行阶段:执行测试用例、记录 BUG、BUG 的跟踪管理4、测试总结阶段(测试报告):工作总结:BUG 统计分析:测试覆盖率、 BUG 的统计

15、(测试人、开发、功能模块、BUG 的状态、的等级、版本) 、BUG 的分析质量评估:一二级的全部被解决了、三级的被解决了、四级的 BUG 无所谓。八、 测试方法边界值:边界值分析关注的是输入空间边界,用以标识测试用例,基本思想是在最小值(min) 、略高于最小值(min+ ) 、正常值( nom) 、略低于最大值(max-)和最大值(max)等处取值。等价类:等价类划分法将程序所有可能的输入数据(有效的和无效的)划分成若干个等价类。然后从每个部分中选取具有代表性的数据当做测试用例进行合理的分类,测试用例由有效等价类和无效等价类的代表组成,从而保证测试用例具有完整性和代表性。14场景法:列出用户

16、可能会操作的所有场景(成功的场景、失败的场景)因果图:用于描述被测对象输入与输入、输入与输出之间的约束关系。判定表:是分析和表达多逻辑条件下执行不同操作的情况的工具。判定表通常有以下四个部分组成:1)条件桩(Condition Stub):在左上部,列出了问题的所有条件。通常认为列出的条件的次序无关紧要。2)动作桩(Action Stub):在左下部,列出了问题规定可能采取的操作。这些操作的排列顺序没有约束。3)条件项(Condition Entry):在右上部,列出针对它左列条件的取值。在所有可能情况下的真假值。4)动作项(Action Entry):在右下部,列出在条件项的各种取值情况下应

17、该采取的动作。路径覆盖法:选取足够多的测试数据,使程序的每条可能路径都至少执行一次(如果程序图中有环,则要求每个环至少经过一次) 。错误推测法:在测试程序时,人们可以根据经验或直觉推测程序中可能存在的各种错误,从而有针对性地编写检查这些错误的测试用例的方法。正交排列法:一种特制的表,一般的正交表记为:n 是表的行数,也就是测试组合的次数15K 是表的列数,表示控件的个数(因素的个数,或银子个数)m 表示每个控件包含的取值。九、 BUG 的管理BUG 六要素:编号:唯一的BUG 名称:言简意赅,一眼看出这个 BUG 的状态优先级:和时间有关(高、中、低)严重级别:致命的(导致软件崩溃、和钱有关、

18、阻碍了核心业务的流程) 、 严重的(重要的功能出现异常) 、一般的(非核心的功能出现了异常) 、轻微的(建议性的问题、UI 上的问题)复现步骤:将你在测试中出现 BUG 的步骤写出来。确保所有的步骤都被记录,记录下所做的每一件事、每一个步骤、每一个停顿。无意间丢失一个步骤或者增加一个多余步骤,可能导致无法再现软件缺陷。附件:对的存在的一个佐证(截图、视频、日志)16的状态:新建/open/激活、已确认、已解决/fixed、关闭/closed 、重新打开/reopen、延期解决、拒绝、已重复的生命周期:发现 BUG,确认 BUG,分配 BUG,修复 BUG,验证BUG,关闭 BUG。常见的 BU

19、G 管理系统:禅道、BugFree、Testlink 、ALM/QC、Bugzilla 、JIRA 等等十、 版本管理迭代是重复反馈过程的活动,其目的通常是为了逼近所需目标或结果。每17一次对过程的重复称为一次“迭代” ,而每一次迭代得到的结果会作为下一次迭代的初始值。版本迭代测试迭代十一、 测试应用APP 测试:场景交互测试、安装/卸载测试、消息推送、权限、弱网测试(2G 、 3G、 4G、5G、WIFI) 、离线等等。目前 APP 测试在市场中占有相当一部分比例,今天我们就来浅谈一下 APP测试需要注意哪些方面,在 APP 测试的时候,建议让开发打好包 APK 和 IPA安装包,测试人员自

20、已安装应用,进行测试。在测试过程中需要注意的测试点如下。1.安装和卸载应用是否可以在 IOS 不同系统版本或 Android 不同系统版本上安装(有的系统版本过低,应用不能适配)软件安装后是否可以正常运行,安装后的文件夹及文件是否可以与到指定的目录里。安装过程中是否可以取消。安装空间不足时是否有相应提示。如果应用需要通过网络验证之类的安装,需要测试一下断网情况下是否有相应提示是否可以删除应用(可通过桌面删除,也可以通过软件卸载安装。曾发现在IOS 手机上有个应用安装时未完全安装,终止安装后,未完成安装的应用图标18一直显示在手机上,并且无法成功删除)测试卸载后文件是否全部删除所有的安装文件夹卸

21、载过程中出现死机,断电,重启等意外的情况,待环境恢复后是否可以正确卸载卸载是否支持取消功能,单击取消后软件卸载情况是否正常2.运行APP 安装完成后,是否可以正常打开软件APP 运行时,是否有加载图示APP 的速度是可以让人接受,切换是否流畅用户登录状态太久,sessionld 会过期,会出现虽然是登录状态,系统会提示用户没有登录。3.登录登录用户名和密码错误时,界面有提示信息用户主动退出登录后,下次启动 APP 时,应该进入登录界面对于支持自动登录的 APP,数据交换时,是否能自动登录成功且数据库操作无误码更改后,登录时是否做到了有效数据的校验对于未登录时一些页面的操作,是否做了控制切换账号

22、登录,检验登录的信息是否做到及时更新对于多个端都进行操作时,确保数据库操作无误,且每个端可以及时看到数据的更新对于一些软件,支持一个账号只允许登录一台机器,这时,需要检查账号19登录多个手机时,是否将原用户剔除,且能够给出提示信息APP 切换到后台时,再次切换到前台的测试,如登录时,有电话打进来对于 IOS 与 Android 不同设备登录同一个账号时,对个人信息等数据进行操作后,确保数据数库操作无误,且 IOS 与 Android 设备看到的数据都是最新的。4.离线离线是应用程序在本地的客户端会缓存一部分数据以供程序下次调用对于一些程序,需要在登录进来后,这时没有网络的情况下可以浏览本地数据

23、对于无网络时,刷新获取新数据时,不能获取数据且能给出友好提示切换到后台,再次切换到前台时,可以正常查看离线后又连上网,这时对数据有更新时,需要从服务器端获取新数据来更新客户端数据,且要更新本地缓存信息对于一些界面的数据不提供离线查看,需要给出相应提示且界面更新后无任何数据确认在无网情况下可以浏览本地数据确认退出 APP 再开启 APP 时能正常浏览确认切换到后台再切回 APP 应用时可以正常浏览锁屏后再解锁回到应用前台可以正常浏览服务端的数据有更新时有离线的提示5.数据更新确认有数据更新后,哪些地方需要手动刷新,哪些地方需自动刷新。20确认从后台切换回前台时,哪些页面需要进行数据更新根据需求和

24、逻辑,确认哪些数据是从服务端请求实时响应,哪些是缓存到本地的数据。6.消息推送开关设置默认开关应该是全打开状态设置开关可以自由打开关闭设置开关打开状态下,消息推送是否可正常接收(应用启用中和应用关闭时都应该可以收到)确认后台未打开 APP 客户端时,手机消息栏可以接收到消息提醒。且点击可查看。点击后消息栏中消失确认 APP 客户端启动时,可以收到消息提醒,且点击可查看。客户端运行时,消息不会进消息栏。设置开关关闭时,客户端接收不到消息推送。7.软件更新当客户端有新版木时,有更新提示软件更新一定要测,确保 Android 软件更新可以正确更新新版本,且安装运行正确。确保 IOS 软件更新会有限制

25、,只有上了商店且有版本更新时才会测试,但是如果真有问题,再发现问题不点晚,可以让开发先在测试机上模拟;一个地址进行测试。用户取消版本更新时,老版本可以正常使用,但是下次启动应用时,仍出现更新提示21当有新版本时,不删除客户端的情况下,直接更新检查是否能正常更新,且更新后客户端的功能是否最新版本(正常来讲不用强制删除本地客户端可以正常更新)8.异常测试没有内存空间时,APP 能否正确响应APP 运行中手机断电APP 运行中断开网络反复操作某个功能,不断点击,刷新时,是否会闪退APP 运行时拔打或接听电话APP 运行时发送信息、收取邮件等多个 APP 运行时不断切换前台和后台,是否影响应用正常功能

26、APP 运行时,启动相机功能9.网络环境测试 2G、3G,4 G, WIFI 网络下应用运应的速变内网测试时,选择到外网操作是否有异常处理网络不好时,提交数据是否一直处理提交中,是否会有延迟,数据交换失败是否会有提醒有网到无网再到有网环境时,数据是否可以自动恢复,正常加载10.其它接口测试,让开发提供-一份接口文档,一定要将接口测试通。在接口测试阶段,将缺少接口,接口不完善的缺陷挖掘出来。这个需要准备充分的后台数22据。导航测试,在运行 APP 时,不管在哪个接点,导航是否直观,精准,页面切换是否正确。图片测试,图片,按钮是否自适应。内容测试,要进行超长字符,空字符校验且校验是否有错别字功能测

27、试,功能是否实现。易用性测试,所开发的功能,是否让用户容易接受,是否符合大众的操作习惯。适配性测试,应用在不同设备,不同系统上是否适配。UI 测试,应用的设计是否够美观WEB 测试:WEB 项目,一般都是 B/S 架构, 基于浏览器的,而 APP 则是 C/S 的, 必须要有客户端。那么在系统测试测试的时候就会产生区别了。首先从系统架构来看的话,web 测试只要更新了服务器端,客户端就会同步会更新。而且客户端是可以保证每一个用户的客户端完全一致的。但是 APP 端是不能够保证完全一致的,除非用户更新客户端。如果是 APP 下修改了服务端,意味着客户端用户所使用的核心版本都需要进行回归测试一遍。

28、接着是性能方面,WEB 页面可能只会关注响应时间,而 APP 则还需要关心流量、电量、CPU、GPU 、 Memory 这些了。然后是兼容方面,WEB 是基于浏览器的,所以更倾向于浏览器和电脑硬件,电脑系统的方向的兼容,不过一般还是以浏览器的为主。而浏览器的兼容则是一般是选择不同的浏览器内核进行测试(IE、chrome, Firefox)。APP 的测试则必23须依赖 phone 或者是 pad,不仅要看分辨率,屏幕尺寸,还要看设备系统。系统总的来说也就分为 Android 和, 不过国内的 Android 的定制系统太多,也是比较容易出现问题的。一般的兼容测试三种方法,云测试,请团队测试,真

29、机测试。这里说说真机的选择,首先要选择主流的机型,其次要选择不同的分辨率,尺寸,然后就是不同的操作系统。相比较测试,更是多了一些专项测试:健壮性测试,一些异常场景的考虑以及弱网络测试。这里的异常场景就是中断,来电短信,关机,重启等。而弱网测试是测试中必须执行的一项测试。包含弱网和网络切换测试。需要测试弱网所造成的用户体验,重点要考虑回退和刷新是否会造成二次提交。需要测试丢包,延时的处理机制。避免用户的流失。安装、卸载、更新:WEB 测试是基于浏览器的所以不必考虑这些。而是客户端的,则必须测试安装、更新、卸载。除了常规的安装、更新、卸载还要考虑到异常场景。包括安装时的中断、弱网、安装后删除安装文件,更新的强制更新与非强制更新、增量包更新、断点续传、弱网,卸载后删除APP 相关的文件等等。界面操作:现在产品的用户都是使用的触摸屏手机,所以测试的时候还要注意手势,横竖屏切换,多点触控,事件触发区域等测试。剩下的可能就是使用的工具的不同吧十二、 软件的典型结构B/ S:browser 浏览器、server 服务器C/S:client 客户端(需要安装的) 、server 服务器十三、 评审24同行评审、小组评审、部门评审、第三方评审、项目评审、邮件评审

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 企业管理 > 管理学资料

本站链接:文库   一言   我酷   合作


客服QQ:2549714901微博号:道客多多官方知乎号:道客多多

经营许可证编号: 粤ICP备2021046453号世界地图

道客多多©版权所有2020-2025营业执照举报