测试模型

常见的软件开发模型

﹥>﹥吖頭↗ 提交于 2019-12-23 20:07:56
软件开发过程模型 在软件开发的几十年实践中,人们总结了很多软件开发模型用来描述和表示一个复杂的开发过程,如: 1 瀑布模型 2 快速原理模型 3 螺旋模型 软件测试与软件的开发模式有着紧密的联系,作为一名测试人员,应该充分理解软件的开发模式,以便找准自己在其中的位置,从而发挥自身的价值. 瀑布模型 1 是线性模型的一种,在所有模型中占有重要的地位,是所有其他模型的一个基础 2 每一个阶段执行一次,按线性顺序进行软件开发. 测试的切入点: 测试阶段处于软件实现后,必须在代码完成后留出足够的时间给测试活动,否则将导致测试不充分,很多问题到项目后期才暴露 瀑布模型的优缺点 优点: 开发的各个阶段比较清晰 强调早起计划及需求调查 审核需求稳定的产品开发 缺点: 4. 依赖于早期的需求调查,不适应需求的变化 5. 单一流程不可逆 6. 风险往往到后期才显露,失去及早纠正的机会 7. 问题在项目后期才会开始暴露 8. 前面未发现的错误会传递并扩散到后面的阶段,可能导致项目失败 改良: 沿用瀑布模型的线性思想,细化了各个阶段,在某些重要关注的阶段之间代入迭代的思想. 快速原型模型 在开发真实系统之前,构架一个原型,在该原型的基础上,逐渐完成整个系统的开发工作. 第一步是建造一个快速原型,实现用户与系统的交互,用户对原型进行评价,进一步细化待开发软件的需求,通过逐步调整原型使其满足用户的要求

R语言第八讲 评估模型之交叉验证法分析案例

