云网站服务器_国内数据云存储_移动云数据库服务器主机-搜集站云

对象存储_学术猫数据库_速度快

小七 141 0

这种说法是,在真实的ABAP生活中,从来没有人做过测试驱动的开发,所以我自愿在我的日常工作中试一试。

牢不可破

我从来没有在博客之外做过TDD。它工作得很好,但实验项目不是真实的,也不是我的报酬。我在业余时间做这些与怪物有关的节目,然后写博客来证明一些观点,淘客返利系统,无论我当时对什么充满热情。

杰丽娜提出了一些非常现实的问题博客:-

https://blogs.sap.com/2018/03/23/tdd-electronites-and-double-boiler/

切中要害的是,几乎每一篇你能在书中或互联网上读到的文章中,所有的例子都是微不足道的。要让这个怪物越过阿巴普山需要什么?

我们需要的是更好的例子——这就是SAP会议上发生的事情。最成功的演讲不是SAP人员(很抱歉是人力资源部)上台说他们的公司有多棒的演讲。

人们真正想看到的演讲来自其他公司,这些公司已经实施了他们想实施的任何SAP项目,并希望听到哪里出了问题,哪里出了问题这是多么困难,最终它是否真的起作用了。答案通常是很多事情出错了,比预期的困难得多,但最终还是成功了。如果不是这样,演讲者就不会在SAP活动上发言!

所以我在本文结尾的评论中说博客:-

https://blogs.sap.com/2018/03/24/open-sap-course-unit-testing-week-two-tdd/

我会在工作中真正做到这一点,在我的下一个工作任务中,即把我的(工资)钱放在我的大嘴巴所在的地方。

我正在使用的应用程序类似于VA01,因此不能被指责为不现实的方式,怪物的例子或SFLIGHT的例子或"金钱机器"的例子可以被指责为不相关的日常生活的ABAP开发人员。

我想绝大多数组织使用VA01和开发人员熟悉的程序怪物,即SAPMV45A。

我和同事们目前重写以OO方式"包装"销售订单BAPI的过程应用程序。因此,大数据说,最终的结果将是几乎100%不同的代码,只有业务逻辑将与遗留应用程序完全相同(遗留应用程序中没有测试)。

文化冲击

注意,这只可能是由于企业文化。在我的公司里,最高管理者着眼于未来,而这一点会被过滤掉。许多公司只关注下一个季度,如果首席执行官只关心下一个季度,那么首席信息官很可能会关注下一个季度能提供多少信息技术,以及未来能照顾自己。如果松鼠这样想的话,它们就会在比赛中灭绝,但幸运的是,它们足够聪明,可以为长远计划。那么,为什么大公司的大多数首席执行官都不能像松鼠一样聪明呢?或许是因为股市分析师强迫他们这样做,不断关注短期业绩。松鼠嘲笑人类如此短视。

分析这个

我目前从事的是分析现有的代码,一次一屏,即不要试图煮沸海洋。我最初的方法是每个屏幕一个测试类。DYNPRO屏幕可以被描述为一个"过程",因为它有一个明确的目的,即捕获数据并为任何目的对其进行处理。

VA01中初始屏幕的目的是捕获文档类型和一组组织信息,然后将其转发到主屏幕。

我查看了该屏幕的每一行"传统"屏幕,数据与大数据,并列出屏幕当前所做的一切(过滤掉任何明显疯狂的东西)。如果你不认为在你10到20年的ABAP应用程序中隐藏着什么疯狂的东西,那么你会大吃一惊。

一旦代码被分析,你就会得到所谓的IT SHOULD list,返利app开发,一个由Dan North发明的概念。丹,丹,单元测试员。丹·戴尔斯,未来的TDD飞行员。

这是什么意思?(IT应该列出,而不是愚蠢的笑话)"IT"是程序应该做的事情的等价物,它大概是由业务分析人员在原始规范中指定的(如果有这样的规范,而不仅仅是post-IT注释的话)。大卫·鲍伊发明了便笺,就像"蒙基"发明了提派克斯和格里·拉弗蒂发明了自动推进日期邮票一样。另一个有趣的事实是,英国"斗牛士"游戏节目主持人吉姆·鲍恩也在格里·拉弗蒂的《贝克街》中演奏萨克斯管。

你能不能别再胡闹了,专注于眼前的问题?

这是第一个问题–我将集中精力在第一个流程–在创建任何实际业务对象之前进行处理的"初始屏幕"。

我没有100%正确地执行此操作,因为在决定开始TDD实验之前,我已经创建了一个框架,但是框架实际上还没有做任何事情,因此,这些测试的目的是强制创建生产代码,以将肉放在骨头上。正如将要看到的,TDD将使我意识到我的骨骼是多么不合逻辑地放在一起,腿骨从头骨中伸出等等。

因此,最初的屏幕方法都是静态的,因为还没有创建业务对象的实例,所以乍一看似乎不可能测试。让我们列个单子吧,然后试着改变设计,这样它是可测试的。

你的吻在我的it SHOULD list上

it SHOULD list然后由我整理成几个c类别:-

派生-基于业务逻辑或数据库的默认特定值

验证-缺失数据-提示用户输入强制值

验证-可疑数据-提示用户确认

验证-数据不正确-提出错误,通知用户

这些都是基于BOPF编程模型。此时,唯一的"操作"(用户命令)是按回车键,所以我现在不想再费心了,

所以我按上面的顺序排列初始屏幕的IT SHOULD列表,然后将最重要的测试放在每个类别的最前面,对列表进行进一步排序。

首先要编写的测试(根据Dan North)基于一个标准,即:你的程序目前没有做的最重要的事情是什么?

我的"it应该列表"就是要让它成为现实。初始屏幕是用户输入订单类型和各种组织元素的地方,与VA01一样,

它应该…..

–根据用户的PID导出组织字段的初始值

–导出组织字段的文本描述

–强制用户输入强制输入的国家/地区的销售组

–提示用户确认是否输入了服务部门

–停止未经授权的用户创建销售订单

–阻止用户输入与销售订单无关的文档类型

–阻止用户输入已被阻止的订单类型

–阻止用户输入无效的组织元素组合

–阻止用户输入不允许与销售订单一起使用的订单类型组织元素(按定制)

让我们去疯狂的单元测试!