软件测试

发布时间 2023-05-04 16:50:13作者: 是程序喵哇
一、什么是软件测试?
测什么?----测软件
app端测试
web端测试
怎么测?----从哪些方面去考虑(测试维度)?
需求测试
a、需求的来源:产品规格说明书、客户(用户/软件项目的提出者)的诉求、产生的一些BUG(BUG转需求)、当下的政治环境,各种社会环境的影响
b、需求的提炼者:项目组中的产品经理,会把需求进行提炼和归档---需求规格说明书
 
1、功能测试(重点)---能不能用
是一切软件测试活动的基础,根据需求文档的要求进行分析,然后提炼出用例,进行测试
 
2、易用性测试---好不好用
在保证功能实现的基础上,我们对产品的易用性进行测试(字体大小、显示的位置、滚动条在页面的位置、窗口缩小后页面是否正常显示)
 
3、安全测试
用户的账户财产安全、用户登录时账号的安全、接口的sql注入
在项目组中是由专门的人员,团队去负责的,要求高,需要代码基础
测试内容:木马病毒、数据篡改、防火墙
 
4、可靠性测试
测试该产品在一定的条件下乃至规定的失效范围内,完成规定的功能
特点:可用的不一定是可靠的,但是可靠的一定是可用
      电脑的电量可以用多久
 
5、兼容性测试
系统兼容:
web端-----windows、linux系统
APP端-----安卓系统、iOS系统、鸿蒙
屏幕兼容:
web端-----16英寸、13英寸、台式电脑、笔记本电脑
APP端-----iphone13、iphone13Promax、没刘海、有刘海
网络兼容:
移动网络、联通网络、电信、wifi、热点
浏览器兼容:
谷歌浏览器、360、百度、UC、iE浏览器
版本兼容:
不同的版本不能造成功能的影响
 
6、可移植性测试
设计出的的一款软件,能不能移植到其他的平台上去使用
 
7、压力测试
是性能测试的一种,通过工具来模拟用户的操作,观察操作结果(响应时间、吞吐量、最大并发数、cpu、磁盘大小)
 
8、界面测试
又叫UI测试,指的是外观、肉眼可见的,最基础的测试
产品的UI界面是由UI设计师提供、提供的东西叫高保真、原型图
测试的工作主要是拿着高保真或者原型图,对着产品,找不同
针对一些我们觉得不合理、不符合审美的地方,我们都能提出来(提建议):文字大小、字体、错别字、颜色、图片中的命名与测试环境里的实际命名不一致、清晰度、风格、图片大小
 
 
二、IT常见的基本术语
DOS命令:
查看本机的ip地址:ipconfig
查看网址知否通畅:ping +网址   、 ping+ip地址
进入D盘:d:
返回上级目录:cd ..
返回上两级目录:cd ../..
创建一个文件夹(目录):md + 文件夹名
查看文件夹里面的内容
1、我已经在目录里面:dir
2、我不在目录里面:dir + 文件名 、路径
    例如:dir bb------》查看bb目录
          dir bb\bb1-----》查看bb文件夹里面的bb1文件夹里面的内容
进入一个目录:cd +目录名
              cd bb\bb1-----》进入bb目录里面的bb1目录
删除一个文件:del + 文件
删除这个目录里面的文件:del + 目录
清楚屏幕指令:cls
 
 
路径:
1、绝对路径---》从最初的起点到终点 C:\Users\Public\Downloads
2、相对路径---》从最初的起点到终点之间的一部分路径,通向终点  Public\Downloads
 
IT行业的两大架构:
客户机与服务器(京东,淘宝)
client  -- server   通过客户机去访问服务器、简称叫做C/S架构 (通过APP手机去访问服务器)
优点:方便快捷、功能多、稳定、上传下载的速度相对较快、比较安全不容易中病毒
缺点:APP需要下载安装耗流量,占内存,不能运行大型软件
 
浏览器与服务器(京东,淘宝)
browser -- server  通过浏览器去访问服务器、简称叫做B/S架构(打开chrome浏览器去访问京东)
优点:能运行大型的软件、服务器升级维护非常的容易
缺点:相对不安全容易中病毒,上传下载的速度相对较慢
 
项目组
入项----》进入项目组(入项负责人)
 
项目经理===》简称:PM 统筹管理整个项目组、管理测试经理和开发经理
开发经理===》管理开发人员、管理开发组长(开发责任田田主)
前端开发
后端开发
测试经理===》简称:TPM 管理测试组长和测试人员
测试组长
测试工程师66+.............................................................
产品经理===》管理产品人员(BA),对接用户和开发以及测试
         产品人员
