技术实现细节如何编写User Stories? [关闭]

2024-01-11

我正在尝试以更有组织的方式工作并开始采用用户故事。

我认为我对如何将用户故事用于技术内容存在误解。

假设我正在编写一个应用程序,它可以提供我的网站在 Google 中针对某个关键字的排名。

用户故事是这样的:

作为互联网营销人员
我想知道我的网站在某个关键字上的排名
这样我就会知道我的 SEO 努力是否有效

现在这非常简单并且以用户为中心......但是,如果我需要将代理引入循环中会发生什么。

一方面,代理是技术实现细节,另一方面,代理是互联网营销领域的一部分。

我应该如何创作这样的故事?

作为互联网营销人员
我想在 Google 中搜索时使用代理
这样我们就可以在谷歌不屏蔽我们的情况下检查很多关键字

上面的场景听起来不太适合我......也许我可以将其重写为:

作为互联网营销人员
我希望能够一次检查很多关键字
所以这会节省我的时间

这听起来更正确,但是我可以给出什么接受标准呢?尝试在一分钟内抓取 google 100 次?这不是浪费时间吗?

这是另一个场景。当我想要实现的功能是 30 秒内可以使用一次代理时,我应该如何制作用户故事?我不知道如何从以用户为中心的角度解决这个问题......

我想做的另一件事是展示另一个Role。而不是以周围为中心Internet Marketer,我可以说我们有一个角色叫做Google Scraper。我可以这么说Internet MarketerGoogle Scraper.

现在我可以编写一个用户故事,例如:

作为谷歌抓取工具
我想每次搜索都更改代理
所以谷歌不会禁止我

对于像上面这样的技术实现细节,您有何看法?它还可以帮助将系统分解为模块......


你不写技术故事。用户故事应满足投资标准 http://en.wikipedia.org/wiki/INVEST_%28mnemonic%29.

代理听起来确实像是一个实现细节,应该避免。您不应该在故事中提及代理服务器。即使它们是域的一部分,也可能有其他方法来实现相同的效果。

不要写“我想使用代理,这样我就不会被阻止”,而应该写“我想伪装我的身份,这样我就不会被阻止”。如果我是你的客户,我不会知道你为什么需要代理?它是正向代理、开放代理还是反向代理?有大量用于代理服务器 http://en.wikipedia.org/wiki/Proxy_server#Uses。您应该选择您想要利用的功能。

然而,你不应该太沉迷于完美的故事。敏捷宣言说:“个人和交互胜过流程和工具”。

编写用户故事时,您还应该考虑 3C:卡片、对话、确认 http://ronjeffries.com/xprog/articles/expcardconversationconfirmation/。顾客和你都明白这个故事的含义吗?

该卡是否符合 INVEST 标准?如果你对这两个问题的回答都是肯定的,那么这个故事就很好了。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

