发布新日志

  • 小结(二)

    2007-08-01 09:40:49

    软件开发阶段综述

    • 软件产品会经历从构思,开发,评价,改正,投入正式使用到寻找买家不同阶段.从最初的设想到最终的使用,叫做产品的生命周期(我想大家对个定义很熟悉,稍微温习一下,呵呵 -_-)
    • 每一个阶段之间都是交迭进行的.
    • 测试与改正活动可以在软件生命周期的任何阶段进行的.
    • 缺陷发现并纠正得越早,付出的代价越小(很多人应该同意飧鏊捣ǖ?..)

    规划阶段进行的测试

    • 在规划阶段,测试人员从以下六个方面评价需求文档
      • 这是"真正的"需求吗?描述的产品是否就是要开发的产品呢?
      • 需求是否完备?第一个发布版本是否需要更多功能?列出的需求是否能减去一部分?
      • 需求是否兼容?需求可能是在逻辑上不兼容的(如,可能是矛盾的)或在心理学上是不兼容的.有些特征源自同一个产品的不同概念,用户解释其中一点,可能无法理解其他的.
      • 需求是否可实现?需求设想的硬件是否比实际运行得更快?它们需要的内存,I/O设备是否太多,要求的输入或输出设备的分辨率是否过高?
      • 需求是否合理?在开发进度,开发费用,产品性能,可靠性和内存使用之间存在平衡关系.这些被都想到了吗?需求是否要求产品运行速度极快,零缺陷,仅占6个字节的存储单元,明天下午就得完成?这些要求单独来说都可以实现,但作为同一个产品,不可能同时实现.是否认识到应该安排一个优先级计划?
      • 需求是否可测?判断设计文档是否满足需求有多难?
    • 产品对照评价
      • 最初,对竞争产品进行的分析,会导致需求文档和功能定义的规模膨胀,且费用高,根本无法把竞争产品身上所发现的所有好点子都囊括进去.另外,挤在一起根本无法正常的运行.即使是相互的兼容性很高,随着特征集的增长,产品的复杂度也会相应提高.
      • 从竞争产品中罗列出来的好点子,只能做为参考,但必须进行裁剪,而不能完全变成需求.由重点问题小组提供对此进行裁剪的基本方法.
    • 重点问题小组
      • 小组的主要任务是考察当前市场对新主意的反响,而不是说服客户群.
      • 小组能够从多种一般性层面上给出反馈.
    • 任务分析
      • 这是一种设计手段,对于设计用户界面至关重要.
      • 在需求未确定之前不应该进行任务分析,但是任务分析的结论又往往会挑战已成文的产品需求.

    设计阶段的测试

    • 测试人员应对下列问题进行调查.
      • 设计是否良好? 它能否最终导致高效,简洁,可测试,可维护的软件产品?
      • 设计是否满足需求? 如果规划文档是非正式的,可变更的和有歧义的,那么设计文档就将是对产品需求的第一份正式说明.
      • 设计是否完备?它是否规定了模块间的关系,模块如何传递数据,异常条件下会发生什么,每个模块应赋予什么样的出事状态,以及这些状态如何得到保证?
      • 设计是否可行?计算机能运行得这样快吗?有足够的内存吗?有足够的I/O设备吗?数据库中数据的检索速度能达到这样快吗?
      • 设计涵盖错误处理的程度如何?在检查设计中对所有似是而非的错误条件进行处理时, 问一下给定错误是否以合适的程度进行处理, 也很重要.
    • 评审会议:目的在于识别设计中存在的问题, 并不准备解决它们.有三种通常类型的评审会议:
      • 走查:设计人员对程序进行模拟,一步一步地展示程序如何处理由测试人员提供的测试数据.
      • 审查:测试人员按照检查表中的每一项逐行检查设计文档.
      • 技术评审:测试人员把一系列问题带入会议中.
    • 伪代码分析
  • 小结(一)

    2007-07-24 12:08:27

    • 为每个错误提交一个问题报告.
    • 什么是测试系列? 每当对程序的一个新版本进行测试时候,都可能用到若干组文档齐全的测试.
    • 发现问题情况的一个有效技术就是寻找边界条件.
    • 如果预计两个基本点测试具有相同的结果,那么只使用一个就好了.
    • 在选择一类测试的代表用例时,总是选取那些你认为程序罪有应得可能失败挠美?
    • 最佳测试用例总在一类测试的边界处.一旦超过边界,程序的行为将发生改变.例如, 假定程序是用来处理两位数的数据的, 任何小于等于99的数都可以,但任何大雨等于100的数都不行.这两类测试的边界用例就是99和100.一类测试用例中的所有用例都使程序基本上按照同样的方式运行.一旦程序改变行为,就意味着跨越了两类测试间的边界.
    • 提醒:
      • 程序员应该已经测试完了程序清单中任何明显的东西.
      • 测试人员的任务是从一个不同于程序员的角度对程序进行分析.
      • 这有助于发现测试类别, 边界条件, 关键测试,还有程序员容易遗漏的错误.
      • 应当依照你在程序的外在行为中所看到的来对可能的测试进行分类.
      • 确保对未预料数据的处理,这才是测试人员所需要做的.
    • 程序接受测试的原因是,它可能不起作用.
    • 必要时,可采取"快速"测试方法.
    • 总结对程序及其问题的认识. 这纯粹是为了你自己使用,并不总是必须的,但通常很有用.
    • 测试四类输入:有效输入,无效输入,编辑过的输入和不同时间的输入.
  • 小窝开通...

    2007-06-19 10:11:30

    偶的小窝刚开通...本人刚成为软件测试工程师,对软件测试有浓厚的兴趣.欢迎大家进来发表关于软件测试的心得体会. 请大家多关照.

     

我的栏目

数据统计

  • 访问量: 1578
  • 日志数: 3
  • 图片数: 2
  • 建立时间: 2007-06-19
  • 更新时间: 2007-08-01

RSS订阅

Open Toolbar