ASPICE 追溯性实践分享

01前言

接着之前的分享,遗留的追溯性ASPICE 认证实践及个人理解分享-CSDN博客文章浏览阅读961次,点赞22次,收藏17次。ASPICE是Automotive 和SPICE的组合,全英文为(Automotive Software ProcessImprovement and Determination)中文为汽车软件过程能力提升和能力评定。https://blog.csdn.net/weixin_43957681/article/details/137726102?spm=1001.2014.3001.5501我们在实践中应该如何实现各环节的追溯性呢? 本篇文章将做简单的分享,如有不足之处,欢迎批评指正。

如上图所示,追溯性主要体现在:

  • 需求拆分追溯(利益相关方需求拆解,系统需求拆解,软件需求拆解等),
  • 需求和设计的追溯(系统需求和系统架构设计,软件需求和软件架构设计)
  • 需求和测试用例的追溯(系统需求和系统测试,软件需求和软件功能测试)
  • 测试用例和测试结果(Bug)的追溯
  • 设计和测试规范的追溯
  • 需求和变更的追溯

通过解决追溯性问题,ASPICE能够确保软件开发过程中各个阶段和活动之间的关联性和一致性,从而提高软件开发的质量和可靠性。追溯性也有助于提高开发过程的可管理性和可追踪性,减少因开发活动之间的不一致性而导致的风险和问题。

02追溯微观结果示例及介绍

“微观”追溯指的是针对具体的某个需求,下图举例的是SYS.2的一个需求(需求的内容是汽车BCM部件对应的一个简单需求示例,大家无需关注需求内容)。

当建立好完整的需求追溯以后,针对特定的某个需求,直观的效果应该能够达到,需求来源于哪里,需求被拆分成了多少个更详细的需求,需求的设计是怎样的,需求的实现进度如何,需求的测试用例有哪些,需求对应用例的测试结果如何(是否产生了bug)? 

如下将对具体各个部分进行介绍:

  1. 需求的属性内容。如上图第一部分,里面描述了需求的基本内容,所属产品,描述,等属性。 实践中,该环节主要以表格的方式呈现,不同的列定义了需求的不同属性,如优先级、实现团队、时间要求等等。
  2. 需求的拆解追溯。 如上图第二部分,可以看到一个SYS-R1的需求被拆解成为了SR1.1,SR1.2,SR1.3三个软件需求。 用Child 标识了。 其实还应展示需求的上层需求 ,及需求的Parent,但实践中,有时系统需求可能会直接复用利益相关方的需求,需要根据实际情况调整。
  3. 需求的设计追溯。 如上图第三部分,此处展示的的是该需求在具体的设计文档中,被如何设计的,点击链接即进入对应设计文档或其他有引用的文档内,以查看依赖关联关系。
  4. 需求的实现过程追溯。如上图第四部分,该需求共有2个执行的任务,分别是系统需求设计,编码实现,测试用例执行。 并可以看到每一个任务当前都还是TODO的状态,即说明该需求当前还未实现。
  5. 需求的测试用例追溯。如上图第五部分,需求对应六个测试用例,其中3个用例当前未执行(no result),2个执行通过,1个执行失败。
  6. 需求的测试结果追溯。如上图第6部分,需求测试产生了一个bug【BDP-1】,且该bug和第五部分执行失败的用例是有对应关系的。

如上就是特定需求下能清晰的展现该需求的各类依赖关系。

03追溯宏观介绍

如前面的介绍,我们知道各个部分之间都存在依赖,那针对一个产品或系统,的完整需求的追溯应也要能整体追溯并呈现。如下是一个简单的示例,在实际运用中,各个阶段,拆分,产出之间是可以按需进行追溯的。(如系统需求,软件需求 ,任务执行,测试用例,测试结果)

示例一

如下显示了系统需求<--->软件需求<----->需求执行<----->测试产生的bug的关联关系。

我们可以看到SYS被拆分成了3个软件需求,并被分为三个阶段实现,并在测试过程中产生了1个bug.  而SYS-R2,SYS-R3,SYS-R4则为产生bug。 

示例二

展示了各个层级需求之间的依赖关系。

示例三

展示需求和测试结果,测试用例的追溯关系。 可以看到各需求对应的测试用例的执行情况,及产生bug的情况。

04需求基线及变更追溯

需求基线

它指的是在软件项目中确定和记录需求阶段的基准状态。需求基线通常包括了对软件系统功能、性能、界面、安全性等方面的详细描述,以及与利益相关者达成的一致意见。在需求基线确定之后,任何后续的变更都需要经过严格的变更控制流程来管理,以确保变更的有效性和对项目的影响可控。

