测试文档整理.docx
《测试文档整理.docx》由会员分享,可在线阅读,更多相关《测试文档整理.docx(14页珍藏版)》请在冰豆网上搜索。
![测试文档整理.docx](https://file1.bdocx.com/fileroot1/2023-2/17/af95eafc-3cee-4a77-864b-cfca8eec1019/af95eafc-3cee-4a77-864b-cfca8eec10191.gif)
测试文档整理
测试流程:
根据需求文档和原型图编写测试计划和测试用例,提测开始执行测试用例,提交bug,开发人员修改,回归,上线
测试用例:
测试编号,模块,测试功能点,测试类型,测试步骤,预期结果,实际结果。
Bug记录了哪些内容:
标题,步骤,级别,指派给谁,附件
Bug生命周期:
提交,确认,分配,修复,验证,关闭。
测试结束标准:
基本功能全部实现,测试用例全部执行完毕,bug列表bug基本关闭。
需求测试注意事项有哪些:
完整性,正确性,一致性,可行性,必要性。
一:
单元测试、集成测试、确认测试、系统测试、验收测试
在开发过程中,都要经过由小到大、由内至外、循序渐进测试过程,根据不同的测试阶段可以分为:
单元测试、集成测试、确认测试、系统测试、验收测试
1,单元测试(UnitTesting)
单元测试又称模块测试,是针对软件设计的最小单位(模块)进行正确性检验的测试,检查每个程序模块是否实现了规定的功能,保证其能正常工作。
测试重点:
(1)系统的模块,子程序的正确性验证等
(2)白盒测试
2,集成测试(IntegratedTesting)
集成测试是把已测试过的模块组装起来,对与设计相关的软件体系结构进行测试。
测试重点:
(1)把各个模块连接起来,模块接口的数据是否会丢失
(2)单独一个子模块的功能是否会对另一个模块的功能产生不利的影响
(3)各个子模块功能组合起来,能否达到预期的要求
(4)全局数据结构是否有问题
(5)单个模块的误差积累起来,是否会被放大从而达到不能接受的程度
(6)白盒测试+黑盒测试
3,确认测试(ConfirmTesting)
确认测试是检验所开发的软件是否满足SRD(SystemRequirementDocument)中定义的需求、性能要求,以及软件配置是否完全正确。
4,系统测试(SystemTesting)
系统测试是把通过确认测试的软件作为系统的一个元素,接入系统的实际运行环境中,与系统的其他部分(硬件、系统、数据库、第三方数据等)结合起来进行测试。
测试重点:
(1)整个系统运行的稳定性
(2)整个系统的兼容性
(3)是否符合“需求规格说明书”
(4)黑盒测试
5,验收测试(AcceptanceTesting)
验收测试是检验软件产品的最后一关,在这个环节,测试主要从用户的角度着手。
是一个确定产品能否满足合同/用户需求的测试。
二:
软件测试类型都有哪些?
这些不同的测试类型的区别与联系?
测试类型有:
功能测试,性能测试,界面测试
功能测试在测试:
也叫黑盒测试,需要测试软件产品的功能,测试用例的方法有:
等价类划分、边界值分析、错误推测、因果图法,场景分析法性能测试:
通过自动化的测试工具对系统的各项性能指标进行测试。
性能测试是通过自动化的测试工具模拟多种正常、峰值以及异常负载条件来对系统的各项性能指标进行测试。
负载测试和压力测试都属于性能测试,两者可以结合进行。
通过负载测试,确定在各种工作负载下系统的性能,目标是测试当负载逐渐增加时,系统各项性能指标的变化情况。
压力测试是通过确定一个系统的瓶颈或者不能接收的性能点,来获得系统能提供的最大服务级别的测试。
界面测试:
界面是软件与用户最直接交互,界面的好坏决定用户对软件的第一印象,影响用户体验。
区别:
功能测试关注产品的所有功能上,要考虑到每个细节功能,每个可能存在的功能问题。
性能测试主要关注于产品整体的多用户并发下的稳定性和健壮性。
界面测试更关注于用户体验上,用户使用该产品的时候是否易用,是否易懂,是否规范(快捷键之类的),是否美观(能否吸引用户的注意力),是否安全(尽量在前台避免用户无意输入无效的数据,当然考虑到体验性,不能太粗鲁的弹出警告),做某个性能测试的时候,首先它可能是个功能点,首先要保证它的功能是没问题的,然后再考虑该功能点的性能测试
三:
关于几种软件测试分类的方法
1按照对软件内部程序了解程度,可以分为:
白盒测试:
又称为结构测试或逻辑驱动测试,是一种按照程序内部逻辑结构和编码结构,设计测试数据并完成测试的一种测试方法。
灰盒测试:
是一种综合测试法,它将“黑盒”测试与“白盒”测试结合在一起,是基于程序运行时的外部表现又结合内部逻辑结构来设计用例,执行程序并采集路径执行信息和外部用户接口结果的测试技术。
黑盒测试:
又称为数据驱动测试,把测试对象当做看不见的黑盒,在完全不考虑程序内部结构和处理过程的情况下,测试者仅依据程序功能的需求规范考虑,确定测试用例和推断测试结果的正确性,它是站在使用软件或程序的角度,从输入数据与输出数据的对应关系出发进行的测试。
2按照程序的运行状态,可以分为:
静态测试:
指不运行被测程序本身,仅通过分析或检查源程序的语法、结构、过程、接口等来检查程序的正确性。
动态测试:
是指通过运行被测程序,检查运行结果与预期结果的差异,并分析运行效率、正确性和健壮性等性能指标。
3根据测试的阶段,可以分为:
单元测试:
针对每个单元的测试,以确保每个模块能正常工作为目标。
(多为开发人员自己进行)
集成测试:
对已测试过的模块进行组装,进行集成测试。
目的在于检验与软件设计相关的程序结构问题。
系统测试:
检验软件产品能否与系统的其他部分(比如,硬件、数据库及操作人员)协调工作。
验收测试:
检验软件产品质量的最后一道工序。
主要突出用户的作用,同时软件开发人员也应有一定程度的参与。
4根据测试的执行方式,可以分为:
手工测试:
就是测试人员按照编写的测试用例,与被测软件进行交互(如输入测试数据、记录测试结果等),查看看被测程序是否存在问题。
自动化测试:
用自动化测试工具来模拟手动测试步骤,执行用某种程序设计语言编写的过程。
5根据测试的类型,可以分为:
功能测试:
对软件需求规格说明书中的功能需求逐项进行的测试,以验证功能是否满足要求。
性能测试:
对软件需求规格说明书的功能需求逐项进行的测试,以验证功能是否满足要求。
兼容性测试:
验证软件在规定条件下与若干个实体共同使用或实现数据格式转换时能满足有关要求能力的测试。
安全测试:
检验软件中已存在的安全性、安全保密性措施是否有效的测试,
四:
web测试与APP测试之间的区别?
web项目,一般都是b/s架构,基于浏览器的,在WEB端是兼容浏览器,更新服务器就好了。
app功能测试则是c/s的,App测试基于手机设备,兼容的是手机设备。
还有一些手机设备的专项测试。
交叉事件测试,操作类型测试,网络测试(弱网测试,网络切换),升级提醒测试。
五:
测试用例设计方法。
等价类划分法,边界值法,错误推测法,场景分析法。
等价类划分:
把所有可能的输入数据划分成若干部分,然后从每一个子集中选取少数具有代表性的数据作为测试用例,该方法是一种重要的,常用的黑盒测试用例设计方法。
等价类划分可有两种不同的情况:
有效等价类和无效等价类。
有效等价类:
对于程序的规格说明来说是合理的,有意义的输入数据构成的集合。
利用有效等价类可检验程序是否实现了规格说明中所规定的功能和性能。
无效等价类:
与有效等价类的定义相反。
边界值分析法:
边界值分析方法是对等价类划分方法的补充。
输入和输出等价类的边界,就是应着重测试的边界情况,应当选取正好等于,刚刚大于或刚刚小于边界的值作为测试数据,而不是选取边界类中的典型值或任意值作为测试数据。
错误推测法:
列举出程序中所有可能有的错误和容易发生错误的特殊情况,根据他们选择测试用例。
例如,在单元测试时列出的许多在模块中常见的错误,以前产品测试中经常发现的错误等,这些就是经验的总结。
还有,输入数据和输出数据为零的情况;输入表格为空格或者输入表格只有一行,这些都是容易发生错误的情况,可选这些情况下的例子作为测试用例。
六:
web安全性测试用例
建立整体的威胁模型,测试溢出漏洞、信息泄漏、错误处理、SQL注入、身份验证和授权错误.
1. 输入验证
客户端验证服务器端验证(禁用脚本调试,禁用Cookies)
1.输入很大的数(如4,294,967,269),输入很小的数(负数)
2.输入超长字符,如对输入文字长度有限制,则尝试超过限制,刚好到达限制字数时有何反应
3.输入特殊字符,如:
~!
@#$%^&*()_+<>:
”{}|
4.输入中英文空格,输入字符串中间含空格,输入首尾空格
5.输入特殊字符串NULL,null,0x0d0x0a
6.输入正常字符串
7.输入与要求不同类型的字符,如:
要求输入数字则检查正值,负值,零值(正零,负零),小数,字母,空值;要求输入字母则检查输入数字
8.输入html和javascript代码
9.对于像回答数这样需检验数字正确性的测试点,不仅对比其与问题最终页的回答数,还要对回答进行添加删除等操作后查看变化
例如:
1.输入”gfhd,看是否出错;
2.输入,看是否出现文本框;
3.输入alert(“提示”)看是否出现提示。
关于上传:
1.上传文件是否有格式限制,是否可以上传exe文件;
2.上传文件是否有大小限制,上传太大的文件是否导致异常错误,上传0K的文件是否会导致异常错误,上传并不存在的文件是否会导致异常错误;
3.通过修改扩展名的方式是否可以绕过格式限制,是否可以通过压包方式绕过格式限制;
4.是否有上传空间的限制,是否可以超过空间所限制的大小,如将超过空间的大文件拆分上传是否会出现异常错误。
5.上传文件大小大于本地剩余空间大小,是否会出现异常错误。
6.关于上传是否成功的判断。
上传过程中,中断。
程序是否判断上传是否成功。
7.对于文件名中带有中文字符,特殊字符等的文件上传。
上传漏洞拿shell:
8.直接上传asp.asa.jsp.cer.php.aspx.htr.cdx….之类的马,拿到shell.
9.就是在上传时在后缀后面加空格或者加几点,也许也会有惊奇的发现。
例:
*.asp,*.asp..。
10.利用双重扩展名上传例如:
*.jpg.asa格式(也可以配上第二点一起利用)。
11.gif文件头欺骗
12.同名重复上传也很OK。
:
下载:
避免输入:
\..\web.
修改命名后缀。
关于URL:
1.某些需登录后或特殊用户才能进入的页面,是否可以通过直接输入网址的方式进入
2.对于带参数的网址,恶意修改其参数,(若为数字,则输入字母,或很大的数字,或输入特殊字符等)后打开网址是否出错,是否可以非法进入某些页面;
3.搜索页面等url中含有关键字的,输入html代码或JavaScript看是否在页面中显示或执行。
4.输入善意字符。
七:
app是否存在安全问题?
(1)用户隐私
∙检查是否在本地保存用户密码,无论加密与否
∙检查敏感的隐私信息,如聊天记录、关系链、银行账号等是否进行加密
∙检查是否将系统文件、配置文件明文保存在外部设备上
∙部分需要存储到外部设备的信息,需要每次使用前都判断信息是否被篡改
(2)文件权限
∙检查App所在的目录,其权限必须为不允许其他组成员读写
(3)网络通讯
∙检查敏感信息在网络传输中是否做了加密处理,重要数据要采用TLS或者SSL
(4)运行时解释保护
∙对于嵌有解释器的软件,检查是否存在XSS、SQL注入漏洞
∙使用webiew的App,检查是否存在URL欺骗漏洞
(5)Android组件权限保护
∙禁止App内部组件被任意第三方程序调用。
∙若需要供外部调用的组件,应检查对调用者是否做了签名限制
(6)升级
∙检查是否对升级包的完整性、合法性进行了校验,避免升级包被劫持
(7)3rd库
∙如果使用了第三方库,需要跟进第三方库的更新
八、http协议
概述:
超文本传输协议(HTTP,HyperTextTransferProtocol)是互联网上应用最为广泛的一种网络协议。
所有的WWW文件都必须遵守这个标准。
HTTP是一个客户端和服务器端请求和应答的标准(TCP)。
客户端是终端用户,服务器端是网站。
通过使用Web浏览器、网络爬虫或者其它的工具,客户端发起一个到服务器上指定端口(默认端口为80)的HTTP请求。
(我们称这个客户端)叫用户代理(useragent)。
应答的服务器上存储着(一些)资源,比如HTML文件和图像。
(我们称)这个应答服务器为源服务器(originserver)。
HTTP协议采用了请求/响应模型。
客户端向服务器发送一个请求,请求头包含请求的方法、URL、协议版本、以及包含请求修饰符、客户信息和内容的类似于MIME的消息结构。
服务器以一个状态行作为响应,响应的内容包括消息协议的版本,成功或者错误编码加上包含服务器信息、实体元信息以及可能的实体内容。
特点:
支持客户/服务器模式。
简单快速:
客户向服务器请求服务时,只需传送请求方法和路径。
请求方法常用的有GET、HEAD、POST。
每种方法规定了客户与服务器联系的类型不同。
由于HTTP协议简单,使得HTTP服务器的程序规模小,因而通信速度很快。
灵活:
HTTP允许传输任意类型的数据对象。
正在传输的类型由Content-Type加以标记。
无连接:
无连接的含义是限制每次连接只处理一个请求。
服务器处理完客户的请求,并收到客户的应答后,即断开连接。
采用这种方式可以节省传输时间。
无状态:
HTTP协议是无状态协议。
无状态是指协议对于事务处理没有记忆能力。
缺少状态意味着如果后续处理需要前面的信息,则它必须重传,这样可能导致每次连接传送的数据量增大。
另一方面,在服务器不需要先前信息时它的应答就较快。
总结:
以上就是http协议最基本的概述和特点,内容较多,且都比较难理解,以后的随笔会随之更新和http协议相关的技术内容。
二、状态码
众所周知,做web开发,常见的几种状态码是必须要了解的,而且几个状态码在面试中也有可能要考。
200
请求被成功接收
301
重定向:
永久跳转,完成请求还需要进一步操作
302
重定向:
临时跳转完成请求还需要进一步操作
304
没有修改过:
请求的内容没有修改过
403
客户端错误:
没有权限,拒绝访问
404
客户端错识:
所访问的页面不存在,错误页面
500
服务器内部错误,服务器未能实现合法请求。
九:
如何提交高质量的软件缺陷(bug)记录?
(1)唯一性,一个bug说明一个问题
(2)可重现。
提供这个bug的精确步骤,使开发人员容易看懂。
(3)一致性,bug描述及所有信息要前后一致,不可有歧义
(4)完整性。
最好能抓图,一目了然
(5)简洁性。
通过使用关键词,可以使软件缺陷的标题描述短小简练,又能准确解释产生缺陷的现象。
十:
验收测试
验收测试用来验证系统是否达到了用户需求规格说明书中的要求,保证系统或软件产品最终被用户接受。
主要包括易用性测试、兼容性测试、安装测试、文档测试等。
1)对产品说明书的验证,验证系统是否和产品说明书中定义的一致,虽然前面的测试也验证的规格说明书,但是验收测试对产品说明书的验证时最严格的。
如果软件有明确的用户,这时用户将会参与到验收测试中,按合同逐一检查。
2)用户界面和可用性测试,好的界面应符合这7个要素:
符合标准和规范、直观性、一致性、灵活性、舒适性、正确性和实用性。
3)兼容性测试:
主要是与硬件兼容、软件之间的兼容、数据之间的兼容。
4)可安装和可恢复测试5)文档测试
十一:
sql语句:
select列名称from表名称
select列名称from表名称where列运算符值(where语句)
insertinto表名称values(值1,值2)
inserinto表名称(列1,列2)values(值1,值2)(指定列中插入数据)
update表名称set列名称=新值where列名称=某值
deletefrom表名称where列名称=值
十二:
分页控件测试思路
(1)翻页链接或按钮的测试,主要要检查的测试点有:
有无数据时控件的显示情况;在首页时,首页和上一页是否能点击;在尾页时,下一页和尾页是否能点击4、在非首页和非尾页时,四个按钮功能是否正确5、翻页后,列表中的记录是否仍按照指定的排序列进行了排序
(2)总页数,当前页数,主要要检查的测试点有:
总页数是否等于总的记录数/指定每页条数;当前页数是否正确
(3)指定跳转页,主要要检查的测试点有:
是否能正常跳转到指定的页数;输入的跳转页数非法时的处理
(4)指定每页显示条数,主要要检查的测试点有:
是否有默认的指定每页显示条数;指定每页的条数后,列表显示的记录数,页数是否正确;输入的每页条数非法时的处理
十三:
一个纸杯涉及的测试点
测试项目:
杯子
需求测试:
查看杯子使用说明书
界面测试:
查看杯子外观
功能度:
用水杯装水看漏不漏;水能不能被喝到
安全性:
杯子有没有毒或细菌,检查水杯被破坏后,是否会造成使用者伤害
可靠性:
杯子从不同高度落下的损坏程度
可移植性:
杯子再不同的地方、温度等环境下是否都可以正常使用
兼容性:
杯子是否能够容纳果汁、白水、酒精、汽油等
易用性:
杯子是否烫手、是否有防滑措施、是否方便饮用
错误测试:
装载高密度固体
破坏测试:
检查水杯最大抗挤压和拉扯承受力
用户文档:
使用手册是否对杯子的用法、限制、使用条件等有详细描述
疲劳测试:
将杯子盛上水(案例一)放24小时检查泄漏时间和情况;盛上汽油(案例二)放24小时检查泄漏时间和情况等
压力测试:
用根针并在针上面不断加重量,看压强多大时会穿透
跌落测试:
杯子加包装(有填充物),在多高的情况摔下不破损
震动测试:
杯子加包装(有填充物),六面震动,检查产品是否能应对恶劣的铁路\公路\航空运输
测试数据:
测试数据具体编写此处略(最讨厌写测试数据了)。
其中应用到:
场景法、等价类划分法、因果图法、错误推测法、边界值法等方法
十四:
如果时间不够怎么测试。
1对于该项目的用途而言,哪种功能最重要?
2哪种功能对用户最明显?
3哪种功能对安全影响最大?
4哪种功能对用户最有用?
5对客户来说,该应用软件的哪个部分最重要?
6在开发过程中,该应用软件的哪个部分可以最先测试?
7哪一部分代码最复杂,容易导致出现错误?
8哪一部分的应用程序是在急迫或在惊恐的情况下开发出来的?
9哪一部分程序与过去项目中引起问题的部分相类似/有关?
10哪一部分程序与过去项目中需要大量维护的部分相类似/有关?
11需求和设计的那些部分不清楚或不容易读?
12开发人员认为在应用软件中哪些部分是高风险的?
13哪些问题能造成最差的发行?
为什么要在一个团队中开展软件测试工作?
软件没有测试就上线不知道这个软件的质量,这个时候就需要在团队中开展测试工作。
测试人员能尽可能发现并改正被测试软件中的错误,提高软件的可靠性。
您在以往的测试工作中都曾经具体从事过哪些工作?
其中最擅长哪部分工作?
曾经做过web测试,后台测试,客户端软件,其中包括功能测试,兼容性测试,界面测试,用户体验测试等。
最擅长的是功能测试