我是研究僧i 提交于 2019-12-19 01:21:51
题目 评估Auto数据集上拟合多个线性模型所产生的测试错误率。Auto数据集是存在与ISLR程序包中的一个摩托车相关数据的数据集,读者可自行下载ISLR程序包,并将Auto数据集加载。 相关资料 交叉验证 是在机器学习建立模型和验证模型参数时常用的办法。交叉验证,顾名思义,就是重复的使用数据,把得到的样本数据进行切分,组合为不同的训练集和测试集,用训练集来训练模型,用测试集来评估模型预测的好坏。在此基础上可以得到多组不同的训练集和测试集,某次训练集中的某样本在下次可能成为测试集中的样本,即所谓“交叉”。 那么什么时候才需要交叉验证呢?交叉验证用在数据不是很充足的时候。比如在我日常项目里面,对于普通适中问题,如果数据样本量小于一万条,我们就会采用交叉验证来训练优化选择模型。如果样本大于一万条的话,我们一般随机的把数据分成三份,一份为训练集(Training Set),一份为验证集(Validation Set),最后一份为测试集(Test Set)。用训练集来训练模型,用验证集来评估模型预测的好坏和选择模型及其对应的参数。把最终得到的模型再用于测试集,最终决定使用哪个模型以及对应参数。 回到交叉验证,根据切分的方法不同,交叉验证分为下面三种: 第一种是简单交叉验证, 所谓的简单,是和其他交叉验证方法相对而言的。首先,我们随机的将样本数据分为两部分(比如: 70%的训练集,30

架构师能力模型

♀尐吖头ヾ 提交于 2019-12-18 20:19:40
https://github.com/elithnever/paperreading/blob/master/%E6%9E%B6%E6%9E%84%E5%B8%88.md#架构师能力模型 架构师能力模型 架构师在很多人眼中是一个非常高大上的职业, 就像武侠小说中的绝世高手一样, 关键时刻可以起到扭转乾坤的作用, 是团队中的灵魂人物. 回想我自己做一线架构师的过程中, 也没有经历过比较系统的培训, 都是摸着石头过河. 近期在培养架构师的过程中, 促使我一直在思考, 一个合格的架构师到底应该具备哪些能力? 对希望成长为架构师的同学, 或者在承担架构师职责的同学, 需要提供哪些方面的指导和帮助, 才能让他逐步成长为合格的架构师呢? 下面我结合自己的经验, 总结了我认为对架构师来说非常重要的十项能力, 希望给那些努力成长为架构师的同学提供一点点帮助. 研发流程的持续改进 架构师不是单兵作战, 凭借个人英雄主义是无法做成大事的. 架构师一定是指挥一个团队来共同完成既定目标, 或者一个复杂项目. 在软件研发领域, 决定团队研发效率的核心在于研发流程的优化. 现阶段互联网公司大多采用敏捷研发流程, 这其中主要包括: 需求卡片的状态流转. 尽可能依靠工具实现状态的自动化流转, 减少人为操作的情况. 开发工具的选择. 比如web ide, 代码审查工具, 项目管理工具等. 代码的开发和审查

人脸算法测试

。_饼干妹妹 提交于 2019-12-16 23:08:44
人脸算法测试 本次测试主要测试: Dlib人脸检测 c++ 基于SSD 框架的 ResNet-10 restnet face c++ 基于caffe 框架的MTCNN人脸检测 c++ 基于mxne框架的insightFace人脸识别模型 python 基于Troch的openface模型 c++ 实验所用的机器 (Intel® Core™ i7-6700K CPU @ 4.00GHz × 8 GeForce GTX 1060 6GB/PCIe/SSE2) Dlib(C++) 使用的是Dlib自带d人脸检测,由于原始算法没有采用Dlib人脸识别,因此只测试了Dlib人脸检测 Dlib 代码参考 数据库 像素大小 检测数 正确率 检测平均耗时 landmark 模式 cpu 1987 960x540 1336 67.23% 43.3ms 68 Release 注: 使用的Release 模式, Debug模式下,耗时很长 测试代码见本文件夹TestDlib Restnet face (C++ ) opencv 的sample使用的模型, Caffe框架, SSD framework using ResNet-10 restnet face 到官网下载模型文件 deploy_lowres.prototxt 和download_weights.py的文件,运行得到res10_300x300

如何做好探索性测试(二)—增加维度

南笙酒味 提交于 2019-12-16 09:44:51
在 【测试理论】如何做好探索性测试(一)—基础篇 中,我们介绍了探索性测试的基础内容,我们简单回忆下主要包括:常规测试方案与探索性测试是相辅相成的、在工作中,寻找探索性测试点的时机(需求评审、用例评审)、寻找那些产品中的变量,比如:可计数的东西、地理位置、文件和存储、时间点等等、收集用户的反馈(操作的漫无目的及随机性)等。 今天我们接着来介绍探索性测试从不同的维度深入进去来挖掘测试点,其中还是以理论偏多,希望大家能耐心的看完。同时我也建议大家去读一读探索性测试的书,比如:《探索吧,深入理解探索式软件测试》。因为我的文章也是参考的这本书,通过读这本书,我深刻的感知到探索性测试确实可以作为我们常规测试的一个补充,因为它真的可以给我们提供不一样的思路,从而帮助我们挖掘更深层次的问题。 改变顺序和交互 # 试想过往我们经历过的场景:你负责测试某一个功能模块,其中有一些表单页面,当你对该功能模块非常熟悉时,你应该会使用相同的数据,快速的输入,比如:姓名你会固定使用周杰伦,地址你会使用xxx街22号等、又或者你登录app后,总是切换到首页的某个功能列表中等等。造成这种情况的主要原因有两个:思维定势和习惯,所以要有效的进行探索性测试,就必须打破这种常规习惯。 名词和动词 # 大家都清楚,一个正常的句子通常包含名词、动词和形容词,对于被测的系统来讲,我们可以尽情的找出其中的名词和动词

机器学习拐弯点

穿精又带淫゛_ 提交于 2019-12-15 20:01:49
1.线性回归:满足齐次,满足可加性 2.多项式线性回归:变量代替法换成一元 3.验证集误差不能作为测试集误差的原因? 答:验证集选模型时,人为选最高,而测试集是自然的选择过程,为了方便,做一次测试集误差就代表了多次,效果都差不多 4.不对称类数据:坏的数据少,好的数据多,为防止模型测试效果不太好,所以用测试了多少个病人,还有测的准确率,双重标准,使得结果可信度一定可信 数据对称:好的和坏的差不多1:1;在这种情况下测试,想要把把都对,那是真本事 数据局限性:对于想要测试的目标结果可能性很多时,不能够收集各种目标数据集,只能从反面做模型, 模型只能测试数据集有的可能性 大规模数据:越多拟合的越好,限制点越多 5.推荐系统 在某段时间内使用数据,做出模型,每个时间段做个,具有时效性 6.支持向量机:核函数:建立新特征? 为什么合适,没明白 7.图像文字识别 流程。。。滑动窗口做特征,做切割,特征的选择具有功能性。 8.特征 特征的选择具有功能性,特征的选择和输出具体相关性 9... 来源: CSDN 作者: chris__tina 链接: https://blog.csdn.net/chanleoo/article/details/89076348

机器学习应用开发典型步骤

白昼怎懂夜的黑 提交于 2019-12-15 07:39:10
一、数据清洗 统一同类数据的单位,去掉重复数据及噪声数据。使得数据具备结构化特征,方便作为机器学习算法的输入。 二、特征选择 从所有的特征值中,逐个分析选择合适的特征集合作为输入。 方法:1、人工选择;2、PCA算法 三、模型选择 根据问题领域、数据量大小、训练时长、模型准确度等多方面因素决定模型的选择。 四、模型训练和测试 将数据集分为训练集、测试集、验证集(交叉验证集)来进行模型训练。 五、模型性能评估和优化 考虑训练时长、数据集是否足够多是否全面、模型准确性、是否能满足应用场景的性能要求,不能则将其优化或选择其他模型。 六、模型使用 来源: CSDN 作者: 嗯_雅娴 链接: https://blog.csdn.net/silvia__y/article/details/103488018

Unsupervised Feature Learning via Non-Parametric Instance Discrimination

試著忘記壹切 提交于 2019-12-14 01:08:08
论文地址: Unsupervised Feature Learning via Non-Parametric Instance Discrimination github代码: NCE代码 摘要: 在有标签数据上训练的神经网络分类器能够很好的捕捉图片间的视觉相似性。文章假设:我们能通过训练基于实例(将每一个样本视为单独的类别)的分类器代替基于类别的分类器,得到可以捕捉视觉相似性的特征表达。我们将其总结为 非参数化实例级判别 ,并且通过**噪声对比估计(noise-contrastive estimation)**解决大量实例类别引起的计算困难。 我们的实验证明了,在无监督学习的限制下,我们的方法在ImageNet数据集上超越了当前最好方法。采用更多的训练数据和更先进的网络结构,我们的方法能够进一步提高分类准确率。通过微调学习到的特征,我们能观察到与半监督学习和目标检测任务上相当的结果。同时,我们的非参数化模型十分紧致:每张图片仅需要提取128维的特征,百万量级的图片也仅需要600MB存储空间,使得实际运行时能够很快达成近邻检索的目的。 引言 研究者在本文中提出的无监督学习的创新方法源于对监督学习物体识别结果的一些观察。在 ImageNet 上,top-5 分类误差远低于 top-1 误差 ,并且图像在 softmax 层输出中的预测值排第二的响应类更可能与真实类有视觉关联。 如图

螺旋模型

喜夏-厌秋 提交于 2019-12-13 13:21:05
螺旋模型的基本思想:使用原型及其他方法来尽量降低风险。 简单理解这种模型: 把它看作在每个阶段之前都增加了风险分析过程的快速原型模型。 螺旋模型的优点: ①对可选方案和约束条件的强调有利于已有软件的重用,也有助于把软件质量作为软件开发的一重要目标。 ②减少了过多测试(浪费资金)或测试不足(产品故障多)所带来的风险。 ③在螺旋模型中维护只是模型的另一个周期,在维护和开发之间并没有本质区别。 这是它的优势,也可能是它的一个弱点除非软件开发人员具有丰富的风险评估经验和这方面的专门知识,否则将出现真正的风险:当项目实际上正在走向灾难时,开发人员可能还认为一切正常。 来源: CSDN 作者: 青梅竹码 链接: https://blog.csdn.net/weixin_43258908/article/details/103524843

12.9总结

匆匆过客 提交于 2019-12-09 23:35:42
本周的工作主要是总结了下上次开会的内容,不太明白清楚的查找了相关内容。复习了pandas库,新接触了matplotlib数据可视化,画图功能。 还有继续看机器学习西瓜书的神经网络部分,比如: BP算法(基于梯度下降的算法,BP神经网络过拟合) RBF网络:第一步,确定神经元中心,随机采样,聚类方法 二用BP算法来确定参数连接权重和输出 ART网络: SOM网络: 级联相关网络: Elman网络: Boltzmann机: 无监督式训练 ································································································· 解决方法: 早停, 正则化:数据分为训练集(计算梯度、更新连接权和阈值)和验证集(估计误差) 若训练集误差降低但验证集误差升高停止,返回具有 最小验证集误差 的连接权和阈值 正则化:在误差目标函数中增加一个用于描述网络复杂度的部分:,用 交叉验证法 估计 交叉验证法: 就是重复的使用数据,把得到的样本数据进行切分,组合为不同的训练集和测试集,用训练集来训练模型,用测试集来评估模型预测的好坏。在此基础上可以得到多组不同的训练集和测试集,某次训练集中的某样本在下次可能成为测试集中的样本,即所谓“交叉”。数据不是很充足的时候。 多时:我们一般随机的把数据分成三份