武汉15期赵甘露 发表于 2022-4-20 20:05:35

第一天和第二天笔记

什么是软件测试?
软件测试就是找出软件当中的缺陷(BUG),验证软件的正确性,减少公司风险.
需求测试:需求是由客户提出.由公司当中的产品经理进行汇总用户的需求,进行绘制需求文档,以及原型图.
需求测试的对象:
需求文档:主要描述项目当中所需要实现的功能
需求原型图:可以更直观表达用户所需要的功能可以直接进行操作
需求会议进行评审(产品经理组织):

怎么开展需求测试?依据原型图,或者是需求文档展开检查
1.需求文档当中是否有语句不通顺的地方
2.是否存在逻辑错误的地方
3.是否满足用户的需求

需求测试达到怎样的目的:
所有项目组成员,对这个理解是一致的,这个需求文档是可以执行,需求当中功能我当前公司的技术是可以支持的

界面测试
界面是由谁设计的?    ui设计师进行设计输出高保真图
界面测试如何进行开展:
测试人员在获取到高保真图之后进行页面检查高保真图跟我实际软件项目的界面进行比对检查
文案测试:
        1.字体
        2.字号
        3.错别字
        4.字母大小写检查
               
图片测试:
        1.图片的清晰度
        2.图片的尺寸
        3.图片的配色风格
               
键盘的快捷键测试:
        1.是否跟系统的指令进行冲突
        2.是否可以使用当前的快捷键
               
布局测试:
        1.界面的布局排版的顺序
        2.功能位置是否合理

功能测试
什么是功能测试?
功能测试也叫做:黑盒测试,指的是针对程序外部功能的检测不会涉及到底层的功能代码
        除了黑盒子测试之外还有:
        1.白盒测试:
        也叫做透明盒子测试 ,也称单元测试.是针对底层代码的检测.(白盒测试)它是由开发开发
        完代码之后自己针对所写的代码进行检查.)
        2.灰盒测试:
        灰盒子测试也叫做接口测试(API测试).接口主要用来链接关联两个不同的功能.主要测试发起调用接口,是否可以使用其他模块的功能
       

怎么进行功能测试?
        针对程序外部功能检测,通过输入一些指令,来观察程序的运行状态.
       
功能测试的核心点:
        1.需求文档当中功能是否实现.
        2.我当前的业务功能是否可以正常的运行.

安全测试
属于专项测试--->由公司当中的安全人员来执行测试.
安全的测试的方法:
xss攻击,sql注入.防灌水.
我们目前只能通过功能的角度来保证用户的安全:
1.用户隐私安全,信息泄露.

可用性测试
当前的软件是否可以正常使用.
可靠性测试
可靠性测试主要是检查软件在规定的时间或者某项特俗的要求下,可以完成规定事务.
可靠性测试是包含可用性测试.
可用的产品他不一定可靠.
可靠的产品他一定可靠.

可移植性测试
在公司当中软件有不同的运行环境: 开发环境:开发编译代码的环境.
测试环境:开发开发代码完成之后,他会将开发代码部署在测试环境,提供给我们测试人员进行测试.测试人员检测软件测试的环境.
       
预发布环境:配置比较高的环境,模拟线上生产环境,一些使用数据都是模拟线上的用户.
       
生产环境:用户正式使用的环境.又称线上环境.
       
可移植性测试: 就是在不同的环境当中来运行我们当前的软件项目,来看下环境是否会导致产生bug.一些环境的硬件配置也会导致软件失效.

兼容性测试
软件的兼容性测试该如何进行?
浏览器兼容测试:在不同的浏览器运行软件项目,是否能够成功运行:火狐,IE uc 谷歌
        pc端的系统兼容测试:
                mac,windows,linux,unix
        不同的系统版本兼容检测:
                windows不同的版本:win11 win10 win7
                linux不同系统版本:乌班图,red had,centos
      不同手机品牌: 苹果,华为,小米,vivo,oppo
        不同的手机系统:ios 安卓 鸿蒙
        不同的系统版本:ios15 ios14 ios12 ios10安卓10 安卓8
      不同的手机屏幕:刘海屏,曲面屏,折叠屏
易用性测试:
来检查我们当前开发出来的软件到底符不符合用户的
使用习惯
性能测试
            1.压力测试:
施加一定的压力,来观察软件的原型状态.
            2.负载测试:
负载测试是突破临界值,不断的向这个软件施加压力:
            3.并发测试:
好比如抢票软件,在同一时间节点,用户统一访问当前的
系统.来查看我当前服务器的处理能力.
测试人员通过以上这些测试策略进行执行测试,找出软件当中缺陷
,测试人员只需要找出BUG,不需要自己修复bug,谁开发的功能就提交
给谁进行修复.


