软件测试初级测试之测试基础

软件测试

预期结果与实际结果做对比的过程
预期结果:朋友说的;需求说明书;生活经验总结,通过使用同类大量产品。

软件测试的分类

测试方法

  • 黑盒测试:把系统看作是一个不透明的盒子,不知道系统的内部结构,只能根据外部功能,通过输入和输出方式检查,判断软件功能表现是否符合预期。注意:输入指的是操作,不只指输入框打字,比如音量增加键。
  • 白盒测试:把系统看作是一个透明盒子,能够清楚地看到其内部结构,通过代码进行检查,一般开发阶段由开发人员及进行测试。
  • 灰盒测试:结合白盒、黑盒手段,及检查内部结构也操作外部功能。比如:接口测试。

测试阶段

  • 单元测试:对开发的代码、模块、函数进行测试的过程,属于白盒测试。
  • 集成测试:通过软件的接口实现集成,对软件接口进行测试,接口没问题,集成后就没问题。属于灰盒测试。
  • 系统测试:对软件的整体进行测试,属于黑盒测试。
  • 验收测试:领导或甲方进行验收,测试进行辅助。

测试内容

  • 功能测试:对软件功能进行测试
  • 性能测试
    • 前端性能:包含网站加载速度,APP打开速度。
    • 后端性能:不同情况下,后端的响应速度。通过模拟很多人的操作,观察服务器的资源的变化和响应速度。目的是去发现测试的性能瓶颈。包含有负载测试,并发测试,压力测试。
  • 安全测试:目的是防止黑客攻击。包含有DDOS攻击,SQL注入,暴力破解,弱口令扫描,漏斗扫描,渗透测试。
  • 可靠性测试:检查软件在特定、极端的情况下,能否正常工作。比如:电脑断电,系统是否能自动备份;电脑从任务资源管理器中关闭,会不会自动重启。
  • 兼容性测试:测试被测软件能不能在不同平台上正常运行,一般在软件测试的最后阶段进行。分为web兼容性测试和app兼容性测试。
    • web兼容测试:指在不同浏览器上运行,简单进行判断能不能正常操作,正常显示运行。
      根据市场占有率,并且要选择浏览器最近的几个稳定版本。
      浏览器:谷歌,edge, QQ,360,火狐,搜狗,safire
    • app兼容测试
      • android的app
        不可能把市面上所有的手机都测一遍,一般根据市场占有考虑,手机品牌,屏幕形状,分辨率,系统版本综合考虑。
      • ios的app
        ios的手机系统很封闭,一般覆盖最近的三个ios版本即可。
    • 实际中
      web兼容性测试:下载浏览器,进行测试;
      app兼容性测试:
      • 有钱公司:买手机 / 租手机 / 云测平台TestBird
      • 一般公司:提供机台测试机 / 用自己手机测 / 公司内部众筹 / 网络众筹(测试交流群,反馈测试报告)
  • 易用性测试:用户体验测试,我们站在用户的角度使用软件,看软件好不好用(主观性很强)
    • 学习成本:越低越好,最好任何人打开软件就知道怎么使用。
    • 操作步骤:越少越好,有冗余步骤要精简。
  • UI/界面测试:看软件的界面好不好看
    • 有设计图:就直接对照设计图检查软件,是不是一样的,不一样提出,
    • 没有设计图:主管审美判断->风格是否一致,错别字,图标风格是否一致
  • 弱网测试:测网站在不同网络下的表现是否正常。不同网络:2G/3G/4G/5G+WiFi,现在一般测4G、5G、WiFi。
    • 过程:直接让设备连接对应网络 / 模拟出不同网络->通过把网速调整到对应网络的网速即可。
    • 模拟:可通过网络软件进行设置、用抓包软件进行限制、用路由器进行设置。
  • 稳定性测试
    • 前端:连续操作,看有没有问题。连续:连续2h一直操作,随机操作。问题:卡死、闪退。
    • 后端:7*24h长时间运行有没有问题。
  • APP专项测试
    • 安装、卸载、更新测试
      更新测试:低版本到高版本(可)、高->低(不可)、同版本更新(不可)
    • 权限测试:若关闭权限,比如相机权限,其他功能不影响使用,提示不能用,并引导打开权限。
    • 场景交互测试:不同APP之间切换,后台进行切换,突然电话进来,小窗分屏模式的情况。
    • 离线测试:断网情况下,观察APP表现是否正常。
    • 资源争用测试:同时启用QQ音乐和网易云音乐,争用扬声器,判断有无提示或能否争赢。
    • 资源监测测试:APP性能测试,检查APP在使用时,对电量、流量、CPU、内存、硬盘的占用。判断资源消耗是否在合适范围内。

测试对象

  • APP、web、小程序
  • 游戏、大数据、AI测试
  • 物联网、车联网

测试状态

  • 静态测试:不运行,比如UI测试;直接对代码检查。
  • 动态测试:正在运行的功能测试。

测试手段

  • 手工测试:啥都能干
  • 自动化测试:功能测试可以使用代码进行

