嵌入式系统开发,如何运用敏捷和DevOps?
01。覆盖率测试概念
“测试”在百度百科中的注释是:具有实验性质的测量,即测量和实验的综合。如今,当人们提到“测试”时,通常指的是软件测试,而本文的主题是嵌入式测试。嵌入式系统测试特指测试嵌入式系统的软件部分,它与软件测试不同。
1.1。嵌入式系统的具体定义
IEEE(国际电气工程师学会):嵌入式系统是“用于监视、控制或协助装置、机械和设备运行的设备的缩写”(devices used to monitor, control ,或协助操作设备、机器或装置)。
国内广泛认可的定义:以计算机技术为基础,软硬件定制化,符合多用途应用系统、可靠性、成本、体积、能耗等严格要求的、以应用为中心的特殊计算机系统。一般来说,嵌入式系统对可靠性要求比较高。
理解了这两个定义后,就不难确定嵌入式系统是软件和硬件的结合体。
1.2。嵌入式系统的软件部分
嵌入式软件通常包括嵌入式系统软件(操作系统、引导程序、中间件)和嵌入式应用软件。作为嵌入式系统的重要组成部分,按字面定义是“嵌入硬件中的操作系统和开发工具”,如数字电视的中间件、洗衣机自动控制的软件、汽车自动辅助停车的软件等。 。只有编程部分准确,才能安全、准确地使用嵌入式系统的功能。
嵌入式软件通常具有专用性(固件只执行一项或多项特定任务)、实时性(运行时间受到严格限制)、内存容量小等特点。如今,嵌入式设备逐渐向物联网转型,其带来的安全风险更加令人担忧。如果嵌入式软件因其使用场景的特殊性而出现安全问题,很可能会产生灾难性的后果,造成巨大的生命财产损失。因此,嵌入式软件一般比常规软件具有更高的可靠性和安全性要求,测试要求也更高、更精确。
为了适应当前逐渐向Agile和DevOps演进的软件开发趋势和实践,本文将讨论如何将其应用到固件开发和测试中。
02。敏捷、DevOps 及其价值
敏捷
敏捷也称为敏捷开发,是指以用户需求开发为核心,采用迭代式、循序渐进的方式进行软件开发。在敏捷开发中,开发人员在软件构建的早期阶段将整个项目划分为多个子项目,并对每个子项目的结果进行测试,使其可见、可集成、可操作。
DevOps
DevOps 是一组用于促进开发、运营和质量保证部门之间的沟通、协作和集成的流程、方法和系统的统称。 (点击查看更多DevOps相关内容) ▲ Agile和DevOps对应不同阶段
纵观过去,我们可以发现物联网设备厂商的新品发布周期通常为2-3年,但是他们的软件更新很常见。软件在产品发布的第一年可以更新3-4次,甚至每个月都会进行频繁的更新。但随着时间的推移,由于软件开发和测试的成本高昂,更新停滞不前,设备也变得过时。
如何保证更新质量并提高产品生命周期,从而提高产品销量和品牌信任度?采用敏捷和 DevOps 是一个不错的选择。
03。如何使用敏捷和DevOps?
敏捷采用流程管理方法,利用一些理论框架(如Scrum、看板)主要解决业务部门和开发部门之间的争议,使双方能够快速沟通,实现有效合作。 DevOps主要是利用一些工程实践的方法,集成自动化工具来解决开发、测试、运维部门之间的冲突,使产品功能快速稳定上线。
具体应该如何实施?
(1)充分理解项目结构、开发和测试步骤,并尽可能独立地测试每个组件。
(2) 尝试独立发布不同的组件。耦合程度越高,组件引起影响发布整体进度的问题就越轻。
(3)先进行单元测试和全组件测试,确保接口经过充分测试,为集成测试做好准备。
虽然上述步骤可以保证集成测试顺利进行,但仍然存在一些问题:某些功能需要组合多个组件才能公开且正确地进行测试。如果没有合适的测试工具,这项工作的难度是巨大的。 - 嵌入式设备通常属于特定领域,需要高度垂直的测试工具。
04。嵌入式系统测试问题
(1) 嵌入式系统已经过大量优化,通常运行内存较少。随着系统变得越来越复杂,当系统软件的某一部分后来更新时,任何一个错误的出现都可能给其他部分带来不可预测的后果。
(2) 嵌入式系统的复杂性使得测试人员很难通过运行简单的测试代码来调试系统,额外的调试器将改变软件的工作方式。
(3) bug的复现极其困难,但只有稳定复现才能正确定位、解决和排查问题。
针对上述问题所产生的问题,开发团队应避免将功能测试放在开发和测试周期的最后,而应在整个项目周期中实施,频繁、彻底地执行,并仔细监控每个功能测试。 build 更新了系统性能指标,以防止由于新代码和添加的功能而导致性能下降。
尽可能独立测试每个组件也很重要。这不仅需要测试人员进行独立测试,还需要设计、运维人员共同使用敏捷和DevOps的方法来减少组件之间的依赖关系,从而使软件能够定期、可预测地发布,并且发布节奏可以定制。每个组件的特性还可以透明地发布节点和内容,提高团队内部的协调性。
版权声明
本文仅代表作者观点,不代表Code前端网立场。
本文系作者Code前端网发表,如需转载,请注明页面地址。
发表评论:
◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。