需求基线的确定具有以下几个重要的作用:

  1. 提供清晰的目标和方向:需求基线为整个团队提供了明确的需求规范和目标,帮助所有利益相关者理解项目的范围和期望。

  2. 作为变更的参考点:一旦需求基线确定,任何后续的变更都需要与基线进行比较,确保变更的合理性和对项目的影响可控。

  3. 降低变更成本:通过严格的变更控制流程,需求基线可以帮助团队避免不必要的变更,从而降低变更引入的成本和风险。

  4. 提高沟通和协作效率:需求基线作为团队间沟通和协作的基础,帮助各个团队成员和利益相关者在项目需求上保持一致,减少误解和偏差。

需求变更对比

需求变更对比,将软件项目中的需求基线与后续发生的需求变更进行比较,以评估变更对项目的影响和可行性。Requirements Yogi提供了这个基线对比的功能。

05需求管理工具

此次使用的工具是Requirement Yogi ,该工具是基于Confluence平台为主的,详细可参考官方文档。Requirement Yogi - Requirements Management for Confluence | Atlassian Marketplace

其他工具推荐:

在Jira平台上的还有:R4J和RTM等,都是比较优秀的工具。 这个主要取决于团队人员的使用习惯,Confluence更适合文档化管理,而Jira则更容易实现条目化,但对需求人员的使用有一定要求。 

R4J : R4J - Requirements Management for Jira | Atlassian Marketplace

RTM:Requirements & Test Management for Jira | Atlassian Marketplace

市面上肯定也有一些比较优秀的其他工具,选择合适自己团队的即可。 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/825887.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

树的遍历算法题总结(第二十六天)

144. 二叉树的前序遍历 题目 给你二叉树的根节点 root &#xff0c;返回它节点值的 前序 遍历。 答案 class Solution {List<Integer> res new ArrayList(); public List<Integer> preorderTraversal(TreeNode root) {deal(root);return res;}void deal(TreeN…

C++修炼之路之继承<二>

目录 一&#xff1a;子类的六大默认成员函数 二&#xff1a;继承与友元 三&#xff1a;继承与静态成员 四&#xff1a;复杂的继承关系菱形继承菱形虚拟继承 1.单继承 2.多继承 3.菱形继承&#xff1b;一种特殊的多继承 4.菱形虚拟继承 5.虚拟继承解决数据冗余和二…

华为OD-C卷-内存冷热标记[100分]C++-100%

题目描述 现代计算机系统中通常存在多级的存储设备,针对海量 workload 的优化的一种思路是将热点内存页优先放到快速存储层级,这就需要对内存页进行冷热标记。 一种典型的方案是基于内存页的访问频次进行标记,如果统计窗口内访问次数大于等于设定阈值,则认为是热内存页,…

小程序 前端如何用wx.request获取 access_token接口调用凭据

在微信小程序中,获取access_token通常是通过wx.request方法来实现的。以下是一个简单的示例代码: 1.获取小程序的appID 与 secret(小程序密钥) 登录之后,请点击左侧的"开发管理"==>点击"开发设置" 就可以找到 2. 在javascript 中的代码: // 定…

【大模型完全入门手册】——大模型入门理论(基于Transformer的预训练语言模型)

博主作为一名大模型开发算法工程师,很希望能够将所学到的以及实践中感悟到的内容梳理成为书籍。作为先导,以专栏的形式先整理内容,后续进行不断更新完善。希望能够构建起从理论到实践的全流程体系。 助力更多的人了解大模型,接触大模型,一起感受AI的魅力! Transformer架构…

性能优化工具

CPU 优化的各类工具 network netperf 服务端&#xff1a; $ netserver Starting netserver with host IN(6)ADDR_ANY port 12865 and family AF_UNSPEC$ cat netperf.sh #!/bin/bash count$1 for ((i1;i<count;i)) doecho "Instance:$i-------"# 下方命令可以…

Rust 语言使用 SQLite 数据库

SQLite 是一种广泛使用的轻量级数据库&#xff0c;它通过简单的文件来承载数据&#xff0c;无需复杂的服务器配置。正因如此&#xff0c;它成为了许多桌面和移动应用的首选数据库。在 Rust 生态中&#xff0c;rusqlite 库为开发者提供了操作 SQLite 数据库的简洁且有效的方法。…

如何用Redis高效实现12306的复杂售票业务

12306的售票业务是一个复杂的系统&#xff0c;需要考虑高并发、高可用、数据一致性等问题。使用Redis作为缓存和持久化存储&#xff0c;可以提高系统的性能和可扩展性&#xff0c;以下是一些可能的实现方式&#xff1a; 1 票源信息缓存&#xff1a;将票源信息&#xff08;如车次…

