软件测试基础第二天
1.

2.金字塔模型
第一层:功能测试 UI自动化测试
第二层:接口测试
第三层:单元测试
3.测试对象:程序最⼩模块的测试,如程序⾥⾯的⼀个⽅法或者是⼀个函数的内部逻辑
测试⼈员:⽩盒测试⼯程师,开发⼯程师,测试开发⼯程师
测试依据:代码内部程序逻辑和开发注释
测试⽅法:⽩盒测试,根据不同编程语⾔有对应的测试框架,如Java⾥⾯的Junit和TestNG框架,Python⾥⾯的 UnitTest和Pytest测试框架。
测试内容:模块接⼝测试,程序内部逻辑,路径分⽀测试,局部数据结构测试,错误处理测试,边界测试。
4.集成测试:
集成测试,是把单个模块的程序集成到一起后的测试,集成测试主要要来验证各个模块集成后模块与模块之间的功能性,以及各个模块集成后的功能流程性和逻辑兼容性的测试。
测试阶段:⼀般单元测试之后进⾏。在企业⾥⾯,开发各⾃开发完各⾃的模块后,就会和其他程序员之间进⾏模块 的联调测试和验证模块集成后的逻辑和模块⻅的接⼝验证。
测试对象:模块间的接⼝
测试⼈员:测试开发⼯程师
测试依据:单元测试的模块和概要设计⽂档
测试⽅法:⿊盒测试与⽩盒测试相结合
测试内容:模块之间的数据传属,模块之间功能冲突,模块组装功能正确性、全局数据结构、单模块缺陷对系统的 影响
5.系统测试
将软件系统看成是⼀个系统的测试。包括对功能、性能以及软件所运⾏的软硬件环境进⾏测试。时间⼤部分在系统 测试执⾏阶段来验证被测程序的整体性的功能。
测试阶段:集成测试通过之后
测试对象:整个系统(软件以及涉及到的硬件)
测试⼈员:⿊盒测试⼯程师,功能测试⼯程师
测试依据:需求规格说明⽂档,以及产品的PRD⽂档
测试⽅法:⿊盒测试,功能⾃动化测试
测试内容:功能、界⾯、可靠性、易⽤性、性能、兼容性、安全性等
6.测试流程
测试完成——>发邮件通吃产品经理——>产品经理收到邮件——>接受完成——>回复邮件
测试完成——>进行上线
7.验收测试
验收测试是部署软件之前的最后⼀个测试操作。它是技术测试的最后⼀个阶段,也称为交付测试。总结验收测试的 ⽬的是确保软件准备就绪,按照项⽬合同、任务书、双⽅约定的验收依据⽂档,向软件购买都展示该软件系统满⾜ 原始需求。⼀般在外包型的公司中,验收 测试是由甲⽅参与的⼀种测试⾏为。在互联⽹公司中,验收测试是测试团 队在某⼀个版本测试完成后,发送验收测试邮件,由产品团队进⾏的⼀种测试⾏为,产品参与验收测试的⽬的主要 是验证⻚⾯UI的布局展示,产品的交互以及交互逻辑是否满⾜对⽅设计的需求,经过产品验收测试完成后,会开始 ⾛上线的OA流程。
8.按照查看代码方式
a.黑盒测试:
基于通俗的理解就是程序是⼀个盒⼦,我们看不见里面的任何东西,我们对它进⾏测试。⽐如⼀个蛋糕,我们只看 ⻅它外观的东⻄,但是⾥⾯具体是什么,我们也是不清楚,我们看到的只是外⾯的东⻄。所以⿊盒测试因为看不⻅ 程序⾥⾯的东⻄,所以更多的是功能层⾯的测试,⽐如还是拿刚才的案例来说,针对⼀个蛋糕,我们更多来验证它 的外观设计的是否合理,它编写的祝福语是否存在错别字等等。
例子:加入加入信息 你输入名字跟年龄有输出就算成功不用查看代码
b.灰盒测试:
灰盒测试是介于⽩盒测试和⿊盒测试之间的⼀种测试,对测试的能⼒要求是能够进⾏很好的业务测试,也能够使用代码对程序员的代码进行测试,同时能够参与开发代码的评审和代码走查。
c.白盒测试:
⽩盒测试更多是基于代码层⾯的测试,也就是说站在测试开发的⻆度上可以看见,结合开发的程序代码,测试来编写代码来 测试程序内部的逻辑是否合理,这些测试就包含了针对程序判断逻辑,判断分⽀,判断循环,程序流程⾛向的测 试。⽩盒测试是⼀种⾼技能的测试。对测试的技术⽔平要求是⽐较⾼的。
例子:要进行代码的观看 查看逻辑是否正确
9.按测试编写代码分类
a.⼿⼯测试
⼿⼯测试就是由⼈去⼀个⼀个的入测试⽤例,然后观察结果,和机器测试相对应,属于⽐较原始但是必须的⼀个 步骤。手工测试⼜叫功能测试,或者说是业务测试。
它的特点主要为:
优点:⾃动化测试是⽆法替代⼈的测试的⾏为模式的,也⽆法替代探索性的测试
缺点:执⾏效率慢,影响测试交付的效率
b.⾃动化测试
⾃动化测试就是通过编写代码(使用工具)的方式来替代模拟人的一种行为方式来对系统进⾏的⼀种测试。⾃动化测 试⼜分为UI⾃动化测试,API⾃动化测试,性能⾃动化测试。⼀般性说的⾃动化测试⼤多数时候指的是UI⾃动化测 试和API⾃动化测试。
10.软件质量
描述当前软件是否好⽤,在当前的软件⾏业⾥我们所采⽤的⼀套标准是基于 ISO 组织 制定的。需要我们记忆的就 是软件质量的六⼤特性:
功能性:软件需要满足用户显式或者稳式的功能。
易⽤性:软件易于学习和上⼿使⽤。
可靠性:指的就是软件必须实现需求当中指明的具体功能。
效率性:类似于软件的性能。
可维护性:要求软件具有将某个功能修复之后继续使用的能力。
可移植性:当前软件可以从⼀个平台移植到另⼀个平台上去使用的能⼒。
11.软件测试的⼈⼯检查
保证表达式、SQL语句的正确性:检查所编写的SQL语句的语法、逻辑的正确性。对表达式应该保证不含⼆义 性,对于容易产⽣歧义的表达式或运算符优先级(如:<、=、 >、 &&、||、++、 --等)可以采⽤扩号“()”运算 符避免⼆义性,这样⼀⽅⾯能够保证代码的正确可靠,同时也能够提⾼代码的可读性。
12软件的分类
⼤体上可以分为三⼤类: 系统软件,应用软件git gitlab postman jemeter,中间件pedis kafka rabbitMQ(介于系统软件和应⽤软件之间的,开发会使⽤到)
13.测试术语
冒烟测试:冒烟测试目的是确认软件基本功能正常,冒烟测试的执⾏者是 版本编译⼈员。

探索性强调测试⼈员的主观能动性。
安全测试:XSS攻击SQL主入。目前安全测试更多的聚焦于渗透测试这部分。
回归测试:回归测试是指修改了旧代码后,重新进⾏测试以确认修改没有引入新的错误或导致其他代码产生错误。
14.在测试中需要进行几次测试

基本上只有两轮测试 如果再第二轮还是有bug和代码的缺失再次进行测试。
15.如何做软件的需求分析
为什么要做需求分析?
软件测试需求是设计测试用例的依据。
有助于保证测试的质量和进度。
软件测试需求是衡量测试覆盖率的重要指标。
16.软件测试的需求分析步骤



浙公网安备 33010602011771号