软件测试流程及方法详解( 六 )


3.四象限原则(轻重缓急)
软件缺陷类型:
1.功能缺陷
2.系统缺陷
3.加工缺陷
4.数据缺陷
5.代码缺陷
软件测试为了发现程序中的错误而执行程序的过程,即对软件(程序)的漏洞进行检查发现,衡量软件质量,并对其能否满足规定的需求或弄清预期结果和实际结果的差别 。
测试对象程序、数据、文档
测试过程模型缺陷具有放大的特点,随着阶段的推进发现bug的成本会指数型上升,所以并不是代码级的测试才叫测试,而是开发过程各个阶段越早开始测试越好 。
1.瀑布模型:1.需求分析->2.设计(概要、详细)->3.编程->4.测试(单元、集成、系统)->5.维护
2.V模型(瀑布-改):1.需求分析--2.概要设计--3.详细设计--4.软件编码--5.单元测试--6.集成测试--7.系统测试--8.验收测试
3.W模型:1.需求分析--需求测试--2.概要设计--功能测试--3.详细设计--设计测试--4.软件编码--5.单元测试--6.集成测试--7.系统测试--确认测试--8.验收测试
4.H模型:无实际意义,仅说明可以独立测试 。
软件测试原则1.测试来源于需求原则
2. 8-2原则:

  • 测试中发现的错误80%很可能起源于程序中的20%
  • 提前测试可发现80%,系统测试找出剩余bug的80%(总体的16%),最后的4%可能只有用户大范围长时间使用后才暴露出来
  • 80%的工程用在20%的需求上(即关键需求)
3.软件缺陷的寄生虫性:找到的缺陷越多说明软件遗留的缺陷越多
4.避免自己测试自己的程序
5.回归测试:避免引入新的错误 。
软件测试注意事项
  • 测试不是开发后期的一个阶段
  • 测试入门其实稍容易,但要求技术一样高
  • 测试多数情况下不能覆盖所有输入
  • 不要“有时间多测,没时间少测”
  • 软件测试不止是测试人员的事,也是开发人员的事
  • 调试和测试不一样
  • 测试绝非只运行一下软件看结果对不对
  • L10N:本地化测试
  • I18N:国际化测试
交互对象1.系统管理或是运维人员
2.开发人员
3.测试人员
4.其他对测试环境或相关技术有影响的人员
5.用户对象
常见软件测试错误情况占比属于需求分析和软件设计错误的约占64%,属于程序编写错误的仅占36% 。
软件快速应用开发模型V模型:又叫RAD模型(Rap Application Development Model,快速应用开发模型),构型类似V 。其开发阶段为:1.需求分析--2.概要设计--3.详细设计--4.软件编码--5.单元测试--6.集成测试--7.系统测试--8.验收测试
测试意义1.解放程序员和售后服务人员
2.软件测试可以降低软件质量风险,使程序员能够更专心于解决程序的算法和效率;同时经过严格检验的完整产品也减轻了售后服务人员的工作量 。
测试设备PC 、手机、平板、嵌入式设备等
测试网络1.本地网络
2.云平台网络
3.本地和云的混合网络
4.WiFi网络
软件开发环境1.开发环境(开发人员)
2.测试环境(测试人员)
3.生产环境(又叫正式环境,是指客户使用的环境)
软件测试的目的1.为了发现程序员在开发中存在的代码以及逻辑错误 。
2.为了审核产品的完成是符合用户的需求的 。
3.为了提高客户的体验 。
4.为了交付更高质量的产品 。
测试结果书面材料测试报告
测试数据管理方法测试数据包括业务测试数据、基础数据(配置数据等)
1.测试基础数据可备份和还原
2.测试数据的原子化,可高度复用
3.测试数据的可定制
4.测试数据的可自动化维护(包括但不限于配置、业务测试数据等等)
测试环境管理的难点1.高效的规划好可用的资源(团队资源利用率)
2.混合环境的管理(云技术、云+私有服务)
3.复杂环境管理(业务、服务、部署、跨团队协作等)
4.复杂的配置(基础环境更多和技术应用更广)
管理测试环境的技巧1.在初始化测试环境前,应当全面的检测环境的连通性
2.检查所有的硬件、软件、需求、配置等,并形成checklist
3.确定所有测试设备、浏览器等版本信息,并形成checklist
4.严格规划测试环境的使用计划,例如准入准出原则,什么适合更新,什么时候发布,什么节点清理等等
5.尽可能的自动化进行管理维护
软件测试的流程需求分析
制定测试计划
设计测试用例与编写(一个好的高质量的测试用例在于能发现至今未发现的错误,一个成功的测试是发现了至今未发现的错误的测试)


推荐阅读