广州天河45期城 发表于 2022-7-31 19:49:48

初入,测试的大概框架讲解7/26

第一、什么是软件测试?    就是为了测试对应功能是否符合需求/预期,在过程中发现缺陷并给与反馈修复。
测试又分为下面几个板块,分别是:
需求测试:甲方爸爸提出自己对于产品的需求,以及功能的讲解,说明这个产品需要实现什么功能。


界面测试:检查页面元素是否缺失,内容是否有误,排版有无问题等。

功能测试:测试对应软件是否可以实现该功能,是否符合需求。

安全性测试:属于一直专项测试,例如信息安全,在登录界面对于密码是否会展示还是隐藏成*号展示等。又区分可用性测试与可靠性测试。
a可用性测试:这个功能可以使用,但是使用会出现什么后果不确定,例如:例如一个升降机可以载人上下运行,但什么时候运行,上下的速度多快则不确定。
b可靠性测试:产品功能按照需求的指标内进行运行这个功能。例如:升降机在XX重量内,打开电梯门XX秒内关闭,一层楼的上升或者下降时间是XX秒内完成等在规定指标内完成这个运行的动作。         
c.得出结论:可靠包含可用,可用不一定可靠。原因可见上方分析


可移植性测试:当前软件在不同硬件的环境下是否可以使用。

兼容性测试:软件在不同的软件环境下都可以正常使用(系统兼容、浏览器兼容)

易用性测试:用户可以非常简单的使用(一般是结合界面测试一起做的)

压力测试:属于性能专项测试内的一种,简单理解就是突破他的极限,找到临界值。例如电梯测试则慢慢从低到高测试到最高的承重临界值。例如浏览器在同时段支持多少用户进行操作使用等。


负载测试:产品的功能在接近临界值,持续运行一段时间

2.对于系统结构的认知,与两者的优劣之处
客户机与服务器(C/S架构):
1.需要下载客户端;
2.需要更新客户端(例如微信或者王者荣耀等属于需要下载客户端);
3.用户相对少,但安全性较高;
4.对于服务器可以减轻压力(有部分操作客户端可以直接处理,无需占用公司的服务器资源);
5.上传与下载速度快。



浏览器与服务器(B/S架构):
1.直接通过浏览器访问(例如淘宝,仅需要在浏览器输入网址即可);
2.不需要用户进行更新;
3.用户相对多,安全性较低;
4.对服务器的性能要求高(因用户在浏览器上的操作全部都是给与服务器处理);
5.上传与下载速度慢(举例:理论上在网页端使用优酷看视频没有客户端看视频更快,因为大家的操作都是给到服务器处理后再弹射会给到用户。如果是客户端则会占用到本地的电脑或者手机的资源配置进行处理一部分指令,相对而言会更快)。


3.关于测试与开发的项目人员结构
一个项目的生成来源于客户提出自己对于某个产品的理念或者功能需求,经过项目经理与产品经理的确认产品功能的合理性,可实现性与合法性后会生成项目,并出具对应的需求文档,进行开展项目。       对应项目人员结构如下:
1.项目经理:统筹整个项目,安排项目组的各个成员
2.开发经理:管理开发人员,技术指导
3.开发人员:编写代码
4.测试经理:管理测试人员,技术指导
5.测试工程师:测试对应功能是否符合需求/预期
6.产品经理:负责分析需求,整理需求
7.需求分析师:负责协助产品经理需求分析
8.运维:负责软件的运行环境,开发环境,测试环境,验收环节等公司环境维护,对于项目软件包的发布和部署
9.   UI设计人员:画图,负责高保真图根据产品经理的需求制作对应的图文
10. DBA数据库管理员:对于项目的数据库进行维护
软件测试更多是为了验证是否满足客户的需求以及达到客户的预期。


4.什么是测试
制造业的定义:以检验产品是否满足需求为目标
软件行业的定义由多种说法:
a.验证软件的正确性
b.发现软件中的缺陷
【带着批判性的思维进行工作,软件是会出现缺陷的,只是我没有发现罢了】

