【问题标题】:to generate automatic test cases using UML sequence diagram使用 UML 序列图生成自动测试用例
【发布时间】:2019-03-24 12:39:48
【问题描述】:
  1. 我已经完成了时序图并将其转换为 XML 文件,然后我使用 C# 开发了解析器以从该 XML 文件中提取测试用例,但是解析器仍然无法正常工作,我该如何提取生成测试用例所需的确切标签和元素?

  2. 这是用于 c# 控制台应用程序 Visual Studio 2017。

    public XDocument GetDiagramXml(string diagramName, string diagramXmlFile)
        {
            XNamespace UML = "omg.org/UML1.3";
            XDocument diagramElements = XDocument.Load(diagramXmlFile);
            XElement test = XElement.Load(diagramXmlFile);
    
            IEnumerable<XElement> elements = 
    diagramElements.Descendants("XMI.content");
            foreach (XElement element in elements)
            {
                XElement xmiElement2 = element.Element(UML + "Diagram");
                XElement xmiElement3 = null;
                if (xmiElement2.Attribute("name").Value == diagramName)
                    xmiElement3 = xmiElement2.Element(UML + 
    "Diagram.element");
                var output = xmiElement3.Descendants(UML + "DiagramElement");
                diagramElements = XDocument.Load(xmiElement3.CreateReader());
            }
    
            return diagramElements;
        }
     public Dictionary<string, string> GetDiagramElments(XDocument 
    diagramRawXml)
        {
            Dictionary<string, string> diagramExtractedElements = new 
    Dictionary<string, string>();
    
            return diagramExtractedElements;
        }
    public Dictionary<string, Dictionary<string, string>> 
    GetDiagramMessages(Dictionary<string, string> diagramExtractedElement, 
    string diagramXmlFile)
        {
            Dictionary<string, Dictionary<string, string>> messagesList = new 
    Dictionary<string, Dictionary<string, string>>();
    
            return messagesList;
    
        }
    
  3. 实际结果一定是序列图生成的测试用例。

【问题讨论】:

  • 根据所提供的信息,您认为有人可以如何帮助您? “救命,这行不通”是行不通的。去阅读帮助页面,找出什么样的问题被认为是好的问题。

标签: c# xml visual-studio uml testcase


【解决方案1】:

拥有

XNamespace UML = "omg.org/UML1.3";
...
XElement xmiElement2 = element.Element(UML + "Diagram");
...
xmiElement3 = xmiElement2.Element(UML + "Diagram.element");
...
var output = xmiElement3.Descendants(UML + "DiagramElement");

你会的

XElement xmiElement2 = element.Element("omg.org/UML1.3Diagram");
...
xmiElement3 = xmiElement2.Element("omg.org/UML1.3Diagram.element");
...
var output = xmiElement3.Descendants("omg.org/UML1.3DiagramElement");

可能缺少“/”,可以通过以下方式解决

XNamespace UML = "omg.org/UML1.3/";

但不确定这是否足以阅读元素,因为一切都很“奇怪”


显然您没有读取模型文件(搜索交互),但该文件是 UML 图交换(因为 DiagramElement),您怎么会有 UML1.3 ?是什么工具生成的?

您确定要使用 UML Diagram Interchange 工作吗? 您确定要使用交互/序列图吗?交互是“有限的”,因为这不是例如行为

【讨论】:

  • 好的,我使用 Enterprise Architect 设计了一个序列图,并使用相同的工具为序列自动生成一个 XML 文件。我需要的是通过使用 c# 开发的解析器为该序列生成一个测试用例。解析器是读取序列 XML 文件并提取标签、值和元素,然后确定所有可能的路径。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-06-06
  • 2011-04-11
  • 2023-03-24
  • 2014-04-10
  • 2012-09-10
相关资源
最近更新 更多