如何写一个好的缺陷,大牛都是这样的做的

如何规范的描述一个缺陷 我们做测试,很核心的工作就是找缺陷。找到了缺陷,我们要修改掉。是开发人员修改,测试人员找出缺陷。要让开发人员知道,就会有一个缺陷的描述和转交。 1.缺陷的描述 描述一个缺陷,最少需要三个要素:详细描述、标题、附件截图 1.1 详细描述 在这里,我们作为测试人员必须让开发人员知道这个缺陷是什么。我们一般需要将整个操作过程描述出来 描述操作过程:1.有哪些步骤,中间用了什么数据。 数据说明:用户名:a... 阅读详情

缺陷管理

缺陷管理是最开始也是最基础的测试必备技能。在工作了很多年后仍然会发现大量的测试人员没有办法合理的做好缺陷管理。
在我眼中的缺陷管理包含以下几层概念:

  1. 缺陷的描述
  2. 缺陷的定义
  3. 缺陷的跟踪
  4. 缺陷的度量分析

也许你觉得作为测试提一个缺陷很简单,但是要提一个好的缺陷其实是非常难的。在这里其实还有个隐藏的属性,叫做缺陷的概念,也就是说什么是缺陷?
一般来说缺陷有两种情况,一个是违反了所谓的规则,还有一种是我们无法接受这样的情况。比如对于美来说,每一个人心目中都有一种对美的定义,你会觉得她很美,但是换个人来看待就未必。所谓的情人眼里出西施应该是指个人需求下的狭义定义。而大众情人就是那种所谓的约定俗成的广义规则。
我们做一个软件面向的对象是不同的,甚至我们需要超出用户需求来做一点东西的,所以对于缺陷的判断成为了一个非常困难的事情,这里只能说对于缺陷这种东西,不要用肉眼去看要用心眼去看。

缺陷的描述

关于缺陷的描述,无非就是当别人看到你写了一堆关于这个缺陷的巴拉巴拉后,是不是明白了5w1h,然后能够根据你的建议开始进行缺陷的修改。本质上有一点就是缺陷的描述就像议论文,一定要有说服力。如果你写出来的东西都不能让别人觉得有道理,你又怎么让别人愿意按照你的逻辑去修改这个缺陷呢。
为了方便把缺陷写的更容易理解,所以现在无论是Excel的记录方式还是使用系统的记录方式,我们都会将一个缺陷分割为很多个属性,来便于管理和理解,常见的属性包括:
标题,详细说明,版本,环境,发现人,发现时间,修复人,修复时间,修复说明,状态,严重级别,优先级别等。
本着不浪费笔墨和浪费阅读者理解的前提下,缺陷应该是写的越简单越说明问题是最好的。但是在我遇到的大多数情况下,作为小白写出来的缺陷往往是无法阅读和理解的,因为小白总会觉得自己写出来的东西别人肯定看得懂,而忽略了很多背景或者参考的说明,常见的问题无非是:
我的xx功能出错了;点击某个按钮无效果;无法启动软件等。
包括在各个QQ群的提问,也经常会出现这样的无头无脑,毫无内涵的提问,让别人完全无法回答。甚至常常让我想当你在工作几年后开始学习自动化或者性能测试的时候,连一个问题或者缺陷都无法合理明确的描述出来,你做自动化和性能测试能靠谱么?能解决问题么?
但是写好一个缺陷又不是简单看几个例子就行的,它需要时间和足够多的练习才能做到,让别人看了会明白what、why、where、when、who以及how,甚至还能明白什么是对的,并且应该做成什么样。
如果想要提升自己的缺陷描述能力最简单的方法就是学会吐槽,而且要吐槽吐的到位,那么你就能在生活中反复的锻炼如何使用最精简的语句来说明问题的关键,而不是总在问题的外围徘徊;而同样命中靶心的另外一个要素就是你能从本质知道这个问题的“身世”,就像你手中的一个小骰子,只能有这样几种结果。
等你能够通过吐槽收集能量让你的呆毛蹦起的时候,你就能完成让别人俯首称臣,乖乖改你的BUG了。

缺陷的定义