“发现软件中的缺陷”的3种观点:
1.测试是为了证明程序有错,需要编写对应的测试用例/测试案例testcase(TC):描述功能,显示操作步骤,预知预期结果,通过设计测试场景,描述执行步骤,检查步骤的实际情况是否满足预期结果
2.一个好的测试用例:在于它能发现以前未发现的错误,个人的提升在于不断提升自己的技能,向身边的大佬学习
3.一个成功的测试:能发现前所未有的错误的测试


软件生命周期的概念
软件生命周期的别称:软件生存周期或软件开发生命周期。
指的是软件从产生到报废的整个过程,是一种时间的概念。
例如目前苹果手机出到苹果13,但是苹果公司可能已经构思苹果15或者16的生产构思测试等情况。从开始构思苹果15到此机型停产的过程,称之为生命周期


5、通常软件生命周期包裹那些阶段
1.客户的问题引入或定义:产品经理与客户拍定需求
2.可行性分析(设计经济,商业论证)政治法律,技术等等判断是否合理,是否可开发
3.项目招标投标:找人开始做了,找对应折扣优惠的公司开干
4.项目立项:项目经理开始盘点需要什么人员以及数量。例如多少开发,多少测试,多少运维,以及外部门沟通等,例如低俗喜剧内的杜汶泽这个监制的角色
5.需求分析:产品需求说明书,给与项目内所有人员知悉该项目是需要的什么功能以及预期
6.开发阶段:(设计,编程,测试)想好产品的功能模块.例如建一个房子,什么人员使用,对于房间功能的使用,需要几个房间等等。开发负责建房子,测试负责房子是否可以符合到产品需求或客户的要求,如无异常等待客户进行验收。
7.维护:在一定的质保期内,需要一定的运维人员进行维护。


6、典型的软件生命周期模型有哪些
V形模型:(了解每个阶段以及每个阶段产生的文档)将测试阶段拆分为多个阶段。http://bbs.duoceshi.cn/forum.php?mod=image&aid=35268&size=300x300&key=3b80c286dfc2e91a&nocache=yes&type=fixnone
步骤1与2可结合。步骤的7与8可结合

1.需求说明:分析需求规格说明书,在公司通过会议的方式去澄清需求中的问题。
准入条件:【对于客户的需求进行分析】。准出条件【需求规格说明书】-产品经理
2.系统设计阶段:主要是考虑整个系统需要实现的功能
3.概要设计阶段:简称概设,将当前系统的功能进行划分,将相关的功能划分到对应模块便于开发。对模块与模块之间的通讯进行设计(例如注册模块的信息同步到登录模块)
准入条件:【需求规格说明书】。准出条件【概要设计说明书(概设说明)】-开发人员
4.详细设计阶段:简称详设,面向具体的功能需求模块进行设计里面的代码实现技术
准入条件:【概要设计说明书(概设说明)】。准出条件【详细设计说明(详设说明)】-开发人员
5.编码阶段:根据详设的要求去编写相关的代码
准入条件:【根据详设说明书编写代码】。准出条件【整个项目的代码包】-开发人员
6.单元测试阶段(unit test简称UT):主要测试具体模块中的代码,检查代码的实现是否满足详设的要求。这块的代码检查一遍是由开发人员进行测试(自测)
准入条件:【根据代码包进行代码检查】。准出条件【单元测试报告(自测报告)】-开发人员
7.集成测试(IT):由测试人员开始,将软件项目的所有模块拼接在一起,看看各自模块的运行情况,检查相关功能是否实现的概设的需求
8.系统测试:检查所有功能耦合在一起之后,整个而系统的业务是否可以完成。(常规集成测试和系统测试是在一起做的,成为系统集成测试【简称:SIT】也称为:功能测试)
准入条件:【根据测试用例进行测试】。准出条件【系统集成测试报告(功能测试报告)】-测试人员
9.验收测试(UAT):对于整个软件系统的业务进行测试有以下两种:
a.非正式验收:涵盖两种,α(alpha)验收测试:在公司内部组织一次验收活动,有开发和测试在场,发现问题现场解决。   β(beta)验收测试:由特定的用户进行验收,开发和测试都不在场,如有异常则统一反馈
b.正式验收:发布正式版本,由广大的用户进行使用。例如游戏的内测或者封测,有问题及时更改。
准入条件:【用户参与验收】。准出条件【验收测试报告】-用户/测试人员

