Process 如何设立质量保证部。?

Process 如何设立质量保证部。?,process,qa,Process,Qa,我是一个小团队的高级成员(另外两个程序员)。我们都是新来的公司,我已经建立了所有的开发基础设施。到目前为止,我有一个优秀的版本控制系统(Git),一个优秀的问题跟踪系统(Redmine),我即将建立一个构建环境(Hudson)。我现在正在考虑建立我们的质量保证部门。我想建立一个敏捷开发过程,比如Scrum,但这还不起作用。那么,我如何着手解决QA问题呢?开发测试计划、遵循计划、报告结果的良好流程是什么?是否有组织和运行QA的工具 谢谢 如果您选择Scrum,我想您指的是所有敏捷方法。测试计划、b

我是一个小团队的高级成员(另外两个程序员)。我们都是新来的公司,我已经建立了所有的开发基础设施。到目前为止,我有一个优秀的版本控制系统(Git),一个优秀的问题跟踪系统(Redmine),我即将建立一个构建环境(Hudson)。我现在正在考虑建立我们的质量保证部门。我想建立一个敏捷开发过程,比如Scrum,但这还不起作用。那么,我如何着手解决QA问题呢?开发测试计划、遵循计划、报告结果的良好流程是什么?是否有组织和运行QA的工具


谢谢

如果您选择Scrum,我想您指的是所有敏捷方法。测试计划、bug报告和诸如此类的东西不会有点开销吗

至于工具,我建议添加wiki或jira作为存储任务、相关用户故事和相关bug的地方

至于设立质量保证部门(一人作为部门O.O),我建议去掉“质量保证部门”的标签,只需再雇佣一名专注于测试的团队成员。 您可能需要在敏捷领域工作并具有测试经验的人员。如果那个人知道探索性测试(工具和技术),那就好了

若您考虑测试自动化(因为您已经有了Hudson),那个么tester需要具备一些编程技能。另一方面,您可以将自动化留给开发人员,专注于获得优秀的测试人员,而不是能够编写一些代码的普通测试人员。无论如何,我会实现一些测试自动化,一些回归

一件事,不要陷入QA/流程/测试计划/文档繁重/详细的手动脚本/面向流程的事情中。保持敏捷,否则很快你就会发现它实际上不起作用

===============================================================================

所以我假设,他们不打算为这个开源项目做贡献,而是制作一些插件,使用它的代码,同时扩展它的功能,这样它就可以满足你自己项目中的需要了?酷

所以你有:
1) 另一方开发的开源项目,有自己的时间表、项目计划等
2) 您开发的扩展/插件,使该项目对您有用
3) 您自己的项目,通过插件将某些功能委托给开源项目

我想所有这些都是通过某种消息传递机制在代码级别集成的。在这种情况下,我会说,您需要一个能够编写代码的人,而不管他的背景如何(虽然开发人员会更容易找到,但他会对编写自动化测试感兴趣吗?。
无论如何,您需要自动化测试:
A) 很明显,您的项目-像现在这样编写单元测试,或者可能编写更多的单元测试。
B) 单元测试将确保主项目中的任何更改不会中断其与插件/扩展(用于开源项目)的交互
C) 插件/扩展的单元测试-这是您编写的代码,因此您需要单元测试,因为您的项目需要一个 D) (不太明显的部分)您需要进行测试,看看开源项目中的更改是否会影响您的插件

当然,A和B作为C和D会有某种程度的重叠,但在形式上,这是你需要注意的

所以,回到最初的问题,我不认为你们需要传统意义上的QA部门(顺便问一下,scrum不是说要放弃部门标签,建立一个团队吗?)。找一个能够(并且喜欢)创建自动化测试的人,可能是在单元测试级别。使用Scrum。有一个团队。跳过测试的全面文档、正式流程、ISO/IEEE标准。创建轻量级文档,只是为了参考主要/一般目标/方法/假设。

…如果它不起作用,在回顾中讨论它,尝试调整事物,尝试新事物。持续改进

您表示需要一个QA小组/部门,但没有说明原因。关于QA小组的工作有很多假设

其基本性质是确保正确的产品在第一时间正确制造。通常是集中在开发代码的过程上

或者,您只是在寻找其他人来测试您的代码吗

如果您的注意力集中在QA的测试方面,我会尽可能多地投入到您团队的开发部分。自动化测试将大大有助于提高第一次正确测试的机会。此外,测试显著降低了产品内部变更的风险。而且,不要将大部分测试写作转移到团队的一个子集上。您希望将可测试性作为设计的一个关键方面,而开发人员没有编写足够的测试,也没有在他们的设计中充分考虑它。依靠一个人或一组人来运行一系列测试意味着你不能经常运行它们,而且你往往会低估旧的回归测试

如果您关注的是QA,而不仅仅是测试,那么值得指定一位主要角色是查看产品、其复杂性、度量和测试覆盖率,以确定在代码库的正确位置是否有足够的测试。这个角色与监控总体设计的架构师或是指导用户界面开发的可用性和/或设计专业人士没有什么不同。角色应该是支持正确的工作,而不一定是实施工作

就我个人而言,上述所有方面都有一个例外,那就是至少需要一个思维正确的人来执行。探索性测试应该是上述所有测试的子集。并且,当发现问题时,应该将其用于反馈到自动化测试中(例如,如果发现错误,修复的部分行为应该是编写测试来演示错误和修复。如果测试覆盖率对于代码复杂性来说较低,则编写其他一些