在这里缺陷的定义主要是指如何判断缺陷的严重级别和优先级别,而不是这个问题是一个建议还是一个缺陷?请注意我用了建议和缺陷来区分问题的两种情况。这和前面说到的有类似之处到底你确定了这是一个问题,还是你觉得这样可能不太合理。
当一个问题被提出,该问题必须要让别人非常明确的看出它到底会带来什么后果,需要在什么样的时间内修复,这样才能有效的让别人重视它。看过蝴蝶效应的朋友应该知道,一个问题如果被轻视,那么随着放大后其结果可能是非常严重的,也许只是一个很小的疏忽或者不重视。
对于提交缺陷的我们来说,需要有能力去评估一个问题的优先级(是不是应该立即修复)和严重级别(它会带来什么样的后果),而优先级和严重级别之间又不是完全强联系也并非完全没有联系。
或许大家对优先级和严重等级的概念会混淆,觉得有点模糊。一般大家会觉得严重等级高的BUG,优先等级一定为高。但这仅是一个包含于的关系,会存在这样一种情况严重等级低(或许只是小的界面问题,例如图片在页面的位置不精确),但优先等级高。或许这样说比较抽象。那么我们来举个例子,INTEL 对于企业LOGO 的精确度要求很高,因为这代表了企业形象。所以有关于LOGO 的相关BUG对于系统的严重等级为低,但优先等级都是高的。 缺陷的属性与你所属的行业以及公司文化也是息息相关的。
当没有经验的时候,或者你无法知道该问题是否在关键路径以及影响的后果时,问问有经验的人是比较好的方式。而这也是测试人员的一个基本功,能够分清楚轻重缓急。

缺陷的跟踪

可能大家对缺陷的跟踪相对来说比较熟悉,因为基本上如果工作了都在使用缺陷系统,不断处理着缺陷的生存周期(new,fix,reopen,close等等),缺陷生存周期的目的是为了方便我们跟踪一个缺陷的不同状态,判断其所在的阶段。
而在不同公司,不同的流程下,该流程也不尽相同,合适自己公司的才是最好的。好比缺陷跟踪就像是快递跟踪一样,以前我们发一封邮件,完全不知道对方什么时候收到,现在这封邮件到哪里了,而现在我们可以非常方面的在网站上随时查询得到该快递所在的具体位置及签收过程。
那么对于小白来说首先要理解缺陷跟踪及状态的原理,进一步还要能配置管理这样的系统,帮助公司完成这样的管理工作。
缺陷的度量分析
在有了好的缺陷描述,好的定义和跟踪后,那么基本上缺陷已经可以很好的在某个系统内运转起来了,接着我们要做的事情说得好听点就是大数据分析了。从这些项目数据中,我们要分析出一些藏在数据后的规律,比较常见的包含:

  1. 常见缺陷导致的原因
  2. 常见缺陷被修复的时间
  3. 系统每天新增或修复的缺陷数
  4. 缺陷的收敛情况

这些数据可以有效的帮助我们看出一些以前看不出的问题,但是这个在中国效果并不明显,因为我们的数据进入就存在不少的国情,而在分析及结果处理上也存在着相应的国情,所以一般公司在做度量分析的时候,往往是越做效果越差,吃力不讨好。但是不得不说不能因为它效果不好而不做它,如何正确的采集、分析数据,需要一些时间和团队成熟度后,才能发挥其效果的。
对于缺陷管理这次我提的内容会比较概念点,因为缺陷本身的例子外面很容易查找到,而大家也会有一些自己比较成熟的看法,让我想起如何拍一张好照片的问题了,答案是啥呢?
如果你想拍一张好照片,请先拍1000张照片,选最好的哪一张作为参考!
如果你想写一个好缺陷,请先写1000个缺陷,选最好的哪个缺陷作为参考吧!

结语

跟大家推荐一个学习资料分享群:175317069,里面大牛已经为我们整理好了许多的学习资料,有自动化,接口,性能等等的学习资料!人生是一个逆水行舟的过程,不进则退,咱们一起加油吧!