软件测试工作当中的专业术语
        软件与硬件:
        软件分两种:
        应用软件:通过下载使用的
        系统软件:系统自带的软件
        硬件:
电脑,鼠标,键盘.
        pc机:个人电脑
        物理机:性能和配置比较高的电脑,我们称之为物理机
        便携机:一般工程类人员使用比较多,使用寿命比较久,
        外形比较坚固,也是电脑
       
OS:操作系统的缩写.
       
dos命令与图形化界面:
                win建 + R 输入cmd 呼dos命令行窗口:
               
                ping :来查看网络是否畅通
                ipconfig:查看本机的ip地址
                切换磁盘:通过磁盘名称加上冒号进行切换磁盘
                        d:
                dir : 显示当前路径下面的所有目录以及文件
                执行文件的指令,直接通过文件名称驱动
                cd :执行目录的操作,通过cd进入当前目录
                cd ..: 返回上一层级
                cd ../..: 返回上上级目录
                cd /: /代表最开始的目录.返回最开始的目录
               
        共享:
我将一件事物知情权或者使用权分享给你,这种情况
叫做共享.
       
备份:把原有的文件进行复制留存.叫做备份
        文件与文件夹:
                文件:是可以进行执行操作的(应用程序,照片,文档,视频,
音频)
                文件夹:在我们it行业将文件夹称为目录.文件夹是用来
归置文件的.
       
目录与路径:
                目录指的是文件夹
                (关键点)
路径
                        绝对路径: 用/表示绝对路径,一层一层的去找目标
文件
                        相对路径: ./表示相对路径,是从当前位置出发找对
应的文件.
                       
d:武汉多测师/武汉15期/教室2/file.txt
               
相对路径:
当我处在了中间任意一个节点.我不需要从最开始的地方
                一层一层的进入最终打开我的目标文件-->file.txt
               
D:\武汉多测师\武汉15期> 当前位置
                如果我当前已经处在中间路径当中任意一个节点,我可以
从当前路径出发,找到目标文件 从武汉15期这个位置出发
                找到目标文件-->file.txt
       
       
浏览器与服务器:browser(浏览器) server(服务器)
        指定的b/S架构的产品:通过浏览器与服务器交互
       
        客户端与服务器:client(客户端) server(服务器)
        这种架构叫做c/s架构:客户端与服务器进行交互
       
        面试问题(你测试过那种架构的产品?)
        你觉得c/S架构和b/s架构具体有那些区别?
b/S架构:
                1.浏览器与服务器交互的模式
                2.不需要下载安装升级等操作,直接通过域名或者ip
                就可以访问我们的项目
                3.b/S架构一般服务器配置要求比c/S架构要低
                4.b/S架构的产品一般安全性较低
c/S架构:
                1.客户端与服务器进行交互。
                2.需要进行下载安装升级等操作.
                3.服务器要求配置比较高
                4.安全性相比b/S架构要安全
                5.产品易用性比b/s要高
                6.占用手机系统的内存
单机软件与共享软件
                单机软件是不需要进行链接网络的.
                共享软件是在网络的情况下实现资源共享的软件.
项目与项目需求:
               
项目:项目可以理解为一个工程:具体一般是由产品的名称
进行命名
               
项目需求:
                        1.项目需要达到那种程度
                        2.项目的人员安排.
                        3.项目所需要完成的时间.
这些都可以称为项目需求.
       
      客户与客户需求:
                客户:指的是发起需求的人.
                客户需求:客户提出的要求,叫做客户需求
项目角色:
                项目经理:PM (project manager) 工作职责:
统筹整个项目组,负责当前项目的进度.
               
产品经理: 工作职责:对接客户,收集客户需求,
编写需求文档,以及绘制原型图
               
UI设计师: 工作职业:负责我们软件界面外观的
设计.
               
开发经理: 通过所有的开发人员,负责当前项目
组的开发进度.
               
开发人员:
手机端:ios 开发 安卓开发 鸿蒙开发
小程序开发
                                
pc:前端开发:负责前端界面的开发工作
                后端开发:开发我们的业务逻辑开发
                开发组长:
管理不同的开发小组的成员,负责项目任务
跟进、以及分配
                测试经理: TPM (test project manager):管理所有
                测试人员,以及跟进项目的测试进度
               
测试组长:TL (test leader) 负责当前项目的测试
工作,分配具体的任务,管理当前项目进度
                测试人员:TE (test enginer) 测试人员,负责测试当前
项目,跟进项目进行,减低公司风险
                运维人员:负责当前公司网络,以及我们测试环境和线上
环境的维护工作.
               
dba:数据库管理员: 负责公司当中数据维护,以及数据开

               
架构师:负责当前项目系统架构设计.
               
