我参与了 Java / Java EE 项目,我必须提供单元测试计划,我参与了许多集成测试计划,该计划描述了集成测试情景,但我从来没有听说过单元测试计划。
本单元测试计划必须描述我已完成的单元测试及其相关规则。
java项目生命周期中有这样的事吗?如果是,我在哪里可以有示例,或如何制作。
答案 0 :(得分:1)
单元测试应该是自我解释的。
程序员使用它们来确保它们的代码是正确的,并且不会影响现有代码。
任何程序员都应该可以在必要时自由添加新的测试,因此维护文档来定义单元测试的计划是一种非常奇怪的方法。
从我的观点来看,应该使用测试计划来定义验收测试或集成测试,而不是单元测试。
请注意,在编程阶段,单元测试非常有用,在编程阶段,无法确切地知道要编写哪些测试。因此,可以想象只有在不需要计划时才会在工作结束时编写单元测试计划。
答案 1 :(得分:1)
在某种程度上,您的问题听起来更像是对讨论的邀请,但无论如何:
至少在stricter意义上,单元测试非常“开发人员业务”。作为开发人员,您可以创建在编译时运行的“白盒”测试,以便从运行代码创建反馈。
当然,一些项目经理现在可以想出他/她需要您准确“计划”您的单元测试活动。
在我看来,这将违反敏捷所代表的任何内容。您会看到:在敏捷中,人们会考虑为客户提供价值的功能。作为开发人员,您将创建实现功能的类,但所有这些“实现细节”仅对您有用。您的项目经理不应该关心您的设计是什么样的,以及它包含多少个类。所以他真的不应该要求你在单元测试中做出预先的计划。哎呀:你在敏捷的基础上创建类(并测试它们);但你应该知道提前你将要开发什么?!
长话短说:PM应该担心计划那些“客户特征”;因此,当您的PM询问有关该范围的集成或系统测试计划时,这是公平的;但你最好挑战他他监督你的单元测试的想法!
答案 2 :(得分:0)
最近我被一位新经理问到,我们为最新版本的软件提供了哪些测试计划和测试报告。我的回复:
经理似乎很满意。
答案 3 :(得分:0)
测试计划非常有用。在较大的组织中,当您将发布移交给 QA 时,您希望在各个层面打破讨论。 QA 团队不会查看您的代码,也不应该查看。我给你举个例子。我们是否测试了所有合规性请求、持久性、特性 X、特性 Y。关键特性 Z 等的覆盖率如何?用户可能有一封有趣的电子邮件或关于功能 X 的观点,让我们把它变成一个单元测试。以前的版本有一个错误。您开始跟踪测试。 QA 和其他开发人员可以阅读说明。
这听起来很愚蠢和多余,但是当您进行数千次测试时,或者正如我在一个 git 存储库中看到的 30K 次测试时,您会开始挠头。我很少看到人们退出测试。在每个描述和设计中放入多少细节取决于您。一些开发人员只是为了让 Sonar 报告看起来没问题而进行测试。其他人会虔诚地为每个函数编写测试和描述,目标是 100% 的代码覆盖率。
根据您的架构,您必须了解测试微服务和测试应用程序之间的区别。我个人更喜欢为我的应用程序提出一个体面的测试计划,其中包括单元测试和一些集成测试。这是一个活文件。
它如何以及何时帮助您?当您在生产中拥有不同版本的应用程序时,您可以比较版本 X 和 Y 之间的测试覆盖率。这也使您的 Scrum 变得非常简单。当你说开发完成时,你展示了有多少测试覆盖率并讨论舒适度。
在许多组织中,构建时间是一个问题。通常,这是由于长时间运行的测试。如果您有一个测试计划并且只想发布您的应用程序,您可以拥有一个“应用程序集”测试套件并减少您的构建时间。
有许多带有漂亮 HTML UI 的供应商工具。他们在组织你的想法方面做得很好。