工业缺陷检测中数据标注需要注意的几个事项 这段时间帮朋友做了一个电容检测的项目,他们是第一次接触深度学习,自然也是第一次自己打标签。很多人总觉得会搞网络才是大牛,实际上,在工业场景中,网络结构决定了下限,数据决定着上限,要想模型有好的表现,数据是至关重要的。下面就这个项目来说一说,工业缺陷检测在标注数据时需要注意的几个事项: 1、离得比较近的缺陷就合并在一个框里 以上两个图里的缺陷都是可以合并的,一是为了保持缺陷的完整性,同一个缺陷被标注成好多个,会给神经网络造成误解,同时也避免出现多个小目标。 2、尽量不要有太细长的目标 神经网络的卷积基本上 阅读详情

相关推荐

Hand-Eye 标定误差分析:从理论到 C++ 实现

本文深入探讨了机器人手眼标定中的核心环节——误差分析。文章从AX=XB方程的理论残差出发,详细解析了旋转与平移误差的数学定义与物理意义,并提供了一个工业级的C++实现代码,用于计算重投影误差。通过误差分析,工程师可以量化标定精度,诊断问题根源,从而确保视觉引导机器人系统在实际应用中的可靠性与精确性。

c7d8e的博客 697

一条缺陷都记录那些内容?如何提交高质量的缺陷?

**缺陷内容包括:**缺陷的标题、缺陷类型、详细步骤、期望结果、缺陷等级、优先级、截图、日志信息等,以及指派给那一个开发; 怎样提高高质量的缺陷: 1) 缺陷的标题尽量简单、明确、完整; 2) 尽量使用惯用的表达术语和表达方法,保证表达准确专业; 3) 一个缺陷报告只包括一个缺陷,复现步骤描述清楚; 4) 是UI问题的话,尽量配上截图标注好有问题的地方;功能问题,尽量配上视频;闪退一类的bug配上log日志等; 5) 一些特殊数据出现的bug,需要备注好数据信息; 6) 一些非必现的问题,多测试几遍,然后备

不问江湖 3566

Vben Admin权限管理全解析:从动态菜单到按钮级控制(附代码示例)

本文全面解析Vben Admin框架的权限管理系统,从动态菜单生成到按钮级细粒度控制,提供完整的实现方案和代码示例。深入探讨基于角色-权限模型的架构设计,分享前后端协作的最佳实践,帮助开发者快速构建安全高效的企业级后台系统。

weixin_30919429的博客 487

如何有效地描述软件缺陷(Defect)?

如何有效地描述软件缺陷(Defect)? 作为软件测试人员,最基本的一项技能就是如何把所发现的缺陷(Defect)准确无歧义的表达出来,尤其还是全英文表达的时候。   其实从缺陷的描述也可以看出一个软件测试人员的基本功,甚至可以看出测试人员在做一些自由测试的时候的投入程度。   本文主要以缺陷出现的频率来说明测试人员在遇到不同频率的缺陷的时候如何做?   缺陷的频率主要有:Al...

mmdev 964

Unity游戏开发实战:如何用科大讯飞离线语音合成SDK实现NPC对话(附完整代码)

本文详细介绍了如何在Unity游戏开发中使用科大讯飞离线语音合成SDK实现NPC对话系统。通过完整的代码示例和优化技巧,开发者可以快速集成本地语音合成功能,提升游戏沉浸感,同时避免网络延迟问题。文章涵盖SDK集成、核心语音合成模块实现以及高级应用技巧,特别适合RPG游戏开发者参考。

weixin_29268385的博客 182

【自动驾驶】汽车智能驾驶计算芯片

本文介绍汽车智能驾驶计算芯片的软硬件要求、 可靠性和安全性要求、 性能要求,和相应的试验方法。除了用于汽车智能驾驶, 其他领域的计算芯片可参照执行。

Mr.Cssust的博客 2631

如何写一个好的缺陷(Defect)报告

目录缺陷报告概述缺陷报告作用缺陷报告要素缺陷报告案例面试题 缺陷报告概述       测试工程师需要利用对需求的理解、高效的执行力以及严密的逻辑推理能力,迅速找出软件中的潜在缺陷,并以缺陷报告的形式递交给开发团队。       缺陷报告是测试工程师与开发工程师交流沟通的重要桥梁,也是测试工程师日常工作的重要输出。 缺陷报告作用 开发工程师可以根据缺陷报告快速理解缺陷,并精确定位问题 产品经理可以了解缺陷对用户或业务的影响以及