常见的测试工程师的疑问?
        学完之后对应的岗位:
                学习完成之后出去面试对应的都是中高级别的软件测试
                1.软件测试工程师
                2.自动化测试工程师
                3.接口测试工程师
                4.测试开发工程师
               
要学习那些内容?
                第一个月:测试的基础理论.linux系统学习,测试方法的
                学习,mysql数据库学习.项目实战.
               
第二个月:html超文本标记语言,python基础课程,python
                自动化课程(web自动化课程,app自动化课程,接口自动化
课程),postman,jmeter做接口测试,以及性能测试.
               
剩下的半个月:滚固前两个月课程,以及常见的面试问题讲
解,简历的包装,面试技巧
       



为什么要测试?
1.软件的正常运行(软件一些操作是逆向的)或其自身的缺陷BUG会引发很多问题
2.软件是由代码和文档组成,由人设计和编写,人有可能犯错
3.环境也会影响软件,出现软件失效.不同环境,服务器配置及其他硬件配置都存在差异
4.软件测试活动是关键质量保证活动之一:1.产品经理:尽可能将用户需求梳理正确保证文档正确性
                                                               2.开发人员:开发代码的质量
                                                               3.测试人员:最后一道关卡 保证产品质量
   
测试用例:由测试人员执行测试的依据

软件生命周期的阶段
1.客户的问题引入定义: 产品经理引入客户需求
2.可行性分析:1.技术: 我当前项目组开发技术可不可以支持项目开发工作
                         2.经济:当前我组项目资金能不能支持项目组运作/ 开发出来的产品是否具有一定经济价值
                         3.政治:符合政治要求
                         4.法律:不涉及黄赌毒
3.项目招投标
   项目组拟建公告,吸引有资质的公司来承担公司当中一部分开发公布做 例:微信视频 朋友圈 支付 聊天
4.项目立项
1.成立项目组2.招人制定计划 分配任务.
5.需求分析
项目组所有成员,针对产品经理输出的需求文档进行分析了解
6.开发阶段
设计:设计我们当前系统的开发框架
开发:编码 实现需求当中的功能
测试:针对开发完成的产品进行检查测试
7.维护
1.正式推送用户使用
2.维护工作 对接客户
软件的开发模型




瀑布模型:在1970年提出,开发模式由上到下阶梯进行,每个阶段任务完成代表下阶段任务开始.
缺点:测试行为在末尾阶段,很难在前期引入些问题,一旦后期出现需求方面会导致返工工作量大.
优点:1.适用大型项目管理2.清晰表达了软件开发的全部过程
使用瀑布模型的要求:1.需求稳定不会出现频繁需求变更   
V模型:

