admin管理员组文章数量:1542757
软件测试
预期结果与实际结果做对比的过程
预期结果:朋友说的;需求说明书;生活经验总结,通过使用同类大量产品。
软件测试的分类
测试方法
- 黑盒测试:把系统看作是一个不透明的盒子,不知道系统的内部结构,只能根据外部功能,通过输入和输出方式检查,判断软件功能表现是否符合预期。注意:输入指的是操作,不只指输入框打字,比如音量增加键。
- 白盒测试:把系统看作是一个透明盒子,能够清楚地看到其内部结构,通过代码进行检查,一般开发阶段由开发人员及进行测试。
- 灰盒测试:结合白盒、黑盒手段,及检查内部结构也操作外部功能。比如:接口测试。
测试阶段
- 单元测试:对开发的代码、模块、函数进行测试的过程,属于白盒测试。
- 集成测试:通过软件的接口实现集成,对软件接口进行测试,接口没问题,集成后就没问题。属于灰盒测试。
- 系统测试:对软件的整体进行测试,属于黑盒测试。
- 验收测试:领导或甲方进行验收,测试进行辅助。
测试内容
- 功能测试:对软件功能进行测试
- 性能测试:
- 前端性能:包含网站加载速度,APP打开速度。
- 后端性能:不同情况下,后端的响应速度。通过模拟很多人的操作,观察服务器的资源的变化和响应速度。目的是去发现测试的性能瓶颈。包含有负载测试,并发测试,压力测试。
- 安全测试:目的是防止黑客攻击。包含有DDOS攻击,SQL注入,暴力破解,弱口令扫描,漏斗扫描,渗透测试。
- 可靠性测试:检查软件在特定、极端的情况下,能否正常工作。比如:电脑断电,系统是否能自动备份;电脑从任务资源管理器中关闭,会不会自动重启。
- 兼容性测试:测试被测软件能不能在不同平台上正常运行,一般在软件测试的最后阶段进行。分为web兼容性测试和app兼容性测试。
- web兼容测试:指在不同浏览器上运行,简单进行判断能不能正常操作,正常显示运行。
根据市场占有率,并且要选择浏览器最近的几个稳定版本。
浏览器:谷歌,edge, QQ,360,火狐,搜狗,safire - app兼容测试
- android的app
不可能把市面上所有的手机都测一遍,一般根据市场占有考虑,手机品牌,屏幕形状,分辨率,系统版本综合考虑。 - ios的app
ios的手机系统很封闭,一般覆盖最近的三个ios版本即可。
- android的app
- 实际中
web兼容性测试:下载浏览器,进行测试;
app兼容性测试:- 有钱公司:买手机 / 租手机 / 云测平台TestBird
- 一般公司:提供机台测试机 / 用自己手机测 / 公司内部众筹 / 网络众筹(测试交流群,反馈测试报告)
- web兼容测试:指在不同浏览器上运行,简单进行判断能不能正常操作,正常显示运行。
- 易用性测试:用户体验测试,我们站在用户的角度使用软件,看软件好不好用(主观性很强)
- 学习成本:越低越好,最好任何人打开软件就知道怎么使用。
- 操作步骤:越少越好,有冗余步骤要精简。
- UI/界面测试:看软件的界面好不好看
- 有设计图:就直接对照设计图检查软件,是不是一样的,不一样提出,
- 没有设计图:主管审美判断->风格是否一致,错别字,图标风格是否一致
- 弱网测试:测网站在不同网络下的表现是否正常。不同网络:2G/3G/4G/5G+WiFi,现在一般测4G、5G、WiFi。
- 过程:直接让设备连接对应网络 / 模拟出不同网络->通过把网速调整到对应网络的网速即可。
- 模拟:可通过网络软件进行设置、用抓包软件进行限制、用路由器进行设置。
- 稳定性测试
- 前端:连续操作,看有没有问题。连续:连续2h一直操作,随机操作。问题:卡死、闪退。
- 后端:7*24h长时间运行有没有问题。
- APP专项测试
- 安装、卸载、更新测试
更新测试:低版本到高版本(可)、高->低(不可)、同版本更新(不可) - 权限测试:若关闭权限,比如相机权限,其他功能不影响使用,提示不能用,并引导打开权限。
- 场景交互测试:不同APP之间切换,后台进行切换,突然电话进来,小窗分屏模式的情况。
- 离线测试:断网情况下,观察APP表现是否正常。
- 资源争用测试:同时启用QQ音乐和网易云音乐,争用扬声器,判断有无提示或能否争赢。
- 资源监测测试:APP性能测试,检查APP在使用时,对电量、流量、CPU、内存、硬盘的占用。判断资源消耗是否在合适范围内。
- 安装、卸载、更新测试
测试对象
- APP、web、小程序
- 游戏、大数据、AI测试
- 物联网、车联网
测试状态
- 静态测试:不运行,比如UI测试;直接对代码检查。
- 动态测试:正在运行的功能测试。
测试手段
- 手工测试:啥都能干
- 自动化测试:功能测试可以使用代码进行
其他测试
- 埋点测试:是辅助测试的一种手段,将结果放大,便于测试,需要开发协助。
- 打桩测试:MOCK=打桩 辅助我们进行程序开发的一种手段
- 在开发的时候,可能后端接口没准备好,前端没有接口拿来用,利用MOCK技术,做一些假的接口,先使用,这样不会影响前端开发的技术。
- 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运维、沟通技巧 - 测试左移的作用:
版权声明:本文标题:软件测试初级测试之测试基础 内容由热心网友自发贡献,该文观点仅代表作者本人, 转载请联系作者并注明出处:https://m.elefans.com/dongtai/1727078208a1096552.html, 本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。
发表评论