软件工程笔记:亡羊补牢为时不晚

亡羊补牢为时不晚

— 笔记整理自 北京理工大学 计算机学院

不容忽视的测试

  • 亡羊补牢
  • 测试不简单, 工作量很大,很累,很复杂
  • 测试自动化是必由之路
  • 软件产品质量不能只靠测试

软件测试基本原则

  • 程序员应避免测试自己编写的程序; (这样是测不出来什么的)
  • 测试用例的设计必须包括预期的输出结果;
  • 测试用例应包括有效的和期望的输入情况,也要包括无效的和不期望的输入情况;
  • 只检查程序是否做了它应该做的事这仅完成了测试工作的一半,另一半则是要检查程序是否做了它不该做的事;(后门)
  • 彻底检查每个测试结果;
  • 避免不可重复的即兴测试,保留全部测试用例;
  • 一段程序中存在错误的概率与在这段程序中已发现的错误数成比例;
  • 测试是一项非常复杂的、创造性的和需要高度智慧的挑战性任务;
  • 不能为了便于测试擅自修改程序;(一定要区分开发环境,测试环境,上线环境,代码版本一定要明确,责任一定要明确)
  • 测试工作必须有明确的目标;
  • 尽早地和不断地进行软件测试。

有关测试的几个误区

  • 测试范围: 代码、文档
    • 代码 + 文档
    • 维护代码和文档之间正确的对应关系
  • 测试简单?
    • 测试活动已经变成了一项新的软件开发项目,很复杂
    • 测试本身就是一项新的开发,对测试用例的开发
  • 什么时候开始测试?
    • 测试用例
    • 测试用例的编写应该在需求明确之后开始
  • 测试可以驱动开发
    • 不再是亡羊补牢式的工作
    • TDD(Test- Driven Developement)
    • 可以引导代码的编写

疲于奔命捉Bug

  • 编码随意 -> 编码规范
  • Quickly and Ugly -> 重构 + 单元测试
  • 只顾编码,不顾文档 -> 随时注释 + 文档自动化

捉Bug有组织有纪律

无规矩,不成方圆

  • 有组织:分测试组,测试组长,测试工程师
  • 有目的:压力测试还是集成测试
  • 有计划:什么时候测,哪些人,哪些资源
  • 有范围:测试范围是什么,哪些模块,模块之间的接口等
  • 有接口:研发提供给测试接口文档
  • 有数据:模拟数据,区分线上数据
  • 有维护:测试脚本的维护

自动化捉Bug

  • 有人提出可以用一种自动化的方式杀死蟑螂:
    • 让蟑螂静止站立在砧板中间,如何做?最难的问题
    • 用蟑螂拍对准蟑螂猛拍一下
    • 把砧板、蟑螂拍上的脏东西洗干净

CASE

  • CASE工具由三个步骤组成:
    • 分析并设计出明确的需求规格说明书
    • 建立功能点和源代码(及文档)一一对应的数据字典
    • 将需求规格说明书转化为源代码和文档

测试工具

  • 随着软件测试的地位逐步提高,测试的重要性逐步显现,测试工具的应用已经成为了普遍的趋势
  • 目前用于测试的工具一般可分为
    • 用于测试管理(测试流程管理、缺陷跟踪管理、测试用例管理)的工具
    • 白盒测试工具
    • 黑盒测试工具
    • 性能测试工具

应用测试工具的目的

  • 提高测试质量
  • 减少测试过程中的重复劳动,提高效率
  • 实现测试自动化

日益强大的测试工具

  • WinRunner:模拟用户点击操作
  • LoadRunner:模拟成千上万客户端对服务器进行测试
  • Jmeter:基于Java的压力测试工具
  • 等等

提高软件质量的方法

  • 提高产品质量是一个终极目标
  • 捉Bug不是唯一的办法
  • 提高分析水平,设计水平,编码水平
  • 提高管理水平和团队协作能力
  • 提高软件开发过程开发、管理和优化
  • 引入软件质量保证: SQA

第三方软件评测

  • 国家级和省级软件评测中心
  • 致力于软件工程、质量管理、软件系统测试、信息系统集成资质认证、ISO9000认证咨询、CMMI认证咨询、信息系统工程监理、信息系统验收评估等领域的研究与实践
  • 示例:上海市软件评测中心进行软件产品登记测试

备注:图片托管于github,请确保网络的可访问性

扩展阅读

猜你喜欢

转载自blog.csdn.net/Tyro_java/article/details/106738550