软件测试小白学习笔记 五

集成测试

概念: 又叫组装测试,产品经过单元测试后,为检验单元组装在一起后也能符合设计意图,协作运行,所进行的一边组装一边测试的工作。
出问题的原因:
(1)在把各个模块连接起来的时候,穿越模块接口的数据是否会丢失。
(2)各个子功能组合起来,能否达到预期要求的父功能。
(3)一个模块的功能是否会对另一模块的功能产生不利的影响。
(4)全局数据结构是否有问题。
(5)单个模块的误差积累起来,是否会放大,从而达到不可接受的程度。
*目的:*检验单元之间、小模块之间、大模块之间、子系统之间的接口。

集成测试与其他测试的区别

集成测试与单元测试的区别:

集成测试单元测试
测试对象概要设计中的模块与模块间的组合详细设计的具体功能单元
接口与数据传递模块间接口与数据传递的关系,各单元组合后是否正常工作单元内部的数据处理与传递

集成测试与系统测试的区别:

集成测试系统测试
测试对象单元模块的组件测试软件整体功能之外,还包括硬件外设等的测试
测试时间位于单元测试与系统测试之间位于集成测试之后
测试方法黑盒/白盒相结合的测试方法通常使用黑盒测试方法
测试内容模块间的接口,组合后的模块功能整个系统的功能和性能
测试目的单元的接口间的错误,是否达到概要规格要求与系统需求是否吻合
测试角度开发人员的角度用户角度

集成测试与软件开发的关系: 集成测试是和软件开发过程中的概要设计阶段相对应的,而在软件概要设计中关于整个系统的体系结构就是集成测试用例输入的基础。

集成测试的桩模块与驱动模块

在这里插入图片描述
如上图的栗子。
测试B模块:
(1)利用Sd、Se(函数名、返回值与传递的参数相同)代替D、E,Sd、Se即为桩模块(Stub)。
(2)写一个Da代替A,包含main,在main中调用B,Da就是驱动模块(driver)。

集成测试策略

(1)非渐增式集合:大爆炸式的集成测试策略将所有的单元一下子全部集成在一起,所有人同时选择不同的接口进行集成测试。
(2)渐增式集成:将程序划分成小段来构造和测试,在这个过程中比较容易定位和改正错误。
  ·自顶向下集成(Top-Down Integration):从主控模块开始,沿着程序控制层次向下移动,用桩模块代替被主控模块调用的子模块,根据选定的策略(深度/广度),每次用一个实际模块代换一个桩模块,为了保证加入的模块没有引进新的错误,根据需要进行回归测试。
  ·自底向上集成(Bottom-Up Integration):自底向上测试是从软件结构最底层的模块开始组装和测试。因为是从底部向上结合模块,总能得到所需的下层模块处理功能,所以不需要桩模块。把底层模块组合成实现某个特定子功能的族,编写测试驱动程序,协调测试数据的输入输出,对该子功能族进行测试,然后去掉测试驱动程序,自底向上移动,把子功能组合成更大的子功能族。
  优点:不需要桩程序;同时由于涉及到复杂算法和真正输入/输出的模块最先得到集成和测试,可以把最容易出问题的部分在早期解决;自底向上增值的方式可以实施多个模块的并行测试,提高测试效率。
  缺点:“程序一直未能作为一个一个实体存在,直到最后一个模块加上去后才形成一个实体。”即最后才接触到主要的控制模块。
  ·三明治集成(Sandwich Integration):是一种混合增量式测试策略,综合了自顶向下和自底向上两种集成方法的优点。桩模块和驱动模块的开发工作都比较小,不过代价是在一定程度上增加了缺陷的定位难度。
  优点:它将自顶向下和自底向上的集成方法有机地结合起来,不需要写桩程序,因为在测试初自底向上集成已经验证了底层模块的正确性。
  缺点:在真正集成之前每一个独立的模块没有完全测试过。

系统测试

