给定场景的设计和测试方法

时间:2010-08-14 15:07:36

标签: java architecture implementation

这不是作业。但是,了解design , implement and unit test某个特定情景的最佳做法是什么,所以discussion explaining why a particular approach was taken与其他情景相比,从理解的角度来看,更好地理解如何处理和处理类似的情况。

如何从设计,实施和单元测试的角度来看待以下场景。

方案

演讲者和听众互相沟通。演讲者可以向听众表达情感:smile,anger, courtesy, joke, fury, etc. 听众会为每次通信提供适当的响应(比如说,攻击,防御,忽略等)。

问题

  • 听众对象的反应规则是什么?
  • 如何使用UML设计并通过使用文本输出进行模拟来实现?
  • 检查此方案的正确实施的JUnit测试用例是什么?

2 个答案:

答案 0 :(得分:1)

以下步骤对于任何开发都非常重要。

要求收集

冻结并记录确切的要求。起草确切的用例有很大帮助。

设计

设计解决方案。在这里,可以根据项目的性质选择不同的方法。

  • 增量模式: 对于一个短期可交付成果和评论的长期项目,增量模式有很大帮助。
  • 具体图案: 在这里,您可以全面设计应用程序。发布周期更长。每个功能都先完成然后交付。

使用UML以下图表很重要。

  • 类图: 应该详细列出所有类。可以在此处详细介绍Interface,Abstract类,帮助程序类,第三方API的使用。
  • 序列图: 应列出项目中所有列出的用例的操作流程。

此处应包括使用适当的设计模式。测试用例应与用例相匹配,通常与每个用例的一个或多个测试用例相关。

这里有很多要描述的内容。我提供的是在实施项目时应采取的方法。

考虑到您的应用,将其分解为不同的部分可以帮助设计它更简单。从广义上讲,我可以想到以下几点。

  1. 实体 - 演讲者,听众
  2. 表达式 - 表达式列表
  3. 规则 - 演讲者表达的反应表达形式的规则。
  4. 通信 - 扬声器将用于听众(如广播)以及从听众到扬声器(类似点对点队列)的通信层

答案 1 :(得分:0)

要回答你的上一个问题(re.JUnit),我会实现以下内容:

  1. 测试每个有效输入,确认相应的输出
  2. 测试给出无效输入并确认此方案已得到妥善处理(如果设计合理,您的界面可能不允许无效输入)
  3. 我不会写一个单元测试来检查每个情绪/响应。为什么不 ?如果一个测试失败,则整个单元测试失败,您将不知道哪个进一步的测试可能失败。在调试时确定完整的响应集可能很重要,而过早退出的测试会删除此功能。

    这是一个introduction to JUnit(可能有点旧,但仍然相关)