运维人员===》CIE 维护开发环境、测试环境、生产环境
UI设计师===》简称UI 针对产品的界面或者测试需要用的高保真进行设计和输出
 
瀑布开发模型
0
为什么要测试? 
1.软件的非正常运行或其自身的缺陷(BUG)会 引发很多问题。 
2.软件是由代码和文档组成的,而这些都是由 “人” 来设计和编写的,人都有可能犯错。 
3.环境也会影响软件,以致出现软件“失效”现 象。 
4. 软件测试活动只是关键的质量保证活动之一
 
什么是测试?
a:验证软件的正确性 
b:发现软件中的缺陷
 
三种观点:
1.测试是为了证明程序有错 
2.一个好的测试用例:在于它能发现以前未发现的错误 
3.一个成功的测试:能发现前所未有的错误的测试
 
软件生命周期概念? 
软件生命周期别称:软件生存周期或软件开发生命周期指的是软件从产生到报废的整个过程,是一种时间的概念。
 
软件生命周期的阶段有哪些?
 
1、概念的产生(客户问题的引入或定义)
客户指的是什么-----a、产品的投资方(外包)
      b、生产方领导(自研公司)
                      c、用户(使用产品的人)
2、可行性分析(涉及经济(商业论证),政治, 法律,技术等)
3、项目招标投标
招标-----有钱没技术
投标-----有技术没钱
4、项目立项(招兵买马)-----成立一个项目团队
5、需求分析
6、开发阶段
      开发团队根据需求进行功能开发、接口开发
      测试团队要对开发的正确性进行验证、找BUG,回归BUG
      产品团队不断提炼需求,然后还会对功能进行验收
7、维护阶段
      对产品进行维护,查漏改缺
8、日落阶段
软件生命周期模型
根据项目组的特性,形成的项目组的工作流程
 
1、瀑布模型-----测试是从开发结束之后的阶段才开始介入工作的
系统需求-----软件需求-----分析-----程序设计------编码-----测试-----运行
(对测试人员的基本功要求比较高,涉及功能、接口、性能较多)
 
2、V模型-----测试是在开发之后进行的串行模式
用户提出需求-----产品对需求进行提炼-----开发概要设计------开发详细设计-----编码和实现------测试进行单元测试------集成测试------系统测试(针对的是产品提出的需求)-----验收测试
V模型总结:
输入  输出
 
对需求进行分析 需求规格说明书(SRS)
概要设计 概要设计说明
详细设计 详细设计说明书
编写代码                  代码包(.war或者.jar格式)
单元测试 单元测试报告
系统集成测试(sit测试)         系统集成测试报告(sit报告)
验收测试    验收测试报告(BA写的)
0
 
 
3、W模型-----是V模型的补充,测试除了要测开发完的代码,还要在每个环节对概要设计、详细设计进行测试,并且还要输出概要测试报告和详细测试报告(重点是每个环节都有文档的输出)
用户提出需求(验收测试准备)-----产品对需求进行提炼(测试经理输出测试计划)-----开发概要设计(输出概要测试计划)------开发详细设计(输出详细测试计划)-----编码和实现(转测)------测试进行单元测试(输出单元测试报告)------集成测试(输出集成测试报告)------系统测试(针对的是产品提出的需求)输出SIT报告-----验收测试(输出版本小结)
 
优点:测试尽可能早地参与到版本工作中来,尽早发现缺陷并进行修复,测试与开发既独立,又并行。
缺点:有的项目根本没有文档产生,对测试的技术要求很高,实现起来比较困难(例如:测开)
关键字解读:
1、单元测试(白盒):
unit test 一般情况下由开发人员自测(或者测开去实现)  单元测试又被称为白盒测试(透明盒子测试)
对程序的内部数据、内部结构和内部逻辑进行测试
 
2、集成测试(灰盒):
又称为接口测试(灰盒测试)
例如:QQ由5个单元模块组成===》给不同的开发和小组去实现,5个单元模块是通过接口进行集成的
 
3、系统测试:
保证自身系统功能正常使用、还要考虑与第三方(上下游)系统的对接
 
4、验收测试:
α(阿尔法)模拟用户的使用行为去使用我们的产品,客户和测试人员都在现场,如果发现了BUG,直接让开发进行修复(产品进行验收)----上线前的演练
β(贝塔)直接把产品交到客户手里,如果发现问题,客户会提单并抄送给项目组所有成员(生产问题)----上线后
 