jiangmingchan的博客 1241

利用 Docker Distribution 搭建私有的 Docker Registry

1、拓扑

weixin_44983653的博客 1068

小白成长建议(5) 缺陷与管理-云层

缺陷管理 缺陷管理是最开始也是最基础的测试必备技能。在工作了很多年后仍然会发现大量的测试人员没有办法合理的做好缺陷管理。 在我眼中的缺陷管理包含以下几层概念: 1.缺陷的描述 2.缺陷的定义 3.缺陷的跟踪 4.缺陷的度量分析 也许你觉得作为测试提一个缺陷很简单,但是要提一个好的缺陷其实是非常难的。在这里其实还有个隐藏的属性,叫做缺陷的概念,也就是说什么是缺陷? 一般来说缺陷有两种...

weixin_30673715的博客 198

ATAC-seq差异分析实战:从原始数据到GO富集(R/Bioconductor全流程)

本文提供了ATAC-seq差异分析的完整R/Bioconductor实战流程,涵盖从原始数据准备、一致峰集构建、计数矩阵生成,到使用DESeq2进行差异可及性分析,以及差异峰的基因组注释与GO富集分析。文章详细讲解了关键步骤、参数设置和常见问题,旨在帮助研究者获得可靠且可解释的生物学结果。

weixin_29246195的博客 232

R语言生存分析之竞争风险模型

R语言生存分析之竞争风险模型 竞争风险模型(Competing Risk Model)是一种处理多种潜在结局生存数据的分析方法,早在1999年Fine和Gray就提出了部分分布的半参数比例风险模型,通常使用的终点指标是累积发生率函数(cumulative incidence function,CIF)。 研究中结局事件可能有多个,某些结局将阻止感兴趣事件的出现或影响其发生的概率,各结局事件形成“竞争”关系,互为竞争风险事件。 竞争风险模型( Competing Risk Model ) : 指

data+scenario+science+insight 5248

科研大牛们怎么读文献?

文献阅读是每个科研工作者都离不开的话题,科学研究是日积月累的,尤其是现代科学,无论是谁,也无法对某个领域完全的掌握,需要一辈一辈科研人积少成多,因此了解并掌握前人研究是十分必要的,能够在论文中描述前沿研究理论和进展,并将他人研究与自身研究进行对比分析,甚至是整合,是一篇优质论文不可或缺的内容。

weixin_42009785的博客 568

从数字后端角度谈谈occ电路(一)

摘要:本文介绍了芯片测试中OCC(On-Chip Clock Control)电路的设计与应用。随着工艺进步,芯片制造面临Stuck-at、Bridging和Delay等故障类型,需要不同时钟频率进行测试。OCC电路通过Clock Selection、Clock Chopping Control和Clock Gating三个模块,实现ATE时钟与PLL时钟的切换控制,支持慢速时钟检测Stuck-at故障和快速时钟检测Delay故障。文章详细解析了OCC电路结构及各模块功能,包括同步单元、移位寄存器等关键组件

芯冰乐 585

【缺陷管理】9:偶尔出现的缺陷如何处理?

(1) 考虑各方面的因素来判断缺陷的严重级别和优先级别。 首先判断严重级别:严重级别比较容易判断,和其他能复现的缺陷一样处理。然后判断优先级别,就需要看对用户的影响,即需要知道这个缺陷能被复现的概率,这就需要去复现这个缺陷。 怎么搜集复现概率呢,有很多种方法,可以暂缓处理这个缺陷,看后来这个缺陷是否能出现,如果从项目初期到项目结束,这个缺陷就出现一次,那完全可以忽略这个缺陷;可以刻意的安排测试员复现这个缺陷,不断重复的去复现这个缺陷,这个时候如果有开发人员来分析哪些操作容易导致这个缺陷出现,..

. 833

efm32 入门.pdf

本PDF共计22页,介绍的是操作驱动API,下载与否自己斟酌。

华为的C语言编程规范.pdf

华为技术有限公司内部技术规范。本规范制定了编写C语言程序的基本原则、规则和建议。从代码的清晰、简洁、可测试、安全、程序效率、可移植各个方面对C语言编程作出了具体指导。