技术实现细节如何编写User Stories? [关闭] 的相关文章

  • QUnit 与 Jasmine? [关闭]

    Closed 这个问题是基于意见的 help closed questions 目前不接受答案 这两个测试框架的主要区别是什么 我是测试驱动开发的新手 从头开始 QUnit 非常容易上手 因为您只需要包含两个文件和一点标记 然后就可以开始编
  • 如何将 jsdom.jQueryify 与 jasmine-node 一起使用?

    是否可以使用 jsdom 的 jQueryify 功能来使用 jasmine node 我想做的是使用 NodeJS 来测试一些依赖于 DOM 是否存在的 JavaScript 这是我尝试过的简化案例 当我运行脚本时 茉莉花节点识别规范 但
  • 关于Scrum的两个问题[关闭]

    Closed 这个问题不符合堆栈溢出指南 help closed questions 目前不接受答案 我有两个关于 Scrum 的相关问题 我们公司正在努力实施它 并且我们确信我们正在跨越障碍 这两个问题都是关于 完成意味着完成 1 对于正
  • TDD 在机器学习中的好处

    据我所知 TDD 的典型工作流程是基于黑盒测试的 首先我们定义接口 然后编写一个或一组测试 然后我们实现通过所有测试的代码 那么请看下面的例子 from abc import ABCMeta class InterfaceCalculato
  • 在 Ruby On Rails 上学习 BDD 的途径是什么?

    我想在 Ruby On Rails 上启动 BDD 我应该学习什么 我对 BDD RSpec 或 Cucumber 一无所知 最好的学习方式是什么 教程 涵盖 我应该测试什么行为 之类的内容 ETC thanks RSpec 特定 我保留这
  • 涵盖 .NET 中的 TDD、DDD 和设计模式的书籍

    我想要一本能够真正让我全面了解使用 C TDD ASP NET MVC DDD 和设计模式 例如存储库模式 的现代 ASP NET 开发的书 我非常擅长 C 和 ASP NET MVC 但想填补空白 如果您对涵盖这些主题的一两本书有很好的体
  • 断言某个方法仅被调用一次

    我想断言一个方法只被调用一次 我正在使用 RhinoMocks 3 5 这是我认为可行的 Test public void just once var key id of something var source MockRepositor
  • 学习 BDD、TDD(ruby、C#、javascript)的好资源

    学习 BDD 和 TDD ruby C javascript 有哪些好的资源 现在用什么好的框架 See 为什么我应该练习测试驱动开发以及应该如何开始 https stackoverflow com questions 4303 why s
  • gem 如何提供 Cucumber 功能和步骤定义?

    我有两个 Rails 项目 A 和 B 其中包含以下宝石 project A gem green theme path gt dev themes green theme gem devel tasks path gt dev themes
  • 测试驱动开发 - 我应该测试数据库列和索引吗?

    我是 TDD 新手 我发现shouldagem 能够测试数据库实体的列是否存在以及测试其索引 但是否有必要在我的测试套件中包含列和索引的测试 我是否需要担心在开发过程中可能会删除任何列和索引 不要测试数据库列 这只是测试实施 不要测试实现
  • 如何对私有方法进行单元测试?

    我正在构建一个类库 它将有一些公共和私有方法 我希望能够对私有方法进行单元测试 主要是在开发时 但它也可能对未来的重构有用 这样做的正确方法是什么 如果您想对私有方法进行单元测试 则可能会出现问题 单元测试 一般来说 旨在测试类的接口 即其
  • 敏捷与迭代和增量开发之间的区别[关闭]

    Closed 这个问题是基于意见的 help closed questions 目前不接受答案 敏捷开发与迭代增量开发有什么区别 敏捷是否被视为迭代和增量 一些信息表明敏捷是最新的迭代和增量 我需要对此做出明确的澄清 迭代 你不可能一次性完
  • 我应该更改单元测试的命名约定吗?

    我目前对单元测试使用一个简单的约定 如果我有一个名为 EmployeeReader 的类 我将创建一个名为 EmployeeReader Tests 的测试类 然后 我在测试类中为该类创建所有测试 名称如下 Reading Valid Em
  • 使用机器人框架进行 ATDD

    我想听听其他人使用 Robot Framework 进行自动化验收测试的经验 它的主要优点和缺点是什么以及与其他框架 主要是 Fitnesse 和 Selenium 的比较 将测试的代码是实时的遗留代码 主要是 C 语言 在我撰写本文时 我
  • 测试主体中抛出代码为 0xc0000005 的 SEH 异常

    我正在使用 GoogleTest 为以下课程编写测试 但收到上述错误 class Base Other Functions CSig objSig 50 CSig 类如下 class CSig constructor destructor
  • TDD研究

    我知道北卡罗来纳州立大学对 TDD 做了一些研究 他们发表了一篇论文 名为 工业测试驱动开发的初步调查 http collaboration csc ncsu edu laurie Papers TDDpaperv8 pdf NCSU 的其
  • NUnit 测试运行顺序

    默认情况下 nunit 测试按字母顺序运行 有谁知道有什么方法可以设置执行顺序吗 是否存在这样的属性 我只是想指出 虽然大多数受访者认为这些是单元测试 但问题并没有具体说明它们是 nUnit 是一个很棒的工具 可用于各种测试情况 我可以看到
  • 不返回值的方法的起订量调用库(void 方法)

    我正在尝试模拟正在测试的类 以便在测试它们时可以对各个方法进行调用 这将允许我仅将方法设置测试为调用库 并且从测试方法中调用的所有其他方法 同一类 都将被模拟 但是 对于不返回值的方法 我无法执行此操作 对于不返回值的方法 智能感知只是不显
  • 使用 C++ 进行测试驱动开发

    希望开始用 C 进行 TDD 我见过 CPPUnit 但我想知道人们是否还有其他更喜欢的选择 感谢您的建议 我可以推荐谷歌模拟 https github com google googletest 它已成为 Google Test 捆绑的一
  • 如何使用 Laravel 伪造图像上传以使用干预图像包进行测试

    我有一个测试断言图像可以上传 这是代码 Test file UploadedFile fake gt image image one jpg Storage fake public response this gt post api ima

随机推荐

  • CentOS 上 Laravel 的权限问题

    我已将 laravel 存储库克隆到我的 CentOS 7 机器上 当我尝试运行它时 出现 500 错误且没有任何显示 所以我检查一下 var log httpd error log我发现我遇到了一些权限错误 Mon May 16 11 3
  • 如何使用代码实现关机

    有没有一种方法可以使用代码关闭手机 我对此一无所知 希望有人给我一些建议 或者示例 代码 api 谢谢 这是一个完整的例子 https github com rbochet AutoShutdown https github com rbo
  • 如何从这种关系中选择条目?

    我有这四个表 提要 提要条目 条目类别和类别 有了这些结构 CREATE TABLE categorias id int 11 NOT NULL auto increment nome varchar 100 collate utf8 un
  • Chrome 会阻止不同来源的请求

    当脚本尝试从不同来源访问框架时 Chrome 会阻止它并抛出异常 如下所示 未捕获的安全错误 阻止具有来源 提供商域 的框架访问具有来源 mydomain 的框架 协议 域和端口必须匹配 在 google chrome 进行一些更新后 我收
  • 如何让程序等待 JavaScript 中的变量更改?

    我想强制 JavaScript 程序在执行的某些特定点等待 直到变量发生更改 有办法做到吗 我已经找到了一个名为 narrative JavaScript 的扩展 它强制程序等待事件发生 有没有办法创建一个新事件 例如 变量更改事件 其行为
  • PHP多维数组转无序列表,建立url路径

    我在 PHP 中有一个多维数组 由 icio 和 ftrotter 的优秀示例生成 我在数组变体中使用 ftrotterrs 数组 将数据库结果转为数组 https stackoverflow com questions 2794638 t
  • 在哪里/如何下载(并安装)适用于 Windows 8 64 位的 Microsoft.Jet.OLEDB.4.0?

    我有一个使用 Jet OLEDB 4 0 的 32 位 net 2 0 应用程序 它可以在 Windows 8 32 位上运行 但不能在 64 位上运行 在 64 位上我收到错误 Microsoft Jet OLEDB 4 0 提供程序未在
  • PHP 检测 PNG8 或 PNG24

    我需要一种简单的方法来检测正在上传的 PNG 内容 我尝试了 getimagesize 但它返回 PNG8 和 PNG24 的位 8 任何人都知道如何检测图像是否为 PNG8 又名位深度为 8 谢谢 尝试检测 PNG8 PNG24 和 PN
  • NSCoding协议问题

    我想将归档 NSCoding 协议添加到我的模型类中 然后我实现这两种方法encodeWithCoder NSCoder coder and initWithCoder NSCoder coder MyModelClass 有 2 个实例变
  • setlocale 在 Windows 上卡住

    setlocale LC ALL uk UA 有时我会因未知原因而挂起 陷入僵局 调用堆栈是 ntdll dll ZwWaitForSingleObject 12 Unknown ntdll dll RtlpWaitOnCriticalSe
  • FlatList numColumns 似乎工作不正常?

    我正在尝试使用 FlatList 以网格格式向某人显示一堆用户头像 但它最终看起来非常奇怪 我似乎不知道如何修复它 这是它的样子 https i stack imgur com j3nAP png 我的 FlatList 代码如下所示
  • 在 Eclipse 中,我可以在垂直堆栈而不是水平堆栈中查看当前打开的文件吗?

    如果选项卡显示编辑器中的哪些文件是垂直堆叠而不是水平堆叠 我会发现更容易 水平堆叠意味着您会很快耗尽显示文件名的空间 并且导致文件之间的切换非常耗时 是否有选项或插件可以垂直显示文件 类似于导航器 但针对打开的文件而不是项目文件 我似乎找不
  • 重新加载php页面的一部分而不刷新整个页面

    我使用 Wordpress 作为内容管理系统 我的模板有一个 divbox类 并包含一个下拉列表 我的目标是获取此下拉列表的值并使用该值在ajax方法中查询帖子 然后重新加载boxdiv 使用 ajax 为了更清楚这里是标记
  • 如何在Python中执行逻辑套索?

    scikit learn 包提供了以下功能Lasso and LassoCV 但没有选择拟合逻辑函数而不是线性函数 如何在 python 中执行逻辑套索 Lasso 通过 L1 惩罚优化最小二乘问题 根据定义 您无法使用 Lasso 优化逻
  • SQL Server 中变量名区分大小写? [关闭]

    Closed 这个问题是无关 help closed questions 目前不接受答案 当我执行这种格式的 SQL 命令时 SP HELPTEXT Sproc1 结果集将显示Could not find stored procedure
  • webpack-dev-server、historyApiFallback 不起作用(webpack-4、react-router-4)

    我正在使用 webpack 4 测试 React router 4 但无法获取 webpack dev server 的设置 historyApiFallback true 上班 这个用法在 webpack3 中工作得很好 所以我不确定出了
  • 如何从 Go 1.18 中的单个方法返回两种不同的具体类型?

    假设我有这段代码 type Type1 struct Name string json name omitempty Path string json path File string json file Tag int json tag
  • Spring Security 无效会话重定向

    我在 spring boot 1 2 3 Web 应用程序中使用 spring security 4 0 1 也使用 spring session 1 0 1 但这与案例无关 我确实有一个私人区域 以及一个所有用户都可以访问的所有访问区域
  • Android Espresso:无法解析符号 AndroidJUnit4.class

    我正在尝试在新的 Android 项目中创建 Espresso UI 测试 但遇到了以下问题 如果我尝试创建一个空的测试类 import android content Intent import android support test
  • 技术实现细节如何编写User Stories? [关闭]

    Closed 这个问题是基于意见的 help closed questions 目前不接受答案 我正在尝试以更有组织的方式工作并开始采用用户故事 我认为我对如何将用户故事用于技术内容存在误解 假设我正在编写一个应用程序 它可以提供我的网站在