其他测试

  • 埋点测试:是辅助测试的一种手段,将结果放大,便于测试,需要开发协助。
  • 打桩测试:MOCK=打桩 辅助我们进行程序开发的一种手段
    1. 在开发的时候,可能后端接口没准备好,前端没有接口拿来用,利用MOCK技术,做一些假的接口,先使用,这样不会影响前端开发的技术。
    2. MOCK是开发阶段,测试需要做准备工作,例如,写用例,熟悉需求。
  • 灰度测试:代码放到预生产环境进行测试。
  • 全链路测试:根据业务流程,把所有的接口串起来,测试一遍。
  • 回归测试:去检查之前开发的bug开发有没有修改。
  • 冒烟测试:测试前的测试过程,检查软件是否有可测试性。若业务流程不通,闪退、崩溃则不通过。

环境

  • 开发环境:给开发用的运行代码的环境,开发在此环境检查代码有没有问题。
  • 测试环境:给测试人员用的软件运行的环境,开发将写好的代码交给测试,测试在服务器上进行运行。
  • 预生产环境:测试人员测试好后,将代码给到对应的同事,同时在进行运行查看效果,
  • 生产环境:给正式的用户使用,比如我们使用的淘宝,微信。 注意:不要在生产环境中做测试

互联网公司的人员结构

  • 项目经理:最高项目负责人,对人员、时间、进度、质量负责。
  • 产品经理:和测试同级别,项目需求收集和整理。
  • 开发:前端开发和后端开发。
  • 测试
  • 运营:软件上线后,吸收用户使用,手机用户反馈。
  • 运维:公司环境、公司设备进行管理和维护,类似公司网管。
  • UI:根据产品需求画设计图。

软件的研发流程

  • 项目经历组建团队
  • 前期准备:
    产品收集需求,整理成合适的文档;
    开发调研,选择合适的框架;
    测试,运维,设计摸鱼;
  • 需求确认:
    开发和所有人确认需求,能不能实现,开需求评审会议;
    开发、测试提出问题,产品解答问题,对不合理的需求进行更改;
    确认项目的安排时间;
  • 编码阶段:
    后端开发写代码,UI设计根据需求画图,前端根据设计图写代码;
    测试做需求分析和测试设计,进一步去细化需求;
    运维准备相关服务器或其他资源;
  • 测试阶段:
    运维准备测试环境,并且管理和维护测试环境;
    测试根据测试设计的内容执行测试;
    开发修改测试提出的bug,进行持续迭代;
  • 上线:
    运维准备预生产环境;
    测试再次确认没有问题;
    运维将代码系统发布到生产环境;
  • 运营:
    运营收集用户的反馈和问题;
    测试分析反馈和问题;
    产品和开发解决反馈和问题,软件再次迭代升级;

软件的测试流程

  • 需求分析阶段
    目的:搞清楚软件有什么功能,每个功能预期结果
    需求表现形式:原型图、需求文档、口述(建议录音)
    方法: (若有不清楚的找产品)
    1.熟悉需求,多看几遍,大概知道软件是怎么用的。
    2.根据需求的业务流程去画业务流程图 ProcssOn
    3.提取需求功能点,画思维导图,找出系统上的最小功能。
  • 测试设计阶段
    测试组长/经理:写文档,测试计划,测试方案,测试策略
    测试:写测试用例,做测试准备。
    (测试计划:时间、地点、人物、成本等东西进行描述。
    测试策略:那些需要做,哪些不需要做,先坐后做,说明理由)
  • 测试执行阶段
    去具体做软件测试,回归测试,迭代测试
    1.确认测试环境-问有没有搭建好环境,有:直接用,没有:自己搭建
    2.执行测试
    3.记录、跟踪、管理bug
    4.迭代:版本迭代(开发)、测试迭代(测试)
    测试迭代(增量+自动化=全量)
    - 全量测试:在每次测试时,除了回归测试,还需要把整个软件完整测一遍。
    - 增量测试:软件功能越来越多,越来越大,则需对开发修改后的或新增的内容进行测试,做增量测试时,引入自动化测试手段,帮覆盖原来已经稳定的功能。
  • 测试总结阶段
    对测试做总结工作:工作总结、Bug统计和分析、软件质量评估。

软件的测试模型

  • 敏捷流程
    敏捷流程不是一个具体的测试方法,是一个测试的管理方式
    目的:提高工作效率
    1.把一个完整的项目拆分为很多个小的项目,针对每个小项目执行经典流程。
    好处:可以很快看到软件做出的效果
    2.集中办公,提高沟通效率
    3.开早会(站立会),明确知道每个人工作状态,进度,负责的工作具体是什么
    4.看板,把每个人所做的工作和进度都直接在看版上体现,要找人配合合作,可以一目了然。

  • 测试左移与测试右移
    做测试目的是为了保证质量,软件质量不仅存在于开发阶段,项目所有流程都会提高软件质量。
    -左移:需求分析、编码、版本迭代
    1.需求分析:在软件整理需求时,测试参与进去,设计需求时,参与其中
    2.编码:引入代码走查阶段(白盒测试),编码阶段,发现问题,及时纠正
    3.版本迭代:开发可进行自己发版,当开发提交新代码,测试第一时间收到通知,测试下载,编译成软件(尽可能避免人工操作,引入持续集成平台)

    • 测试左移的作用:
      1.在更早环节去发现问题,减少修改的成本
      2.让效率变得更高,节约时间成本
      3.精通需求,懂代码,掌握持续集成的知识点

    -右移:灰度发布(发布到预生产环境中,进行检查)、上线监测项目运行状态、反馈和问题
    测试右移需要掌握,持续集成,自动化,系统监测、linux运维、沟通技巧

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值