E:\qq6DBF1C4B6EF0624881792786D7F887F5\b96e4a00196a4cef8c9b7b3b8c4c2e22\clipboard.png


E:\qq6DBF1C4B6EF0624881792786D7F887F5\5bf288fa127a441d9d93e02e69a98812\clipboard.png

E:\qq6DBF1C4B6EF0624881792786D7F887F5\5bf288fa127a441d9d93e02e69a98812\clipboard.png

V模型的缺点:
1)依然是一个串行的活动,前面阶段的问题只能在后期发现
2)测试介入的时间段较晚,在软件开发周期的编码之后才介入


H模型:属于常规公司用的比较广的模型,主要分为两个阶段:前期准备阶段、后期执行阶段
准备阶段:
1.进行需求澄清会议,由产品经理进行召开,一般参加人员有:整个项目组的中所有人员(产品经理、项目经理、开发组成员、测试组成员【看过需求文档后带着问题参与会议】)需求澄清会议结束之后,各方都无疑问,产品经理就输出一个【基线化】的需求文档。
基线化:不会再有大改动(支持小的改动,但需要通知项目中的所有人员)
2.准备工作期间测试的工作需要分析当前开发的概设与详设,为了深入的了解对应的需求
3.测试经理需要输出测试计划,对于测试人员的工作安排和测试方案(说明本次需求要求使用的测试技术)
4.测试人员编写测试用例,进行用例评审会议(分为组内评审与组外评审)
组内评审:交叉评审,组内人员相互检查对方所写的测试模块进行评审
组外评审:邀请项目成员进行评审,常规邀请是与当前项目相关联的测试人员与开发人员以及产品经理等。目的是为了了解我们测试对于本次项目需求的了解情况。
5.评审通过后,形成一个基线化的用例文档,测试经理将对应测试用例提交到相关的用例管理平台(testlink或者禅道)便于快速测试,分配给与对应的测试人员
6.搭建测试环境

执行阶段(开发进行转测操作、提测也叫转测试:开发将写好的代码进行打包,自测通过后提交给测试组进行测试,一般不会超过一天)
7.部署软件项目:需要运维的则运维做,没有运维的则由测试骨干执行、
8.冒烟测试:先测试整个软件主体,尝试主体功能是否可以运行。
(1)测试当前软件版本的主体功能与重要分支
(2)一般不会超过半天,小系统大约2小时左右可以完成。例如银行系统较大,大概2天
(3)如果冒烟测试不通过就进行版本驳回
面试题:冒烟测试的测试用例怎么进行挑选?(常规工作会经常遇到的)
答:选择与主体功能相关的用例以及用例级别较高的测试用例,例如软件重要分支
9.冒烟测试通过后购就会进入SIT1(第一轮系统集成测试、第一轮功能测试),一般SIT会进行3-4轮,如果时间比较紧急最起码也是需要进行两轮。
SIT1测试:选择全量的测试用例(和当前版本相关的所有测试用例,写了多少就测试多少)
SIT2/3测试:回归测试,也就是对于前面的SIT测试进行复测验证,主要选择的测试用例:
         ⑴上一轮出现过BUG的用例进行重新验证
         ⑵出现BUG的相关模块进行测试用例,因之前修改BUG后需测试是否会影响到这个相关模块
         ⑶每一轮都要进行主体功能的测试,避免主体功能无法使用。(每轮都需要进行冒烟测试)
         ⑷可以挑选自己觉得可疑的测试用例和测试场景。例如上一轮觉得勉勉强强感觉有点问题的
         ⑸选择补充的测试用例,面试题:为什么要补充测试用例?