H模型
1、项目和产品的区别
项目:例如:某某IT装备实施部、华为海思技术部门 (项目组)
产品:指的是项目里面的某个软件、一个项目里面可以包含多个产品,但是一个软件产品不可能存在于多个项目
2、项目和版本的区别
一个项目有多个产品,一个产品有多个版本
区别:项目是一个宏观的概念,但是版跟我们的日常工作息息相关,有版本迭代一定有项目,3但是有项目不一定有版本迭代
H模型:
1、SRS澄清(需求澄清)
产品召开需求串讲(开发和测试都参加)
开发团队:
HLD----概要设计
LLD----详细设计
测试团队:
了解需求,通过Xmind工具对需求进行分析
并且测试经理要输出测试计划(测试方案)
测试计划的主要内容:
1、本次参与版本的所有同事名单
2、需求的大致分配情况
3、交代这次测试准出的条件(要达到一个什么样的标准才结束测试)
4、这次测试的一个时间安排和时间节点
5、注意事项(针对版本里面的特殊需求)
2、开发反串讲(开发组织,测试和BA都参与)
开发团队:拿概要设计和详细设计进行需求反串讲(讲他对自己开发的这个功能的理解以及他的开发逻辑)
测试团队:对有疑问的地方进行提出,并且对自己的分析进行更新,并且可以生成用例
3、用例评审(测试组织,开发和BA都参与)
开发团队:编写代码
测试团队:对用例进行增删改查,上传到用例管理工具,等待开发提测
4、转测演示(show case)(开发组织,测试和BA都参与)
开发团队:发邮件申请转测
提交代码到测试环境
测试团队:回复转测邮件
申请部署环境
将需求由开发阶段改为测试阶段
5、进入SIT(系统集成)测试阶段
冒烟测试的概念:对版本的新增功能主流程进行测试(一般是挑选10%的测试用例进行测试)
开发团队:修复BUG
测试团队:执行测试用例,提BUG,回归BUG,输出SIT报告(达到测试准出----1、所有的用例执行完毕;2、所有的BUG关闭;3、交叉测试完成;4、SIT报告写完)
将发现的问题提交到BUG管理系统,提给对应的开发去解决,如果开发修复好了,测试要对BUG单进行回归验证,如果回归通过,就以“问题解决”关闭;如果回归不通过,那么将BUG打回给开发;如果这个问题经过团队讨论放在下个版本解决,测试就以“转需求”关闭;如果是重复问题单,就以“重复问题”关闭;如果是非问题,就以“非问题”关闭。
6、UAT(验收)阶段
产品对版本的新增功能进项验收,测试也配合产品一起进行全量测试,有问题提单
开发团队:锁库(上线前的锁库)
测试团队:编写上线用例.EXCEL(新增功能的主流程用例、对老功能的基础用例)
7、参与版本上线工作
开发团队:关注生产问题,解决生产BUG
测试团队:跟踪生产问题,分析BUG(如果是漏测,就要写漏测分析)
测试准入准出
测试的准入准出是指什么情况下可以开始当前版本的测试工作,什么情况下可以结束当前版本的测试工作。不同项目、不同公司的测试准入准出标准都会有所不同。下面介绍一些通用的测试准入准出标准。
测试准入标准如下
(1)开发编码结束,开发人员在开发环境中已经进行了单元测试,即开发人员完成自测。
(2)软件需求上规定的功能都已经实现。如果没有完全实现,开发人员提供测试范围。
(3)测试项目通过基本的冒烟测试,界面上的功能均已经实现,符合设计规定的功能。
(4)被测试项目的代码符合软件编码规范并已通过评审。
(5)开发人员提交了测试申请并提供了相应的文档资料。
测试准出标准如下
(1)测试项目满足客户需求。
(2)所有测试用例都已经通过评审并成功执行。
(3)测试覆盖率已经达到要求。
(4)所有发现的缺陷都记录在缺陷管理系统。
(5)所有遗留问题都有解决方案。
(6)测试项目的功能、性能、安全性等都满足要求。
(7)完成系统测试总结报告。
有时,在测试过程中可能会出现一些意外情况导致测试工作暂停,这个暂停并不是上述所说的测试结束,而是非正常的。测试中需要暂停的情况包括以下几种。
(1)测试人员进行冒烟测试时发现重大缺陷,导致测试无法正常进行,需要暂停并返回开发。
(2)测试人员进行冒烟测试时发现Bug过多,可以申请暂停测试,返回开发。
(3)测试项目需要更新调整而暂停,测试工作也要相应暂停。
(4)如果测试人员有其他优先级更高的任务,可以申请暂停测试。