
软件工程学习内容
文章平均质量分 93
暖仔会飞
这个作者很懒,什么都没留下…
展开
-
第九章:Code-Coverage-Guided Fuzzing
• 在执行多字节相等性测试的程序中,覆盖范围仍然可能受限(例如比较两个4字节整数),因为这样的比较不会提供增量反馈给模糊器,以使其发现通过测试所需的输入。根据类似的论证,只需要对输入“bood”进行约700次变异,就能使生成输入**“baod”**的概率超过50%,揭示第二个分支并添加第三个有趣的输入。但是现在,与之前的程序不同,它只有两条路径(允许覆盖引导模糊器逐字节地增量发现所需输入),• 对于已知输入格式的程序来说,生成-模糊和类似技术可能表现更好,因为它们可以避免覆盖引导模糊的缺点。原创 2023-11-06 22:12:10 · 402 阅读 · 0 评论 -
第七章:计算failure概率
随着时间越来越长,有 failure 的操作的总体数量还在增多,但是增长率会放缓,因为更多的 fault 被排除,例如第一次检验这个 operation 的时候有 10 个错误,把错误都修好了之后,到了第二轮可能找到了 2 个,那么这就是虽然总体的 P 在上升,但是斜率放缓(slope slows down.)记录的标准是:当预期的 result 和真实的 result 发生偏离,就记录当时的 time,以及这个 failure,然后移走这个错误。以最大化观察到的故障强度的可能性。原创 2023-11-06 18:56:45 · 344 阅读 · 0 评论 -
第八章:security testing
缓冲区溢出是一种未定义行为:程序执行某些操作导致其未来的行为变得不可预知。它可能继续工作,也可能做一些完全无法预测的事情,比如在成功进行远程代码执行攻击时执行攻击者提供的代码。在大多数编程语言中,尝试在运行时除以0将导致运行时错误。例如,在C和C++中,这通常会导致程序崩溃或抛出异常(如果使用了异常处理机制)。NULL 指针表示它不指向内存中的任何有效位置。尝试解引用(即访问其指向的内容)一个NULL指针将导致未定义行为。在实践中,这通常会导致程序崩溃,因为操作系统阻止程序访问那些没有授权的内存区域。原创 2023-11-06 18:55:10 · 240 阅读 · 0 评论 -
第九章:Dynamic Symbolic Execution
可以计算出z14z=14z14并且 z 的 state 应该是2∗y02*y_02∗y0。原创 2023-11-06 18:46:00 · 344 阅读 · 0 评论 -
第六章:Property-based Testing and Test Oracles
这对于复杂领域特别有用,在这些领域中,自动推导预期输出所需的过程与程序本身一样复杂,并且手动推导需要具备测试工程师不太可能具备的专业知识。例如,数据库的一个简单启发规则是,当向表中插入新记录时,**该表中记录的数量应增加1。solved samples 指的是那些已知结果的测试案例,这些结果通常是由专家提供的,或者是通过可靠方法获得的,以确保其准确性。为了进行变态测试,我们生成一个程序输入,并执行此输入,然后生成另一个与第一个输入相关联的输出。相关联,它们通过我们的程序运行后,它们的输出将由另一种属性。原创 2023-11-06 17:54:39 · 437 阅读 · 0 评论 -
第一章 introduction to software testing
一旦准备好可执行的测试用例,下一步是在被测程序上执行测试输入,**并记录软件的实际行为。**例如,记录功能测试输入产生的输出,或者测量执行性能测试输入所需的时间。也就是说 testing 是为了发现 difference between specification and implementation。问题在于大多数程序员和质量保证人员没有具备证明程序正确性所需技能。testing 和 debug 是不同的。这句引语表明测试的目的是为了。并且不能用来证明实现是正确的。,并消除或修复它们。原创 2023-11-05 18:54:15 · 346 阅读 · 0 评论 -
高完整性系统——霍尔逻辑
同样的方式:当 作为 的时候, 我们也很容易推出就是 但是这里的 被是 这是因为,我们反向推理(backwards) 的难度低于正向推理 (forward)还有一种理解方法就是:x>5=>x>3x>5 => x>3x>5=>x>3 因此我们说 x>5x>5x>5 是更加严格的条件;也就是更加 的条件。同样的我们来看这个 如果我们能够通过 得到 我们可以根据 这个条件推导出其他更加宽松的 ,比如 x>2x>2x>2,此时我们的式子可以写成这样:{x=2}x:=x+1{x>2}\{x=2原创 2023-06-12 22:08:05 · 2005 阅读 · 1 评论 -
Ada Tutorial(3)SPARK2——Post condition + Loop Invariant 后置条件 + 循环不变量
因为它描述了每次循环迭代结束时的预期状态。但是,它们在语义上是不同的:后置条件描述的是程序结束时的状态,而循环不变量描述的是循环的每次迭代。循环不变量和后置条件(postcondition)都是用于验证程序正确性的关键工具,但它们在具体用途上有一些区别。问题: If you have time: Look at the assert statements in。在形式化方法和程序验证中,通常会同时使用循环不变量和前置/后置条件,以帮助保证程序的正确性。问题: Now run the。原创 2023-06-12 15:52:41 · 1053 阅读 · 0 评论 -
Ada Tutorial(2)SPARK Examiner + SPARK Prover
在Ada和SPARK中,SPARK_Mode是一个编译指示,它表示随后的代码将使用SPARK语言规则进行编译和分析。在with的影响下,编译器会在编译过程中应用SPARK语言规则,它比Ada有更严格的要求,例如禁止某些可能导致不确定行为的构造。此外,打开SPARK_Mode还会允许一些只有在SPARK中才有的特性,例如契约(即前置条件和后置条件)。的具体影响可能会因编译器和SPARK工具的版本而略有不同,但基本上,这个编译指示都会让编译器对随后的代码应用SPARK语言规则。在上面的代码中,原创 2023-06-12 15:04:16 · 1203 阅读 · 0 评论 -
Alloy Tutorial(3)Traces Modelling —— Cache Memory
总结一下,这两段话的主要内容是:在Alloy模型中,我们可以通过建立轨迹的模型,来生成可能导致违反不变性的操作序列。具体来说,我们需要定义两个fact,一个声明轨迹的初始状态,另一个声明在任何时候,要么进行一个操作,要么状态不变。这个结果对你理解在基于轨迹的 Alloy 模型(即那些建模操作序列的模型,而不仅仅是单个的转换)中,这两种方式的含义有什么启示?给出了两种编写的方式,并询问你在给定初始化 fact 后,哪种方式会生成反例(即违反不变量的情况),哪种方式不会。,核心的思想是,一个。原创 2023-06-11 23:18:43 · 782 阅读 · 0 评论 -
Alloy Tutorial(1)Alloy 基本使用
这个谓词的含义更为广泛,它实际上描述的是一个连通图,连通图的特性就是对于所有的节点对,至少存在一条边使得这两个节点是连通的。注意,这并不意味着图是无向的,因为它并未要求如果存在从u到v的边,那么必须存在从v到u的边。这个谓词表示在图 g 中,对于所有的节点 u 和 v,都存在从u到v的边,并且从v到u的边。这个谓词实际上在描述一个无向图,因为无向图的特性就是如果存在一个从u到v的边,那么必须存在一个从v到u的边。这种逻辑符号进行连接是肯定不对的。这个谓词表示在图g中,原创 2023-06-11 16:36:29 · 1605 阅读 · 0 评论 -
高完整性系统(7)Formal Verification and Validation
Alloy是一种用于构建和检查抽象模型的语言和工具。当Alloy说所有断言都成立时,这意味着你的模型或规格在给定范围内已成功通过了所有的断言检查。换句话说,对于你所定义的所有属性,Alloy的分析器已经找到了证据来确认这些属性在你的模型中是正确的。然而,这并不一定意味着你的规格就是正确的。Alloy的分析器基于有限范围进行检查,所以只能证明在给定范围内没有找到反例。如果在更大的范围内有反例存在,Alloy就可能无法检测到。Alloy只能检查你明确编写的断言。原创 2023-06-06 23:00:45 · 625 阅读 · 0 评论 -
软件过程与项目管理复习(1)
创造一种独特的产品、服务或成果的暂时努力。successful:按时完成,按预算完成,功能都实现challenged:完成但是超时或者超预算,或者少点功能失败:没有成品,项目中途取消时间容易把握change 厌恶客户可以得到很快且高质量、连续的交付更强调人的感受和交互,不那么重视流程和工具关心技术更新,好的设计和质量拥抱 changing很难开始的时候评估所需的 effort占用客户的时间对新手不友好对 team 来说可能很紧张。原创 2022-11-01 19:23:14 · 2645 阅读 · 0 评论 -
软件过程与管理:configuration management
提交和评估变更请求,以评估技术价值,潜在的副作用,对其他配置对象和系统功能的总体影响,以及保护变更的成本。其思想是检查配置对象与其他配置对象的一致性,以查找任何遗漏或查找潜在的副作用。变更控制是软件生命周期中的手动步骤。它结合了人工程序和自动化工具。状态报告可以采用多种形式,但最常见的目的是报告。大型项目跟踪存储库状态的常用方法。原创 2022-10-10 17:34:07 · 668 阅读 · 0 评论 -
软件项目管理:外包 outsourcing、采购 procurement、合同 contracts
合同是所有由外部方交付的活动的真实来源之一一种相互具有约束力的协议,规定卖方有义务提供指定的产品或服务,而买方有义务为此付款一份明确职责并聚焦于关键需求的文件——可交付成果、质量、时间框架等一份文件必须详细和准确,因为它们是用作最终位置的(你放入它们就会得到它们)。很少被使用或依赖,被视为最后一个调用点(发生争端无法解决的时候会通过合约解决)。合同中应包括考虑到项目特有问题的具体条款——质量、时间、地点等主要合同条件应包括:知识产权所有权和赔偿里程碑和可交付成果。原创 2022-10-10 15:05:47 · 1720 阅读 · 0 评论 -
软件过程与建模学习之:Ethics, ACs Code Ethics, IEEE Code of Ethics
Ethics原创 2022-09-19 23:40:25 · 544 阅读 · 0 评论 -
软件过程与建模学习之:Quality Management
通常,终端用户通过与产品的交互来判断产品的质量。对于用户来说,如果一个系统适合于目的,可靠,性能合理,易于学习和使用,并帮助用户实现他们的目标,那么这个系统就是有质量的。有时,如果功能很难学习,但非常重要,值得学习,那么用户仍然会判断该系统具有高质量。这些被称为外部质量特征,因为它们通常与系统的外部行为相关联。原创 2022-09-19 23:07:30 · 871 阅读 · 0 评论 -
软件过程与建模学习之:Individuals,Motivation and Teams
团队组建、个人激励原创 2022-09-19 18:05:45 · 516 阅读 · 0 评论 -
软件过程与建模学习之:Cost Estimation
一种指定对软件系统的期望的文档;简称系统的要求。原创 2022-09-19 13:00:55 · 504 阅读 · 0 评论 -
软件过程与管理学习之:项目计划(Project Schedule)
整个项目的时间取决于 PERT 图中的红色链条的时间总长度,因为这些 critical path 上的时间富裕都是 0,即没有回旋的空间 (free slack = 0)原创 2022-09-18 12:58:48 · 1359 阅读 · 1 评论 -
前端学习之:vue2 和 vue3 router 安装; vue2 的路由配置及使用;路由守卫
【代码】前端学习之:vue2 和 vue3 router 安装;vue2 的路由配置及使用。原创 2022-09-10 12:18:12 · 777 阅读 · 0 评论 -
前端学习之:Vue 中使用 element UI 和 echarts 创建组件的步骤(echarts 的全局使用和组件内使用);官网 elementUI 按需引入错误的相关修正
【代码】前端学习之:Vue 中使用 element UI 和 echarts 创建组件的步骤。原创 2022-09-10 11:40:16 · 1708 阅读 · 1 评论 -
前端学习之:Vue + ElementUI 通过栅格布局排放多个走马灯,并在走马灯上同步显示文字
【代码】前端学习之:通过栅格布局排放多个走马灯,并在走马灯上同步显示文字。原创 2022-09-10 11:01:04 · 2650 阅读 · 0 评论 -
软过过程与管理学习之(2)Process Control(流程控制)
agile 不是一种特定的模型,而是:一种基于迭代开发的框架,其中需求和解决方案通过自组织的跨功能团队之间的协作演进一个规制化的过程,鼓励经常检查和适应一种鼓励团队合作、自我组织和责任的领导理念一组工程最佳实践,旨在允许快速交付高质量的软件将开发与客户需求和公司质量相结合的业务方法通过快速、持续交付可用的软件来满足客户需求更强调成员的作用和互动行为,这些比工具更重要持续关注技术的卓越,良好的设计和质量适应不断变化的环境。...原创 2022-08-27 23:03:10 · 1307 阅读 · 0 评论 -
软件过程与管理学习之(1)Project management Methodologies & Standards(项目管理方法和标准)
项目管理方法和标准原创 2022-08-27 22:51:04 · 598 阅读 · 0 评论 -
MCSS复习
通过 lock variable 来解决:不能完美解决,因为 A,B 如果同时进入 1 行,就不能保证问题解决,除非 A 执行完第二行之后 B 才尝试第一行通过 busy waiting :这种要求 A,B 必须交替执行,如果 A,B 其中一个在 noncritical_region 执行的时间很长,那么就可能导致另外一个一直保持等待。如果给取钱一个 while 循环,让 child 可以随时检查账户余额并取钱挥霍这样的程序可能因为操作系统的不同而产生一个问题:这个问题可以用 解决;这个关原创 2022-06-06 00:16:48 · 501 阅读 · 0 评论 -
建模复杂系统之(1):系统概念,复杂系统的 working defination,复杂系统性质;对系统进行建模的技术种类;复杂系统的建模流程;建模复杂系统的意义
建模复杂系统原创 2022-06-02 13:22:52 · 1011 阅读 · 0 评论 -
AI(人工智能:一种现代的方法)学习之: 不确定性(Uncertainty)Expectimax & multi-agent(多代理)
文章目录ExpectimaxMulti-AgentExpectimax在最大最小搜索树中引入了概率因为在大多数情况下的真实世界都是按照概率发生事件的但是 expectimax 不能进行和 minimax 相似的剪枝策略因为要计算每个绿色节点的具体值需要将所有的叶子结点都遍历一下然后根据概率求出;因此不能使用剪枝策略Multi-Agent之前讨论的情况都是两个代理之间的对抗搜索,在对砍搜索的情境下两个 agent 使用的博弈方法是 sum-zero 博弈,即都认为对方的策略是最原创 2022-05-30 14:39:54 · 1817 阅读 · 0 评论 -
AI(人工智能:一种现代的方法)学习之: 对抗搜索(adversarial search)Minimax / alpha-beta pruning
文章目录博弈类型零和博弈 zero-Sum Games普通博弈 general Games非博弈的情况博弈情况(博弈树)最大最小算法博弈树剪枝(game tree pruning)Alpha-Beta Pruning(alpha-beta 剪枝)博弈类型零和博弈 zero-Sum Games进行博弈的多个 agent 之间采用的 utility (values on outcomes) 是相对的,即如果当前的 agent 的 utility 是正值,那么对方就一定是负值,我们把这种博弈的状态叫做 p原创 2022-05-29 14:51:10 · 1512 阅读 · 0 评论 -
AI(人工智能:一种现代的方法)学习之:CSP(Constraint Satisfaction Problems) 约束满足问题:通过结构(Structure)加速 CSP 的求解 / 迭代提升算法
文章目录回顾加速 CSP 求解的算法K-consistency(K一致性)节点一致性 node-consistency / Unary consistency弧一致性(binary-consistency)K-consistency强 K 一致性(Strong k consistency)Structure独立子问题(independent subproblem)树结构的 CSP(tree structured CSPs)CSP 中树结构的结论类树结构的 CSP(Nearly Tree-Structured原创 2022-05-28 18:48:14 · 3416 阅读 · 0 评论 -
机器学习理论之(15):聚类算法的无监督(unsupervised)评估方式 Cohesion(内聚度),Separation(离散度),Compactness(致密度)
文章目录内聚度 Cohesion离散度 Separation簇致密度 Cluster compactnessProximity 距离衡量方式Hamming 距离度量致密度聚类算法本身是一种无监督算法,但是对于聚类算法的评估方式却存在(supervised)有监督 和 (unsupervised)无监督 两种;本讲主要讲无监督的评估方式,这种评估方式不需要借助标签有监督的评估方式可以参考我的上一篇博客:机器学习理论之(14):聚类算法的有监督(supervised)评估方式:purity v.s.原创 2022-05-27 23:49:26 · 1263 阅读 · 0 评论 -
机器学习理论之(14):聚类算法的有监督(supervised)评估方式:purity v.s. entropy
文章目录纯度 Purity熵 Entropy聚类算法是一类典型的无监督算法,那么为什么还有有监督的评估方式呢?所谓的 “无监督” 算法指的是模型对于数据的训练和划分不依靠数据的标签,但是我们可以用标签来判断这个模型划分的是不是符合我们的要求。纯度 Purity假设对包含 NNN 个样本的数据集,用 kmeans 划分成 kkk 个聚类簇 Ci,...CkC_i,...C_kCi,...Ck,∣Ci∣|C_i|∣Ci∣ 表示的是这个簇中的样本个数,Pi(j)P_i(j)Pi(j) 代表在原创 2022-05-27 23:13:23 · 3377 阅读 · 0 评论 -
机器学习理论之(13):感知机 Perceptron;多层感知机(神经网络)
文章目录表示学习 (representation Learning)生物神经元 V.S. 人造神经元感知机 (Perceptron)训练感知机(Training Perceptron)表示学习 (representation Learning)表示学习是神经网络的一个常见应用例如图像相关的任务,数据的特征维度太高(通常在几十万上百万的维度,因为图像的每个像素点都是一个特征)深度学习中常用 embedding 来对高维度数据进行处理,将其重新编码成维度较低的特征。深度网络可以通过学习 embedd原创 2022-05-26 15:28:19 · 3848 阅读 · 2 评论 -
机器学习理论之(12):模型评估II——模型偏差/方差;评估偏差/方差;模型泛化性评估
文章目录Evaluation 第一阶段交叉验证混淆矩阵精确度 & 错误率Evaluation 第二阶段泛化性过拟合 overfitting过拟合的原因欠拟合 underfitting训练曲线观察泛化性Example 1Example 2模型偏移和方差(bias and variance)公式定义偏差 Bias方差 Variance目前已经学习了多种机器学习模型:朴素贝叶斯逻辑回归SVMKNN决策树随机森林等集成学习算法也学习了特征选择等有效的提升模型精度的方法今天在这部分内原创 2022-05-24 13:04:22 · 1442 阅读 · 0 评论 -
机器学习理论之(11):基于样本的学习(instance-based learning)——KNN 算法
文章目录什么是 Instance-based learning如何比较样本(Comparing Instances)特征向量 (Feature Vectors)特征向量的度量(Similarity / Distance)相似度 (Similarity)余弦相似度(Cosine Similarity)距离(Distance)欧几里得距离 (Euclidean Distance)曼哈顿距离(Manhattan Distance)Hamming 距离Instance-Based 分类器最近邻分类器(Nearest原创 2022-05-23 23:58:30 · 1801 阅读 · 0 评论 -
机器学习理论之(5):逻辑回归的原理
文章目录逻辑回归 (logistic regression)逻辑回归如何解决分类问题回忆一下普通的回归问题逻辑回归要解决的问题解决之道:sigmoid对数几率优化目标逻辑回归的多分类问题逻辑回归 (logistic regression)在线性回归问题中,我们使用的 features 来得到的预测 output 是连续的值在分类任务中,我们得到的 output 是离散的值逻辑回归虽然叫 “回归” 但其实解决的是分类问题逻辑回归如何解决分类问题将本来连续的标签进行离散化。例如:原本通过原创 2022-04-18 18:09:21 · 1153 阅读 · 0 评论 -
机器学习理论之:(3)连续变量情况下的朴素贝叶斯,高斯贝叶斯(Gaussian Bayes),核密度估计(KDE )
离散数据,连续数据及对应贝叶斯公式回顾朴素贝叶斯公式c^=argmaxcj∈CP(cj)∏iP(xi∣cj)\hat{c}=argmax_{c_j\in C}P(c_j)\prod_i{P(x_i|c_j)}c^=argmaxcj∈CP(cj)i∏P(xi∣cj)连续变量中 P(xi∣cj)P(x_i|c_j)P(xi∣cj) 的求算上面图中的 P(xi∣cj)P(x_i|c_j)P(xi∣cj) 看起来好像是均匀分布的,但是真的是这样么?如果我们可视化这些数据我们原创 2022-03-15 18:33:54 · 3611 阅读 · 3 评论 -
机器学习理论之(9):特征选择 Feature Selection
文章目录为什么要进行特征选择特征选择的主要目标其他目标特征选择的方法Filtering 过滤法Pointwise Mutual Information (PMI) 逐点互信息法Mutual information (MI) 互信息法χ2\chi^2χ2卡方检验Wrapper 包装法AdvantagesDisadvantages可实现的 Wrapper 方法sequential forward selectionsequential backward selection模型选择的常见问题特征类型类别、标签 (原创 2022-04-23 21:35:43 · 4587 阅读 · 1 评论 -
机器学习理论之(7):核函数 Kernels —— 一种帮助 SVM 实现非线性化决策边界的方式
文章目录回顾SVM 的优化目标如何构造 f1,...,fnf_1,...,f_nf1,...,fnlandmark & similarity如何产生非线性边界如何选取 landmarksSVM结合核函数关于 SVM 的原理和为什么 SVM 总是选用大的 margin 来决定决策边界,我在文章:https://blog.youkuaiyun.com/qq_42902997/article/details/124310782中给予了阐述,如果不明白的可以回顾一下回顾SVM 的优化目标CΣi=1myic原创 2022-04-22 03:48:54 · 993 阅读 · 0 评论 -
机器学习理论之(6):由逻辑回归(对数几率)方法到 SVM;为什么 SVM 是最大间隔分类器
文章目录回顾对数几率逻辑回归代价函数的另一视角SVM 的改进为什么 SVM 叫最大间隔分类器向量点积为什么 SVM 不选择小的 margin当 SVM 选择合理的 margin回顾对数几率在我上一篇文章:https://blog.youkuaiyun.com/qq_42902997/article/details/124255802?spm=1001.2014.3001.5501 中讲了逻辑回归的原理和优化目标:在每一次梯度下降执行的 step 中,我们都需要对每一个样本进行求算,对于样本 xix_ixi,原创 2022-04-22 01:14:54 · 1620 阅读 · 1 评论