概念: 将经过集成测试的软件、硬件、操作人员看作一个整体,在实际运行环境下对计算机系统进行的一系列严格有效的测试。
目标: 与系统的需求规格说明进行比较,检查存在不符合或矛盾的地方,从而验证系统的功能和性能等满足规格说明所制定的要求。
从层面分析:
用户层:界面的规范性、友好性、可操作性、系统对用户的支持、数据的安全性。
应用层:模拟实际应用环境对系统的兼容性、可靠性等测试,包括并发性能测试、负载测试、压力测试、强度测试、破坏性测试。
功能层:是否实现需求规格说明中定义的功能、功能之间是否存在类似的共享资源访问冲突的情况。
子系统层:对产品内部结构性能的测试。
协议/指标层:针对系统所支持的协议,进行协议一致性测试和协议互通测试。
系统测试的类型: 功能测试、协议一致性测试、性能测试、压力测试、容量测试、安全性测试、失效恢复性测试(断电后重新开机是否可正常启动、数据丢失情况)、备份测试(失效时数据备份的能力)、GUI测试、健壮性测试、兼容性测试(对其他系统的兼容性)、易用测试、安装测试、文档测试、在线帮助测试、数据转换测试。

GUI测试设计测试用例:
(1)划分界面元素,并根据界面的复杂性进行分层(三层,一界面原子层,二界面组合元素层,三一个完整的窗口)。
(2)不同层次确定不同的测试策略。
(3)进行测试数据分析,提取测试用例。
(4)使用自动化测试工具进行脚本化工作。
健壮性测试:
容错测试,出故障时是否能自动恢复或忽略故障运行,一般方法为:软件故障插入测试,关注三个方面:目标系统、故障类型和插入故障的方法。

系统测试的流程: 系统测试计划->用例设计(黑盒)->预测试->测试执行->回归测试->测试报告。

链接测试

测试内容:

  • 链接是否按指示那样确实链接到了应该链接的页面。
  • 链接的页面是否存在。
  • 保证web网站上没有孤立的页面,所谓孤立的页面是指没有链接指向该页面,只有知道正确的URL地址才能访问。
  • 检测并修复死链接是网站维护和优化搜索引擎的基本工作之一。

链接测试工具: Xenu
可以打开一个本地网页文件或输入任何网址来检查,可以分别列出网站的活链接以及死链接,也可以分析转向链接,支持多线程,可以把检查结果存储成文本文件或网页文件,生成链接报告以及两份网站地图(site map)。
使用方法:
File->Open URL->OK->默认启动30个线程。
可通过Option->Preference调整线程数(1-100)。

表单测试

表单 指进行数据提交操作的页面,主要负责数据采集功能,如注册页面。

表单基本组成部分:

  • 表单标签
  • 表单域:文本框、密码框、隐藏框、多行文本框、复选框、单选框、下拉选择框和文件上传框等。
  • 表单按钮:提交按钮、变位按钮和一般按钮。

输入框测试:
长度、数据类型、必填、重复、空格、sql注入及一些业务相关约束。
下拉框测试:
默认值、数据完整性/正确性、第一个/最后一个/中间一个选取、手动输入值模糊匹配、联动选择、业务常见选取的操作。
图片、视频、Excel、txt等文件上传测试:
大小、尺寸、格式、数量、文件内容规则验证。
表单提交按钮测试:
是否支持回车/单击、快速多次点击是否重复提交表单、网络中断(弱网)提交、提交之后是否会有提示、提交内容是否加密、提交是否做权限校验控制、多人针对表单同时操作的场景测试。
搜索测试:
任意单个条件查询:正常输入搜索、模糊搜索、超长搜索、不存在与之匹配的条件、为空。
任意两个组合查询:验证两个组合的所有情况,确保正确性。
三个组合查询:选2-3组三种组合测试,不需要测完全部组合。
全条件组合:确保最大组合的正确性。
默认条件:补充默认条件查询用例。
翻页功能:
上一页、下一页、总页数、指定跳转页验证(边界值分析)、非数字、空。

测试点

表单域部分:
1.文本框
 1.1字符型
 ·必填项非空校验:必填项未输入--程序应提示错误;必填项只输入若干个空格,未输入其他字符--程序应提示错误;
 ·字段唯一性校验:(不是所有字段都作此项校验):新增时输入重复的字段值--必须提示友好信息;修改时输入重复的字段值--必须提示友好信息;
 ·字段长度校验:输入[最小字符数-1]--程序应提示错误;输入[最小字符数]--OK;输入[最小字符数+1]--OK;输入[最大字符数-1]--OK;输入[最大字符数]--OK;输入[最大字符数+1]--程序应提示错误。
 ·字段为特殊字符校验:输入域如对某些字符禁止输入时,限制是否成功,提示是否友好;中文、英文、空格、数字、字符、下划线、单引号等所有特殊字符的组合;所有特殊字符都必须进行测试;
 ·字段为特殊代码校验:输入html代码,比如"你好"--必须以文本的形式将代码显示出来;输入JavaScript代码,比如"<param name="MoveWindowWidth" value="320">"--必须以文本形式将代码显示出来。

