1.软件测试是证明软件是正确的
2.软件测试是证明软件是错误的
3.软件测试是保证软件的质量符合用户需求的一系列手段
目前的阶段为第三个阶段。
测试主要分为三大类,分别是黑盒测试,白盒测试,灰盒测试。
黑盒测试:检查输入和输出
白盒测试:检查代码结构来检查功能
灰盒测试:介于上述两者之间,也可以说是同时运用
主要分为三大方向,分别是是功能测试,性能测试,安全测试。
功能测试占据了测试的大部分,使用方法基本为黑盒测试。
安全测试一般由专门的人员来负责,主要测试如SQL注入等。
性能测试可以分为压力测试,负载测试以及并发测试三个部分。
压力测试:是在一定的负荷条件下,长时间连续运行系统给系统性能造成的影响,发现软件性能的瓶颈。
负载测试:在一定的工作负荷下,给系统造成的负荷及系统响应的时间。负载测试的目标是确定并确保系统在超出最大预期工作量的情况下仍能正常运行
并发测试:多用户同时访问同一个功能
主要分为四个阶段,分别是单元测试,集成测试,系统测试,验收测试。
单元测试:检查各个模块(方法,函数,类)
集成测试:检查模块与模块之间,重点接口
系统测试:集成完成后的系统(功能,性能,兼容性(web,app),易用性(用户体验),稳定性(7*24不崩溃),UI…)
验收测试:是否满足用户的需求
测试进行的对象有多种多样,总体还是内味。
可以划分为,APP,WEB,物联网,车联网,小程序…虽然对象众多,但是核心还是一样的,区别在于业务流程的区别。
分为两个状态,一个是动态测试(白盒),一个是静态测试(黑盒)。
冒烟测试:测试前的基础测试,测试打开,登录等基础功能,确保软件是正常打开登录的。
回归测试:代码修改后的重新进行测试
α测试:内测
β测试:公测
常用的研发管理模型为瀑布流,V字型,W字型,敏捷模型,除此之外还有螺旋型和H字型等。
瀑布流:顾名思义,类似瀑布,从上而下,不可逆转。
V字型:测试对应开发的结果进行验证。
W字型:开发与测试同步进行。
敏捷模型:团队集中在一起进行开发,有问题就提出来当场进行解决。
需求分析阶段:
1.需求分析(需求文档,产品原型,口述)
2.学习业务流程(如会计,金融等专业流程)
3.提取功能点,列出功能直到最小
4.编写需求分析说明书,如果没有需求就参考市面上已经成熟的同类型产品实现
测试设计阶段:
1.测试计划:时间和人员以及资源的安排分配
2.测试方案:针对测试内容展开测试,所要采取的测试技术,使用的测试工具
3.测试策略:先测试的内容,后测试的内容,开始测试的标准,结束测试的标准
以上3点可以合并为一份测试计划,采用5W1H的方法即可,可借鉴前人模板完成
4.测试用例
测试执行阶段:执行测试用例
测试总结阶段:编写测试报告,其中包括:
1.对工作的总结
2.对BUG的统计分析(测试,开发,软件模块,等级,就解决的时间,每个版本,状态)
3.对被测软件的评估(一二级的BUG全部关闭了,三级的BUG关闭了80%+,四级的BUG无所谓)
边界值分析法:例如支付范围0-200,测试用例要包含小于最小范围的以及大于最大范围的值
等价类划分法:主要为有效和无效,如登录时正确的账号与错误的账号
场景法:不同的场景下发生什么不同的事情
以上三种为最常用的测试方法,除此之外还有因果图,判定表,路径覆盖法等、
包括软件项目测试计划,测试需求分析,测试用例设计,测试用例执行,BUG提交五个阶段,软件测试的生命周期与软件生命周期并存,存在于软件生命周期的各个阶段中。
软件生命周期内有问题定义、可行性分析、总体描述、系统设计、编码、调试和测试、验收与运行、维护。
分为WEB和APP
APP:
1.安装/卸载
2.消息推送
3.弱网测试(2G/3G/4G/5G/WIFI)
4.场景交互测试(来电话了/听音乐/调用相机/前后台切换)
5.权限测试
6.离线测试
以上统称为APP专项测试
WEB:浏览器上测试即可
在版本更新后,同样进行测试,采用的方法为增量测试和全量测试。
增量测试:只测试已知的有变化的功能
全量测试:测试软件的所有功能
分为BS和CS两种架构
B/S(browser-server):浏览器到服务器(WEB)
C/S(client-server):客户端到服务器(APP)
打开(提交问题等待处理)
指派(转交给其他人处理)
处理(未处理完成)
挂起(确认了问题但是未进行处理)
回归(处理完成后,回归测试)
关闭
单元测试-详细设计
集成测试-概要设计
确认测试,系统测试-需求文档
验收测试-用户需求