1.用户需求:   产品经理对接客户收集客户需求
2.需求分析:分析的对象:需求文档,需求原型图.产品经理会召开需求评审会议,会议产品经理讲述需求文档中的一些功能点进行评审,看讲述过程中是否存在需求模糊的地方,以及需求矛盾的地方,以及当前是否可以实现该功能
3.概要设计: HLD开发人员设计 主要涉及系统的开发框架,以及服务器 数据库等相关设计工作,然后输出相关文档
4.详细设计: LLD开发人员设计主要设计项目中子节功能点的设计工作,业务功能逻辑的设计
5.编码阶段: 开发人员根据文档进行开发代码的工作
6.单元测试(白盒): 开发完代码后,进入单元测试,检查所有代码,运行代码有没有问题
7.集成测试: IT 也叫组装测试,把所有开发开发好的功能集中在一起进行测试
                   第一种:模块与模块组装对接(例:支付模块聊天模块朋友圈模块集中一起进行对接测试)
                   第二种:系统与系统组长对接(例:美团对接微信支付/支付宝支付/银联系统支付

8.系统测试:ST针对当前系统所有功能进行详细检查,包含功能下所有子节点,以及相关细节进行检查.
                   包含的测试行为: 需求测试界面测试功能测试 兼容性 安全性测试 可靠/可用测试 移植性 性能测试 易用性
9.验收测试: UAT
                   1.阿尔法α: 由公司项目组员工进行验收测试,开发,产品,测试都会在场,进行验收这个产品是否合格,是否达到用户使用标准,有无BUG
                   2.贝塔β: 由客户进行验收,测试完后,将产品交付给客户进行验收,后续跟进用户反馈问题做整
<<V模型输入与输出关系>>
输入:需求分析   输出:概要设计
输入:概要设计   输出:详细设计
输入:详细设计   输出:开发编码
输入:开发编码   输出:单元测试
输入:单元测试   输出:集成测试
输入:集成测试   输出:系统测试
输入:系统测试   输出:验收测试
其实也是瀑布模型的衍生,测试阶段还是在开发编码之后,这个模式会导致一旦出现需求变更或者是重大问题的时候,返工工作量较大,它是第一个注重测试行为的开发模型,将测试行为划分为4个阶段(单元测试 系统测试 集成测试 验收测试)
优点:1. 清晰表表达全部部开发过程,便于控制每一个开发过程的任务进度
         2.将测试行为具体细化(单元测试 系统测试 集成测试 验收测试)
         3.每个阶段的行为都有参考依据,同时,它还是一个串行结构模型,每个测试节点都可以参考对应串行节点内容
缺点:1. 测试行为依然在开发编码结束之后,前面很难在需求分析引入一些问题.
         2.后期如出现需求变更,或重大问题,导致返工工作量增加.
W模型:

把测试阶段提到需求分析进行同步介入工作.每个对应阶段执行对应的测试
优点: 1.测试行为伴随整个开发周期
          2.开发和测试进行并行,可以很好掌握开发测试进度
缺点: 1.对测试人员技能要求较高
          2.有些项目根本不会产生概要设计/详细设计文档. 就导致了无法按照W模型去走

H模型:















项目和产品的区别:项目一般会以产品进行命名
项目和版本的区别:一个项目包含多个版本
敏捷开发模型:

没有具体模型展示图,在1990年提出,开发周期短,能快速适应市面上需求变动。
敏捷开发模式1-2周一个版本功能   1.快2.强调研发部门沟通协调能力,在敏捷开发模式当中不会产生实质的文档
缺点:1.虽然开发周期短,与预示着测试覆盖的功能不全面,会导致一些问题
         2.对开发/测试要求高
增量开发模型:

一个项目中当需要开发 聊天 支付 朋友圈 小程序 视频号 我不是一次性将所有功能交付给客户,我会先发布一个聊天功能给用户先使用,接下来的功能开发,按照我们当前用户需要紧急程度,划分我后面功能的开发优先等级.
优点: 1.将所有已知功能模块化,分批次交付给用户,客户可以了解我们当前软件开发进度.
          2.开发顺序灵活,能够自由调整开发顺序,可先开发一些稳定的模块.
迭代开发模型:

不像瀑布模型一样非常庞大/完美是一个阶段一个阶段实现部分功能,最终迭代完成后交付给用户一个完善的产品.
1.开发周期短,每个阶段的的成果都可以迅速交付给客户
2.降低产品风险,指定工作计划进行推进,在推进过程中可以结合一个阶段用户反馈的文件进行细化和优化产品.
迭代和增量开发模型的区别: 迭代过程阶段我是未知的,我是根据用户不断反馈来完善产品.增量是我已知的工作,按模块划分交付给用户
测试的基本原则:测试不单单是软件本身的测试
1.服务器2.数据是否正确3.APP手机物理硬件配置4.网络情况


测试的准入阶段:介入测试条件
                        1.开发完成编码,完成单元测试
                        2.需求中规定所有功能都可以实现
                        3.基本的主体功能流程畅通,界面的功能已全部实现
                        4.开发组向测试组提交(测试申请单)以及相关服务,数据配置好后,测试人员介入测试.
软件外在没有失效,并不代表软件是用的.
       
穷尽测试是不可能的.
        针对条件组合情况,只是挑选几条测试组合情况进行
测试.
二八原则:
百分之80的错误都会集中出现在百分之20的区域当中
针对出现问题比较多的模块,我们测试人员应该更加
仔细的检测.一个问题的出现会导致新的问题的出现.
        杀虫剂效应:
当前新开发好功能模块,执行以前的测试用例去排查
问题,找到问题的几率为零.我们需要根据新的版本去
更新新的测试用例.
        测试活动依赖测试对象:
                关注界面
                关注功能
                关注性能
                关注兼容性
关注的点不一样,发先的问题也是不一样.我们应该在
早期测试计划当中就制定好所有的接测试测试策略,来
保证全方位的测试覆盖度.
在项目开始时,就应该制定好软件质量标准.
有了质量的标准,那么我们所测试出来的结果,才能够正
确的分析产品的质量,进行评估.
        测试分析与设计:
                分析:分析需求文档以及对应的生成的开发文档
                设计:设计的是测试用例
        测试的实现与执行:
                执行测试用例--->提交测试出来的问题--->修复bug
--->验证bug ---->关闭bug
               
        测试报告(测试的准出):
        1.开发完成编码,完成单元测试.
        2.需求当中规定所有功能都已经实现
        3.所有的测试用例都以及执行通过
        4.输出测试报告:
       测试过程当中的资产归档(测试总结)
        1.辅助测试工具进行归档
        2.此次测试过程当中所有测试用例
        3.此次测试所产生bug
        4.测试总结
                此次测试过程当中所产生的问题(bug)
                项目组流程问题.

页: [1]
查看完整版本: 第一天和第二天笔记