界面测试

易用性测试:
(1)易见 Ease to discover:单凭观察,用户就知道设计的状态以及该设备可供选择采取的行动;
(2)易学 Easy to learn:不通过帮助文件或通过简单的帮助文件就可以对产品有清晰的认知;
(3)易用 Easy to use:用户不用翻阅手册就能使用软件;
导航测试;图形测试;内容测试;整体界面测试;

安全性测试

概念: 提升IT产品质量,在发布前找到安全问题予以修补,以降低成本;验证安装在系统内的保护机制能否在实际应用中对系统进行保护,使之不被非法入侵,不受各种因素干扰。
测试内容:
(1)目录测试:每个目录下应该有index.html或main.html页面,这样就不会显示该目录下的所有内容;
(2)SSL套接字测试:很多站点使用SSL进行安全传送,进入一个SSL站点是因为浏览器出现了警告消息,而且在地址栏中的HTTP变成HTTPS,如果开发部门使用SSL,测试人员需要确定是否有相应的替代页面(适用于3.0一下版本的浏览器,这些浏览器不支持SSL),当用户进入或离开安全站点的时候,请确认有相应的提示信息,是否有连接时间限制,超过时间限制后出现什么情况;
(3)登录验证:验证系统,阻止非法的用户名/口令登录。用户登录次数是否有限制?是否限制从某些IP地址登录?如果允许登录失败的次数为3,在第三次登录的时候输入正确的用户名和口令,能通过验证吗?口令选择有规则限制吗?是否可以不登录而直接浏览某个页面?Web应用系统是否有超时限制,也就是说,用户登录后在一定时间内没有点击任何页面,是否需要重新登录才能正常使用?
(4)日志文件:注意验证服务器日志工作正常,日志是否记所有事务处理?是否记录失败的注册企图?是否记录被盗信用卡的使用?是否在每次事务完成的时候都进行保存?记录IP地址吗?记录用户名吗?
(5)脚本语言:脚本语言是常见的安全隐患,每种语言的细节有所不同。有些脚本允许访问根目录,其他值允许访问邮件服务器,但经验丰富的黑客可以将服务器用户名和口令发送给他们自己,找出站点使用了那些脚本语言,并研究该语言的缺陷,测试没有经过授权,就不能在服务器端放置和编辑脚本的问题。

兼容性测试

兼容性测试(Compatibility Test Suite)简称CTS,包含浏览器兼容性测试、分辨率兼容测试、操作系统web兼容性测试、APP兼容性测试(不同设备型号,可使用第三方工具:百度众测平台和云测平台)、连接速率测试(网速)。

验收测试

又称交付测试,软件配置审核,可执行程序测试。
验收测试顺序为:文档审核->源代码审核->配置脚本审核->测试程序或脚本审核->可执行程序测试

系统测试验收测试
执行系统测试以测试软件的端到端功能执行验收测试以测试软件是否符合规定的要求和用户要求
只有开发人员和测试人员才能执行系统测试可以由测试人员、利益相关者和客户执行
可以是非功能性和功能性测试只能是功能测试
在系统测试中,可测试整个系统的性能在验收测试中,测试系统是否符合要求
系统测试使用由测试团队选择的演示输入值验收测试使用用户提供的实际实时输入值
在此测试中,包括完整规范的测试,包括软件和硬件,内存和用户数量测试软件是否满足用户的所有需求
系统测试是系统测试和集成测试的组合验收测试是alpha测试和beta测试的组合
在验收测试之前执行在系统测试后执行
系统测试涉及非功能测试下的负载和压力测试验收测试涉及功能测试下的边界值分析、等价分类和决策表
系统测试中发现的缺陷认为是固定的验收测试中发现的缺陷视为产品故障
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值