MOOCTEST_基础课程_PIE模型

本文深入探讨了软件缺陷的三个阶段:缺陷(Fault)、错误(Error)和失效(Failure),并详细解释了它们在软件生命周期中的具体表现。通过一个具体例子,阐述了这三者之间的联系与区别,以及在复杂程序中识别和定位缺陷的挑战。

Software Fault: A static defect in the software(i.e.,defect) “缺陷”——Execution

Software Error: An incorrect internal state that is the manifestation of some faults.

        ”错误的中间状态“——Infection

Software Failure: External, incorrect behavior with respect to the requirements or other         description of the expected behavior."失效“——Propagation

PIE Model

  • Execution/Reachability:The location or locations in the program that contain the fault must be reached.
    •   A  test may not execute the location of the fault.(控制流调用较为复杂)
  • Infection 感染: The state of the program must be incorrect.
    •   A test executing the fault may not produce an error.(结果相同)
  • Propagation 传播: The infected state must propagate to cause some output of the program to be incorrect.
    •   An error may not be propagated to the output.(结果相同)

例如:

一个程序用for循环求数组和,并且求均值,但i错误的从1开始。——此时对应Fault

当程序运行后,程序将数组第一个数据跳过。——此时对应Error

程序运行结束,输出结果错误。——此时对应Failure

但是,这三种情况有时不会显而易见。

Fault. 当程序复杂时,如果程序没有运行到错误的地方则无法发现Fault。

Error. 按照上例,如数组0 4 5,求和、均值结果正确,并不会产生Error。

Failure. 按照上例,如数组4 3 5,求和发生Error,但均值没有错误,属于No Failure.

根据原作 https://pan.quark.cn/s/459657bcfd45 的源码改编 Classic-ML-Methods-Algo 引言 建立这个项目,是为了梳理和总结传统机器学习(Machine Learning)方法(methods)或者算法(algo),和各位同仁相互学习交流. 现在的深度学习本质上来自于传统的神经网络模型,很大程度上是传统机器学习的延续,同时也在不少时候需要结合传统方法来实现. 任何机器学习方法基本的流程结构都是通用的;使用的评价方法也基本通用;使用的一些数学知识也是通用的. 本文在梳理传统机器学习方法算法的同时也会顺便补充这些流程,数学上的知识以供参考. 机器学习 机器学习是人工智能(Artificial Intelligence)的一个分支,也是实现人工智能最重要的手段.区别于传统的基于规则(rule-based)的算法,机器学习可以从数据中获取知识,从而实现规定的任务[Ian Goodfellow and Yoshua Bengio and Aaron Courville的Deep Learning].这些知识可以分为四种: 总结(summarization) 预测(prediction) 估计(estimation) 假想验证(hypothesis testing) 机器学习主要关心的是预测[Varian在Big Data : New Tricks for Econometrics],预测的可以是连续性的输出变量,分类,聚类或者物品之间的有趣关联. 机器学习分类 根据数据配置(setting,是否有标签,可以是连续的也可以是离散的)和任务目标,我们可以将机器学习方法分为四种: 无监督(unsupervised) 训练数据没有给定...
### 使用 Pandas 绘制饼图 在 Python 中,可以使用 Pandas 库的 `plot.pie()` 方法对 `exercise_frequency_counts` 数据进行可视化,绘制饼图以展示各类别频率的分布情况。此方法基于 Matplotlib 实现,提供了简洁的接口用于快速生成图表。 为了绘制饼图,首先需要确保 `exercise_frequency_counts` 是一个 Pandas Series 或 DataFrame。假设 `exercise_frequency_counts` 是一个 Series,可以直接调用 `.plot.pie()` 方法进行绘图: ```python import pandas as pd import matplotlib.pyplot as plt # 假设 exercise_frequency_counts 是一个 Pandas Series exercise_frequency_counts = pd.Series({ 'A': 10, 'B': 20, 'C': 30, 'D': 40 }) # 绘制饼图 exercise_frequency_counts.plot.pie(autopct='%1.1f%%', startangle=90) plt.title('Exercise Frequency Distribution') plt.ylabel('') # 隐藏默认的 y 轴标签 plt.show() ``` 在上述代码中,`autopct='%1.1f%%'` 用于显示百分比数值,`startangle=90` 使饼图从顶部开始绘制,提升可读性。通过 `plt.title()` 和 `plt.ylabel()` 可以进一步美化图表的标题和坐标轴标签。 如果 `exercise_frequency_counts` 是一个 DataFrame,且需要指定某一列作为饼图的数据源,可以通过以下方式实现: ```python # 假设 exercise_frequency_counts 是一个包含多列的 DataFrame # 选择某一列进行绘图 exercise_frequency_counts['column_name'].plot.pie(autopct='%1.1f%%', startangle=90) plt.title('Exercise Frequency Distribution by Column') plt.ylabel('') plt.show() ``` 此外,可以通过设置 `explode` 参数突出显示某一扇区,例如: ```python # 突出显示第一个扇区 explode = (0.1, 0, 0, 0) # 仅第一个扇区分离 exercise_frequency_counts.plot.pie(explode=explode, autopct='%1.1f%%', startangle=90) plt.title('Exploded Pie Chart') plt.ylabel('') plt.show() ``` 上述方法适用于频率统计类数据的可视化,例如字符频率统计(如 `char_freq()` 函数的输出)[^1],可以直观地展示各类别在整体中的占比情况。 ###
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值