欧美克干法 软件质量体系,实现全周期智能管理
干法 的软件质量体系,旨在确保仪器软件在设计、开发、测试、部署及维护等全生命周期内的质量。这一体系通常遵循ISO 9001等国际标准,并结合行业特定要求,如ISO 13320( 的国际标准)进行实施。
软件质量体系的关键要素
需求管理:明确软件的功能性需求和非功能性需求,确保需求完整、准确且可追溯。需求管理包括需求收集、分析、文档化及验证等过程。
设计管理:基于需求进行软件架构设计,确保设计满足需求并具有良好的可扩展性、可维护性和可测试性。设计管理包括概要设计、详细设计及评审等环节。
编码与测试:遵循编码规范进行软件编码,并通过单元测试、集成测试、系统测试及验收测试等阶段,确保软件质量。测试过程中应关注测试覆盖率、缺陷跟踪及回归测试等方面。
配置管理:对软件版本、文档及环境等进行有效管理,确保软件的可追溯性和一致性。配置管理包括版本控制、变更管理及发布管理等环节。
维护与支持:提供软件升级、补丁及技术支持等服务,确保软件在使用过程中的稳定性和可靠性。同时,收集用户反馈以持续改进软件质量。
干法 的软件质量体系,旨在确保仪器软件在设计、开发、测试、部署及维护等全生命周期内的质量。这一体系通常遵循ISO 9001等国际标准,并结合行业特定要求,如ISO 13320( 的国际标准)进行实施。
软件质量体系的关键要素
需求管理:明确软件的功能性需求和非功能性需求,确保需求完整、准确且可追溯。需求管理包括需求收集、分析、文档化及验证等过程。
设计管理:基于需求进行软件架构设计,确保设计满足需求并具有良好的可扩展性、可维护性和可测试性。设计管理包括概要设计、详细设计及评审等环节。
编码与测试:遵循编码规范进行软件编码,并通过单元测试、集成测试、系统测试及验收测试等阶段,确保软件质量。测试过程中应关注测试覆盖率、缺陷跟踪及回归测试等方面。
配置管理:对软件版本、文档及环境等进行有效管理,确保软件的可追溯性和一致性。配置管理包括版本控制、变更管理及发布管理等环节。
维护与支持:提供软件升级、补丁及技术支持等服务,确保软件在使用过程中的稳定性和可靠性。同时,收集用户反馈以持续改进软件质量。
随着 的业务规模不断扩大,新产品新技术新应用带来的软件新功能的需求不断提高,软件升级的开发和测试工作量也在不断增加。例如,过去几年,我们每年完成的功能数量已从100多个增加到500多个。这几年来,软件迭代了几千次代码更改并发布了数十个软件版本,申请了十几个软件产品登记证书,成为公司评定高新技术企业的重要业务之一。
显然,传统的瀑布式以及粗放式的软件开发管理流程已经不适用于公司业务的发展。粗放式开发管理流程的弊端主要在于没有代码版本管理,无法跟踪历史记录,以及相较于敏捷开发模式,瀑布式模式无法迅速应对需求变更。
转向Scrum和DevOps
OMEC
为了提高开发效率和代码质量,从十年前开始,欧美克仪器就转向更现代的Scrum和DevOps开发模式。
Scrum 是符合敏捷开发原则的一种典型且在全球使用最为广泛的框架,被应用于管理复杂产品的开发上。
敏捷思维以用户的需求进化为核心,通过设定短期的、可实现的目标,采用快速迭代、循序渐进的方式,
具有极大的灵活性,更快交付价值,主张拥抱变化。
Scrum 框架使团队能适应不断变化的外部环境和用户要求,并在流程和较短的发布周期中快速调整优先级,
以便团队不断学习和持续改进。
DevOps则是一种开发理念,它强调开发(Development)和运维(Operations)的紧密协作。
DevOps采用一种跨功能的方式工作,将之前分离的角色(比如开发、质量保证和IT运维)集成到单一的团队中,使得软件的构建、测试、发布和更新能够更加快速且稳定。这种理念促进了持续交付和持续集成(CI/CD),使我们能够更快地对市场变化和客户需求做出反应。
使用 Azure DevOps保证代码质量
OMEC
为了更好地实施Scrum和DevOps,欧美克仪器选择了Azure DevOps作为开发平台。Azure DevOps是微软出品的一款云服务产品,它为开发团队提供了一整套的开发工具,包括项目管理、代码托管、持续集成/持续部署(CI/CD)、测试和发布等功能,能够满足我们在软件开发过程中的各种需求,并且它的云服务特性使得团队成员可以在任何地方进行协作。
需求管理
已经深耕粒度测量领域三十余年,得益于我们强大的销售、应用、售后团队以及遍布全国各地各行各业的客户,我们能够及时收集到各种反馈和意见。
同时,作为母公司马尔文帕纳科的子公司,我们也能接收到来自全球的行业先进理念。因此,我们需要处理的需求量大而复杂。在这种情况下,Azure Boards的需求整理功能就显得尤为重要。
Azure Boards提供了可视化的工作项跟踪系统,帮助我们以敏捷的方式管理项目。我们可以使用它来跟踪用户需求、任务、缺陷和问题,以及为每个工作项设置优先级和迭代路径。通过这种方式,我们可以确保每一个反馈和需求都能被妥善处理,每一个工作项都能在预期的时间内完成。这不仅提高了我们的工作效率,也确保了我们能够充分考虑和满足客户的需求。
代码管理
我们选择了Azure Repos作为我们的代码仓库,提供无限的私有Git仓库,以支持协作并保证代码的安全。我们采用GitFlow流程进行开发,通过设定不同的分支,使得我们可以同时处理多个任务,同时每个分支都可以独立地进行测试和审查。每一行代码修改都需要经过团队成员的审核,并且必须通过严格的自动化单元测试才能被合并到主分支,以保证代码的质量。
我们重视代码的历史记录和管理,每一次代码修改都有详细的历史记录,包括提交者、提交时间、修改内容等。并且,每一行代码都可以与Azure Boards中的工作项关联,让我们可以轻松地跟踪每一行代码对应的客户需求,确保我们的开发工作始终紧密围绕客户需求进行。
自动化构建和交付
我们使用Azure Pipelines实现持续集成和持续部署。每次代码提交后,系统会自动进行构建,包括智能化的代码质量检查和编译生成安装包。只有达到质量要求的代码才能进行构建,并通过单元测试覆盖率等图表,我们可以直观地看到代码质量变更。
每个生成的构建安装包都会尽快发送到每个团队成员手中,以便进行更进一步的测试。这样可以确保我们的产品始终保持高质量,同时也能快速发现并修复问题。
测试
在我们的软件开发过程中,我们坚持执行敏捷软件测试。一旦需求确定,我们就立即开始编写相应的测试用例。这些测试用例在开始开发前就会进行评审,这种方式旨在减少开发过程中的返工,提高开发效率。
在软件发布前,我们会执行全面的测试计划,所有的测试结果都会被详细记录并编写成测试报告。这份报告会包含所有的测试细节,包括测试覆盖率、测试结果、未解决的问题等。只有当这份测试报告通过评审,证明我们的软件达到了预定的质量标准,我们的软件才会得以发布。这样的测试流程确保了我们交付给客户的每一个软件产品都是高质量的。
总结
OMEC
欧美克仪器使用Azure DevOps平台实现了代码和流程管理,每一行代码的修改都能找到其对应的历史记录、管理需求、自动化测试、测试用例、测试记录,以及关联的软件版本。
凭借Azure DevOps的自动化通知机制,以上所有内容变更在研发团队中高速流转,确保我们的团队能够保持高效运行。所有团队成员都对软件的质量承担共同责任,确保我们提供的软件始终保持最高的质量。
我们的研发团队并不满足于现状,我们始终在不断地对我们的流程进行改进,以实现精益求精的目标,从而能够为我们的客户提供软件产品。