答:因为开发过程,我们测试人员无法知悉最终开发的产品是否符合预期的,所以部分页面或者功能是在开发完成之后才看到的,这部分的页面或者功能可能会漏测的内容,为了避免漏测的情况,需要及时补充测试用例

10.在某个要求的上线时间点之前,完成测试,达到测试准出。输出测试报告,结束本个版本的测试。产品上线后结束当前版本的流程,进入下个版本。
测试准出标准:0 bug上线,当然也可以遗留1-2个建议性bug,遗留bug必须要在测试报告上说明,而且要明确在后续哪个版本进行修复。
11.整个测试周期中,每一轮的BUG数量应该呈现收敛的趋势。
12.回归测试分为以下两种情况:
a.SIT过程的回归测试,除了SIT1以为的测试豆角回归测试
b.SIT过程以外的回归测试,主要做系统回归(对于系统原有的业务,但是当前版本又没有修改的业务进行回归测试,目的是为了确保当前版本的修改没有影响到原有的业务实现)
13.在测试过程,执行测试用例时,分析一个bug就要及时地进行提交bug,叫做提单。(不要留到下班再统一提交,避免导致开发要加班修复。然后再给到测试复测,最终还是自己扑街。)


敏捷开放模型:一个短周期的H模型。特性就是:要加班,一般几天到一周就一个版本。目的就是为了快速的适应市场而进行的软件版本频繁更新。
1.重点明确。及时调整(为了快速适应,抢占市场,例如对手有了新功能用户比较喜欢,则及时更新调整)
2.倾听用户的声音,相信用户的直觉(面向用户的需求开发,例如小米ui基本天天刷论坛,按照用户需求开发)
3.勇于创新,小步快跑(持续且频繁的添加小功能,从而实现大功能)
4.持续不断地发现问题,从而解决问题(频繁迭代更新中保证主体功能无误,允许小问题出现但及时地修改)
5.持续提供团队的产品能力


7、测试的基本原则
1.测试的标准是用户需求
2.测试不仅仅是单纯的软件本身的测试,是否合法合规等情况
3.软件的外在没有失效(就是外观完好)不代表软件系统是可用的。
4.软件的完美度是没有完全正确的,测试只能保证软件更加的完美,更加正确。(因为开发与测试都是由人去做的,终究是不可能完美无缺的)
5.穷尽测试是不可能的(有些场景的组合条件非常多,所以穷尽测试是不可能的)尽可能的是测试重要的,保证主体可以正常运行
6.测试应该尽早的介入(早期引入的问题占比到整个问题数目的50%以上)好处如下:
A.需求的分析,让我们对于需求理解更加透彻,为后续的测试工作打好基础
B.确保产品、开发、测试各方对于需求的理解是一致的,避免后续软件开发错误的情况
C.可以降低项目延期的风险
E:\qq6DBF1C4B6EF0624881792786D7F887F5\54edc8f939ba4d10aa7658642f71cdd4\clipboard.png
9:对于不同的产品,在不同使用环境下对于什么功能会更加关注,例如电商活动的天猫,淘宝更注重在大促期间的产品性能问题,是否可以承载瞬时用户超量的客户访问。
10.对于测试用例可以交给第三方互相检测,看看是否有遗漏的情况。


8、测试活动的生命周期
第一步:测试工作的安排
第二步:对于本次测试的软件进行需求分期,设计相关的测试场景以及编写测试用例,用例的评审等
第三步:执行测试用例,场景找出软件中的BUG,并协助开发修复
第四步:达到测试准出后,输出测试报告,软件进行上线
第五步:对于前面的测试中产生的文档进行归档保存,做好测试总结。为了后续的测试提供参考(届时出现什么问题也方便溯源是哪个步骤出)


------------------------------------------------------------------------------------------------------------------------------------
以上就是第一次课堂的初步理解













页: [1]
查看完整版本: 初入,测试的大概框架讲解7/26