算法刷题记录2

4.图 4.1.被围绕的区域 思路&#xff1a;图中只有与边界上联通的O才不算是被X包围。因此本题就是从边界上的O开始递归&#xff0c;找与边界O联通的O&#xff0c;并标记为#&#xff08;代表已遍历&#xff09;&#xff0c;最后图中剩下的O就是&#xff1a;被X包围的O。图中所有…

SQC、SQA

QC 品质控制/质量控制&#xff08;QC即英文Quality Control的简称&#xff0c;中文意义是品质控制&#xff09;其在ISO8402&#xff1a;1994的定义是“为达到品质要求所采取的作业技术和活动”。有些推行ISO9000的组织会设置这样一个部门或岗位&#xff0c;负责ISO9000标准所要…

Spring Boot 中 Controller 接口参数注解全攻略与实战案例详解

引言 在 Spring Boot 应用程序中&#xff0c;Controller 是 MVC 架构模式中的核心组件之一&#xff0c;负责处理 HTTP 请求并返回响应结果。为了更好地映射请求、解析请求参数、执行业务逻辑和生成视图或 JSON 数据&#xff0c;Controller 中广泛使用了各种注解。本文将全面梳…

温湿度传感器(DHT11)以及光照强度传感器(BH1750)的使用

前言 对于一些单片机类的环境检测或者智能家居小项目中&#xff0c;温湿度传感器&#xff08;DHT11&#xff09;以及光照强度传感器&#xff08;BH1750&#xff09;往往是必不可少的两个外设&#xff0c;下面我们来剖析这两个外设的原理&#xff0c;以及使用。 1. 温湿度传感…

C语言中,__attribute__关键字

在C语言中&#xff0c;__attribute__是一种特殊的关键字&#xff0c;用于提供关于变量、函数或类型的附加信息。这些信息可以用于编译器优化、代码检查或其他目的。 以下是一些常见的C语言attribute及其用法&#xff1a; 1. __attribute__((const))&#xff1a;表示一个变量的…

Prometheus指标

文章目录 Prometheus指标主要参数解释一、可用性监测(0代表存在异常或未启动,1代表运行中)二、节点监测三、服务监测1.HDFS监测2.Yarn监测3.Hive监测4.Kafka监测5.Zookeeper监测Prometheus指标 主要参数解释 # 节点IP和端口(instance) 例如:192.168.1.226:9100、192.168.1.…

java篇-Springboot解决跨域问题的三种方式

第一种&#xff1a;添加CrossOrigin注解 在Controller层对应的方法上添加CrossOrigin或者类上添加CrossOrigin package com.example.controller;import com.example.model.Book; import com.example.service.InBookService; import org.springframework.beans.factory.anno…

软件工程的生命周期

软件工程的生命周期 1.市场调研用户的需求&#xff0c;并进行可行性分析&#xff08;从多个角度分析能否达到预期收益&#xff09;。 2.立项&#xff1a;确定项目组核心骨干成员&#xff0c;以及各阶段的里程碑。 3.需求调研&#xff1a;产品经理深度挖掘用户需求&#xff0c;将…

简明 Python 教程(第14章 Python的多线程)

Python多线程是指在Python程序中可以同时运行多个线程&#xff0c;每个线程可以执行不同的任务。Python提供了两个标准库来支持多线程&#xff1a;threading和_thread。通常&#xff0c;推荐使用threading模块&#xff0c;因为它提供了更高级别的API&#xff0c;更易于使用。 …

嵌入式4-18

做一个简单数据库终端操作系统 #include <myhead.h> int main(int argc, const char *argv[]) {int id;char name[16];float score;sqlite3 *pNULL;if(sqlite3_open("./my.db",&p)!SQLITE_OK){printf("sqlite3_open error\n");return -1;} …

python中中英文打印对齐解决方案

在python中&#xff0c;有时候会出现中英文混合输出的情形&#xff0c;但是由于中文默认是全角格式&#xff08;一个中文字符占用两个字符宽度&#xff09;&#xff0c;这会对python原生的print函数带来一些障碍。尤其是用户用print对齐输出的时候&#xff0c;这种差异会导致文…

顺序表链表经典算法题

1.链表反转 typedef struct ListNode listnode; struct ListNode* reverseList(struct ListNode* head) {if(head NULL){return head;}listnode* p1 NULL;listnode* p2 head;listnode* p3 head->next;while(p2){p2->next p1;p1 p2;p2 p3;if(p3)p3 p3->next;}…