码农:我曾遇见这样一位大牛,和他交流很舒服,完全没有架子!

作为一名技术人员,在你的身边,你曾经遇到过特别神乎其神的大牛么?感觉没有什么问题是他解决不了的,所有问题遇到他之后就迎刃而解的那种,当然,这么去说似乎有点邪乎了,毕竟人都是不完美的,没有谁是所有问题都会,比较牛只能说在某一个领域比较牛而已,如果把问题的范围缩小的某一个领域,的确有很神的那种人,近期,有一名网友说他周围就有一个让他很崇拜,并且很有神性的一名大牛。 据这名码农网友说,他入职BAT的其...

sssdhua的博客 646

深度学习工具包 DeepLearningToolbox

深度学习工具包Deprecation notice.-----This toolbox is outdated and no longer maintained.There are much better tools available for deep learning than this toolbox, e.g. [Theano](http://deeplearning.net/software/theano/), [torch](http://torch.ch/) or [tensorflow](http://www.tensorflow.org/)I would suggest you use one of the tools mentioned above rather than use this toolbox.Best, Rasmus.DeepLearnToolbox================A Matlab toolbox for Deep Learning.Deep Learning is a new subfield of machine learning that focuses on learning deep hierarchical models of data.It is inspired by the human brain's apparent deep (layered, hierarchical) architecture.A good overview of the theory of Deep Learning theory is[Learning Deep Architectures for AI](http://www.iro.umontreal.ca/~bengioy/papers/ftml_book.pdf)For a more informal introduction, see the following videos by Geoffrey Hinton and Andrew Ng.* [The Next Generation of Neural Networks](http://www.youtube.com/watch?v=AyzOUbkUf3M) (Hinton, 2007)* [Recent Developments in Deep Learning](http://www.youtube.com/watch?v=VdIURAu1-aU) (Hinton, 2010)* [Unsupervised Feature Learning and Deep Learning](http://www.youtube.com/watch?v=ZmNOAtZIgIk) (Ng, 2011)If you use this toolbox in your research please cite [Prediction as a candidate for learning deep hierarchical models of data](http://www2.imm.dtu.dk/pubdb/views/publication_details.php?id=6284)```@MASTERSTHESIS\{IMM2012-06284, author = "R. B. Palm", title = "Prediction as a candidate for learning deep hierarchical models of data", year = "2012",}```Contact: rasmusbergpalm at gmail dot comDirectories included in the toolbox-----------------------------------`NN/` - A library for Feedforward Backpropagation Neural Networks`CNN/` - A library for Convolutional Neural Networks`DBN/` - A library for Deep Belief Networks`SAE/` - A library for Stacked Auto-Encoders`CAE/` - A library for Convolutional Auto-Encoders`util/` - Utility functions used by the libraries`data/` - Data used by the examples`tests/` - unit tests to verify toolbox is workingFor references on each library check REFS.mdSetup-----1. Download.2. addpath(genpath('DeepLearnToolbox'));Example: Deep Belief Network---------------------```matlabfunction test_example_DBNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit RBM and visualize its weightsrand('state',0)dbn.sizes = [100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);figure; visualize(dbn.rbm{1}.W'); % Visualize the RBM weights%% ex2 train a 100-100 hidden unit DBN and use its weights to initialize a NNrand('state',0)%train dbndbn.sizes = [100 100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);%unfold dbn to nnnn = dbnunfoldtonn(dbn, 10);nn.activation_function = 'sigm';%train nnopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.10, 'Too big error');```Example: Stacked Auto-Encoders---------------------```matlabfunction test_example_SAEload mnist_uint8;train_x = double(train_x)/255;test_x = double(test_x)/255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit SDAE and use it to initialize a FFNN% Setup and train a stacked denoising autoencoder (SDAE)rand('state',0)sae = saesetup([784 100]);sae.ae{1}.activation_function = 'sigm';sae.ae{1}.learningRate = 1;sae.ae{1}.inputZeroMaskedFraction = 0.5;opts.numepochs = 1;opts.batchsize = 100;sae = saetrain(sae, train_x, opts);visualize(sae.ae{1}.W{1}(:,2:end)')% Use the SDAE to initialize a FFNNnn = nnsetup([784 100 10]);nn.activation_function = 'sigm';nn.learningRate = 1;nn.W{1} = sae.ae{1}.W{1};% Train the FFNNopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.16, 'Too big error');```Example: Convolutional Neural Nets---------------------```matlabfunction test_example_CNNload mnist_uint8;train_x = double(reshape(train_x',28,28,60000))/255;test_x = double(reshape(test_x',28,28,10000))/255;train_y = double(train_y');test_y = double(test_y');%% ex1 Train a 6c-2s-12c-2s Convolutional neural network %will run 1 epoch in about 200 second and get around 11% error. %With 100 epochs you'll get around 1.2% errorrand('state',0)cnn.layers = { struct('type', 'i') %input layer struct('type', 'c', 'outputmaps', 6, 'kernelsize', 5) %convolution layer struct('type', 's', 'scale', 2) %sub sampling layer struct('type', 'c', 'outputmaps', 12, 'kernelsize', 5) %convolution layer struct('type', 's', 'scale', 2) %subsampling layer};cnn = cnnsetup(cnn, train_x, train_y);opts.alpha = 1;opts.batchsize = 50;opts.numepochs = 1;cnn = cnntrain(cnn, train_x, train_y, opts);[er, bad] = cnntest(cnn, test_x, test_y);%plot mean squared errorfigure; plot(cnn.rL);assert(er<0.12, 'Too big error');```Example: Neural Networks---------------------```matlabfunction test_example_NNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);% normalize[train_x, mu, sigma] = zscore(train_x);test_x = normalize(test_x, mu, sigma);%% ex1 vanilla neural netrand('state',0)nn = nnsetup([784 100 10]);opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samples[nn, L] = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.08, 'Too big error');%% ex2 neural net with L2 weight decayrand('state',0)nn = nnsetup([784 100 10]);nn.weightPenaltyL2 = 1e-4; % L2 weight decayopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex3 neural net with dropoutrand('state',0)nn = nnsetup([784 100 10]);nn.dropoutFraction = 0.5; % Dropout fraction opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex4 neural net with sigmoid activation functionrand('state',0)nn = nnsetup([784 100 10]);nn.activation_function = 'sigm'; % Sigmoid activation functionnn.learningRate = 1; % Sigm require a lower learning rateopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex5 plotting functionalityrand('state',0)nn = nnsetup([784 20 10]);opts.numepochs = 5; % Number of full sweeps through datann.output = 'softmax'; % use softmax outputopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex6 neural net with sigmoid activation and plotting of validation and training error% split training data into training and validation datavx = train_x(1:10000,:);tx = train_x(10001:end,:);vy = train_y(1:10000,:);ty = train_y(10001:end,:);rand('state',0)nn = nnsetup([784 20 10]); nn.output = 'softmax'; % use softmax outputopts.numepochs = 5; % Number of full sweeps through dataopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, tx, ty, opts, vx, vy); % nntrain takes validation set as last two arguments (optionally)[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');```[![Bitdeli Badge](https://d2weczhvl823v0.cloudfront.net/rasmusbergpalm/deeplearntoolbox/trend.png)](https://bitdeli.com/free "Bitdeli Badge")

软件测试之缺陷管理中BUG的几种状态

软件的缺陷是软件开发过程中的重要属性,它提供了许多信息。不同成熟度的软件组织采用不同的方式管理缺陷。低成熟度的软件组织会记录缺陷,并跟踪缺陷纠正过程。高成熟度的软件组织,还会充分利用缺陷提供的信息,建立组织过程能力基线,实现量化过程管理,并可以此为基础,通过缺陷预防实现过程的持续性优化。

公众号:【伤心的辣条】 6095

霍尼韦尔SoftMaster使用说明

霍尼韦尔SoftMaster使用说明

感悟篇 | 从小白到大牛的转变『起点』

大家好,感谢阅读我的博客,如果有不错的建议、想法和意见的话,请在评论区留言。第一篇博客,排版较为辣眼,但各位看官既然已经来了,不妨帮忙鉴赏一下这篇文章bia Have my blog up, this is the starting. void Myfirst_Blog() { 这是我第一次写技术类文章; 同时 这也是我 从小白到大牛之路逆袭的起点 }; “大牛”or...

weixin_34186931的博客 186

缺陷管理第七篇:如何利用敏捷思维优化缺陷管理

每个团队都有不同的缺陷管理流程 本篇讨论其中之三 希望对您有所帮助

. 454

在测试的路上,如何做一个安静的美男(女)子

这里没有用例设计,没有测试分析,没有性能测试,没有自动化,更没有单元测试和接口测试,仅仅从测试—>发现bug的过程中看看我们能够走多远!为了更加形象的描述每个阶段,我用小B的整个测试经历来给大家分享吧!当然,小B刚开始也是一个测试菜鸟(我们叫测试的第一个阶段吧);刚进入项目后,基本上每天的工作就是:测试用例—>提交bug—>回归bug。刚开始还挺新鲜,一段时间后有天晚上突然惊醒,抓住一只蟑螂大吼:卧槽,尼玛这也太无聊,太没有技术含量了吧!难道我以后的工作就是每天干这个吗!当然,吼完后也跟其他人一样把蟑螂弄死

Meryoufdd的博客 65

测试小白在两年时间成为一个大牛,“我”究竟做了什么?

序言 本人就职于某厂Android事业部,负责公司整个Android移动端的研发工作,统筹协调公司JavaWeb(SSM)的开发工作,同时也负责本公司开发人员的调度。 项目经历(例句一例) XX医疗项目 Android 程序开发 内容: 1.采用MVC三层架构,技术先进,软件灵活,运行高效 2.系统采用医患在线文字,语音,视频实时交流等多种沟通方式,配备高清晰度的家居网络摄像头,家庭一声额和家属随时随地可了解患者情况; 3.PC,APP多种客户端接入形式,全面覆盖医生,护士,患者,管理人员等多种角色的

程序员小濠 268

缺陷库的创建意义、状态及人员职责划分

我们为了降低缺陷修复的成本,应提前做好缺陷管理和跟踪。

别人的故事,是参考答案,而不是标准答案 1096

缺陷管理第一篇:软件测试之软件缺陷

标准的定义:从产品内部看,缺陷是软件产品开发或维护过程中存在的错误、毛病等各种问题;从产品外部看,缺陷是系统所需要实现的某种功能的失效或违背 软件缺陷的生命周期

. 271

小B从测试小白到测试大牛的过程

今天看到一篇有点意思的文章,讲的是仅仅从测试—>发现bug的过程中看看我们测试能够走多远!原文链接找不到了,特转述给大家。 文中为了更加形象的描述每个阶段,用小B的整个测试经历来讲述。 当然,小B刚开始也是一个测试菜鸟。刚进入项目后,基本上每天的工作就是:测试用例—>提交bug—>回归bug。开始还挺新鲜,一段时间后有天晚上突然惊醒,抓住一只蟑螂大吼:卧槽,尼玛...

azsfji02247的博客 177

缺陷管理第六篇:利用缺陷卡片制定Bug处理优先级

我们都知道,只要是软件就会存在某些缺陷,这些缺陷有轻有重,如果没有得到及时和有效的解决,一些缺陷可能会造成灾难性后果,而另一些则比较轻微,几乎所有人都不会注意到它。

. 324

【缺陷管理】第14篇:在软件发布之前如何预估残留缺陷?

在回答这个问题之前,我们首先理清思路,测试的质量首先就体现在缺陷的质量上面。就是发现了多少缺陷,缺陷的严重程度如何,缺陷发现的早晚,缺陷的分布等等,作为测试的结果直接向客户表明了测试的质量。然而测试的质量又由什么所决定呢?是测试用例,测试用例的覆盖率,测试用例的精细度、深度,直接决定了能发现缺陷的多少。所以,要在未发布之前预估缺陷的遗留情况,就要检查测试用例的覆盖情况。 小编所在的项目迭代速度快,对于版本是否上线,是由产品根据当前版本的需求及质量情况而定。但是版本的质量如何衡量呢...

. 442
上一篇: Linux定时任务Crontab不起作用的排查步骤
下一篇: 小程序测试的几个小Tips(赶快收藏啦!)
TestingGDR
博客等级 码龄8年 496粉丝 72原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值