测试过程方法论-第二章:外包测试过程

优化测试过程:软件测试知识体系实战 正如开发过程的质量决定了最终生成的软件产品质量,规范和优化测试流程能够帮助提高测试效率、测试有效性,进而提高测试质量。良好的测试流程应该是满足公司和项目特点与要求,并与开发流程紧密而有效的结合在一起,有助于清晰地定义测试阶段、测试活动、测试任务、测试角色与职责、测试输入与输出,并帮助测试团队实现良好的测试过程监控与管理。 “优化测试过程:软件测试知识体系实战”综合了作者12年的测试过程改进的经验 阅读详情

测试外包执行包括五个阶段:

初始阶段——》测试计划阶段——》测试设计阶段——》测试执行阶段——》总结评估阶段

 

初始阶段:与发包方进行充分的沟通,加强发包方对承包方测试过程的了解,影响其对测试的观点及态度。

测试计划阶段:1. 制定测试标准

                         2. 制定测试计划

                         3. 系统培训

                         4. 制定测试需求

测试设计阶段:根据测试需求和设计文档(应用程序)设计测试用例。

测试执行阶段:1. 按执行计划执行测试用例

                         2. 缺陷跟踪

总结评估阶段:总结和评估测试过程、测试结果

 

2.1 初始阶段

初始阶段主要是给发包方做外包测试介绍,加强发包方对外包测试过程和测试标准的了解,协调发包方对外包测试的观点和态度。

初始阶段的介绍包括两个层面:商务层、业务层。两个层面的介绍内容面向的对象各不相同。

              面向对象:

                     商务层:对象为发包方的领导决策层

                     业务层:对象为发包方的项目参与人员(包括管理人员和技术人员)

              介绍内容:

                     商务层的介绍内容包括:

                     1. 介绍测试方法和特点

                     2. 介绍测试结果和评估分析方法

                     业务层的介绍内容包括:

                     1. 介绍测试过程

                     2. 介绍测试策略

 2.2  测试计划阶段

        2.2.1  前期接口

                 1. 初始阶段完成,发包方基本认可承包方的测试过程、方法等;

                 2. 商务上,发包方就基本的测试范围(白盒测试、黑盒测试)和是否使用测试工具等基本达成一致。

         2.2.2  输入

                  1. 被测系统的开发文档

                  2. 被测系统的客户文档

          2.2.3  参与角色

                   在测试外包项目中,发包方和承包方都有众多人员参与,这里阐述了双方在项目中需要的角色和各自的职责。

                    发包方角色1:项目负责人                                   

                    职责:1. 组织面向承包方项目人员的基本培训和详细培训

                               2. 组织有关人员对测试计划、相关标准及测试需求进行评审

                               3. 组织发包方人员对测试需求进行Review和确认

                               4. 阶段评审通过签字确认(测试计划、各标准和测试需求)

                               5. 作为双方沟通的桥梁与承包方项目负责人进行沟通

                       发包方角色2:需求人员

                       职责: 1. 协助承包方测试分析人员制定测试需求

                                    2. 为承包方需求人员提供支持(沟通、答复咨询等)

                                    3. 需求的Review和确认

                        发包方角色3:

                        培训人员: 1. 为承包方项目负责人、测试分析人员、测试设计人员提供基础培训

                                            2. 为承包方项目负责人、测试分析人员、测试设计人员提供详细培训。

                        承包方角色1:

                        项目负责人: 1. 参与基本培训并组织测试分析人员、测试设计人员参与基本培训

                                               2. 参与详细培训并组织测试分析人员、测试设计人员参与详细培训。

                                               3. 组织测试分析人员制定测试需求

                                               4. 编制测试计划

                                               5. 组织测试分析人员参与阶段评审(测试计划、相关标准及测试需求的)

                                               6. 作为双方沟通的桥梁与发包方项目负责人进行沟通

                                               7. 编写阶段总结报告

                          测试分析人员: 1. 参与发包方组织的基本培训和详细培训以了解和掌握系统相关内容

                                                    2. 根据测试计划和发包方提供的资料分析并制定测试需求

                                                    3. 向发包方需求人员了解所需内容以制定和完善测试需求

                                                    4. 参与评审阶段

                          测试设计人员: 1. 参与发包方组织的基本培训和详细培训以了解和掌握系统相关内容

           2.2.4  阶段过程

                测试计划阶段的基本过程如下:

 

2010-07-31_222315

 

测试需求制定过程:

2010-07-31_222705

        2.2.5 工作内容

              承包方工作内容:

                    1. 项目人员参与基本培训

                    2. PM开始编写测试计划

                    3. 与发包方PM确定能够提供的文档范围

                    4. PM确定并向发包方PM提出资源需求 

                    5. 分析风险因素,制定应对方法

                    6. 与发包方PM确定沟通和交流机制

                    7. 制定各项标准并同发包方PM确认各项标准

                    8. 与发包方共同确定测试范围和测试目标

                    10. PM组织测试人员制定测试需求

                    11. 测试人员根据测试范围制定由简而细的测试需求,定义各项需求的测试策略

                    13. PM根据测试范围和目标向发包方建议采用的测试技术和测试方法策略

                    14. PM根据制定的测试需求估计项目各阶段的时间,并修正测试计划

                    15. PM统计需求数据(需求数量、测试人员制定需求情况等)

                    16. 组织测试人员参与阶段评审

                    17. 测试计划和测试标准存档

               发包方工作内容:

                      1. 培训人员对承包方项目人员进行基本培训

                      3. 与承包方PM确定能够提供的文档范围并提供制定文档

                      4. PM确定能够提供的资源

                      5. PM确认存在的风险因素和应对方法

                      6. 与承包方PM确定承包和交流机制

                      7. 与承包方PM修改和确认各项标准

                      8. 培训人员对承包方项目人员进行详细培训

                      9. 与承包方共同确定测试范围和测试目标

                      10. PM指定需求人员配合承包方设计人员制定测试需求

                      11. 需求人员配合承包方设计人员制定测试需求

                      12. 需求人员Review和确认测试需求

                      13. PM和承包方PM确定要采用的测试技术和测试方法策略

                      16. 组织相关人员进行阶段评审,评审通过签字确认

                      17. 测试计划和测试标准存档

        2.2.6  输出

              1.  项目测试计划

              2.  项目相关标准

              3.  项目测试需求

      2.3  测试设计阶段

           2.3.1  前期接口

                  1.  测试设计人员都参与了系统的详细培训

                  2.  测试设计人员参与了测试工具的培训,掌握了测试工具的试用

            2.3.2  输入

                   1.  项目测试计划

                   2.  项目相关标准

                   3.  项目测试需求

             2.3.3  参与角色

                   发包方角色与职责:

                        1. 项目负责人职责:  1.  通过承包方项目负责人的统计分析内容,了解项目进度

                                                      2. 作为双方沟通的桥梁与承包方PM进行沟通

                                                      3. 根据承包方PM提交的设计小结了解设计进度

                                                      4. 周五下午组织设计讨论

                         2. 发包方需求人员:

                                                       1. 为测试用例的设计提供支持(沟通和提供咨询内容)

                                                       2. 适当的参与测试用例设计

                     承包方角色与职责:

                           1. 项目负责人:    1. 组织测试设计人员设计测试用例

                                                     2. 合理分配工作任务,控制设计进度

                                                     3. 统计和分析测试用例设计情况,并发送给发包方项目负责人

                                                     4. 编写测试周报

                                                     5. 作为双方沟通的桥梁与发包方PM进行沟通

                                                     6. 编写阶段总结报告

                                                     7. 每周三和周五提交设计小结

                                                     8. 周五下午组织设计讨论

                             2.  测试分析人员:   1. 为测试设计人员提供解释需求帮助

                             3.  测试设计人员:   1. 以前一阶段设计的测试用例为基础,根据本次制定的测试需求,配合发包方提供的文档设计测试用例。

                                                           2. 根据项目负责人分配的工作任务进行测试用例设计工作

                                                           3. 设计的测试用例要覆盖所有需要测试的测试需求

             2.3.4  阶段过程

 

 

2010-08-01_163429

                             

                           定义测试策略:考察应用程序、系统环境和测试资源等以决定测试目标。

                           分解测试对象:将AUT(被测应用程序)分解成具体的测试单元(可被测试的模块和功能)。

                           定义测试用例:确定每个模块所需的测试类型,添加基本的定义描述。

                           建立需求覆盖:将具体的测试用例和需求建立覆盖关系。

                           设计测试步骤:为每个测试用例添加测试步骤。测试步骤描述测试的操作、检查点和预期输出。

                           分析测试用例:Review所有测试用例以确保符合测试目标。

                 2.3.5  工作内容

                        承包方工作内容:  1. 测试设计人员根据测试需求和测试策略设计相应测试用例

                                                  2. 测试设计人员建立测试用例和测试需求之间的覆盖关系

                                                  3. 如果采用自动化测试,测试设计人员根据自动化测试策略设计自动化测试用例

                                                  4. 设计测试数据

                                                  5. PM统计测试设计数据(需求覆盖率、用例设计情况等)

                         发包方工作内容:  5. 根据承包方PM提供的跟踪数据跟踪项目进度

                   2.3.6   输出

                          测试用例

              2.4 测试执行阶段

                    2.4.1  前期接口

                           1.  测试用例设计完毕

                     2.4.2  输入

                            2. 测试用例

                      2.4.3  参与角色

                             发包方参与角色与职责:

                                   1.  项目负责人:   1. 作为双方沟通的桥梁与承包方项目负责人进行沟通

                                                             2. 根据承包方PM的统计资料了解执行情况

                                                             3. 接收承包方PM提交的缺陷并Review

                                                             4. 将开发部门的处理意见和结果反馈给承包方PM

                                                             5. 跟踪和统计缺陷处理情况

                                    2.   需求人员:    1. 对测试用例进行抽检

                                    3.   开发人员:    1. 对缺陷进行相应处理,并反馈给测试人员

                                                             2. 如果对缺陷有异议,通过PM进行协调

                              承包方参与角色与职责:

                                     1.  项目负责人:  1. 作为双方沟通的桥梁与发包方项目负责人进行沟通

                                                              2. 组织测试设计人员创建测试集

                                                              3. 制定测试执行计划

                                                              4. 跟踪和统计测试执行情况

                                                              5. 根据变化调整测试执行计划

                                                              6. Reivew缺陷记录并更改属性

                                                              7. 提交缺陷记录给发包方PM

                                                              8. 接收发包方PM的反馈的处理意见和结果并做处理

                                                              9. 跟踪和统计缺陷处理情况

                                                              10. 编写测试周报

                                                              11. 编写阶段报告

                                      2.   测试设计人员:   1. 创建测试集

                                                                    2. 为测试执行人员提供测试用例方面的咨询和支持

                                      3.   测试执行人员:   1. 对测试用例有疑问则向测试设计人员咨询

                                                                    2. 按照执行计划执行测试集合测试用例

                                                                    3. 填写测试记录

                                                                    4. 创建缺陷记录

                                                                    5. 跟踪缺陷状态变化

                      2.4.4  阶段过程

 

 

 

2010-08-01_170205

 

                                       缺陷处理流程:

 

2010-08-01_170259

 

                         2.4.5  工作内容

                                        承包方工作内容:

                                              1. 测试设计人员创建测试集

                                              2. 项目经理制定测试执行计划

                                              3. 测试人员按计划执行测试集和测试用例

                                              4. 测试人员即时记录发现的缺陷

                                              5. 测试人员即时记录测试执行情况

                                              6. 统计执行数据(测试执行进度、测试人员执行情况)

                                              7. 向发包方项目负责人汇报测试进度、测试执行情况

                                        发包方工作内容:

                                              7. 项目负责人了解测试进度和执行情况

                           2.4.6 输出

                                  1. 测试执行记录

                                  2. 测试记录单

                                  3. 缺陷跟踪汇总表

                           2.4.7 缺陷跟踪

                                   1. 汇报缺陷记录

                                   2. 跟踪缺陷修改情况

                                   3. 回归测试直到缺陷得到恰当处理(是否进行缺陷跟踪要根据发包方要求不同而定)

                                          承包方:   1. 项目经理向发包方项目负责人汇报缺陷记录

                                                         2. 根据标准确定缺陷严重程度、优先级等

                                                         4. 统计和向发包方汇报缺陷情况

                                           发包方:   2. 确认缺陷严重程度、优先级等

      

 

 

 

注: 各个章节的工作内容的序号为发包方和承包方同步工作序列,如:发包方工作序列序号2与承包方工作序列号2时间顺序对应。

9.1第三方测试的基本概念与测试过程 第三方软件测试概念模式一:以客户为主导,为确认软件质量,寻求第三方测试团队来检验质量,开发团队和第三方联系不紧密模式二:以软件开发团队为主导,开发团队和第三方联系紧密定义 :由开发者和用户以外的第三方进行的软件测试,其目的是为了保证测试的客观性        狭义上:独立的第三方测试机构,如国家级软件测试中心,各省软件评测中心,有资质的软件评测中心        广义上:非本软件的开发人员,QA部... 阅读详情

相关推荐

TM第五章改进测试过程

第五章改进测试过程 5.1简介 本章主要讲通用得过程改进问题,介绍可用于测试过程改进得模型 就是从杂乱无章的工作状态,转换为有条理的文档话的过程,最后根据以往的经验,对整个测试过程进行优化 5.2测试改进过程 过程改进用于什么地方: 可以选择用于软件开发过程和产生得软件交付物 5.2.1过程改进得介绍 过程改进于软件开发过程和测试过程有着密切得联系 戴明改进循环: 计划/实施/检...

weixin_34322964的博客 1458

外方测试方法

如果遇到问题, 需要将整个问题都copy screen, 然后提交, 放到专门的数据库里, 随着不同地方的上线, 会形成一个庞大的测试库。 而在每次新项目测试的时候, 都会用提取数据库中的资料,做测试案例。

gzer的专栏 582

软件外包测试流程图.doc

软件外包测试流程图.doc软件外包测试流程图.doc软件外包测试流程图.doc

接口测试之发包工具介绍

1、Poster      Poster为Firefox浏览器的一个插件,主要用来模拟发并HTTP请求。随着Chrome浏览器的流行,它也出了chrome版本:Chrome Poster   在Fiefox浏览器中的安装非常简单。首先,打开Fiefox浏览器,菜单栏“工具”--> “添加组件”,搜索“poster”,在搜索例表中点击“安装”,然后重启浏览器即可。   打开方法:菜

weixin_39074559的博客 1万+

Android WIFI体系:深入解析WifiLock与MulticastLock的底层实现与性能优化

本文深入解析Android WIFI体系中WifiLock与MulticastLock的底层实现机制与性能优化策略。WifiLock通过阻止Wi-Fi休眠提升网络性能,尤其WIFI_MODE_FULL_HIGH_PERF模式可显著降低延迟;MulticastLock则控制组播数据接收,但会增加功耗。文章详细探讨了其与wpa_supplicant、HAL层的交互,并提供高性能场景下的优化实践与功耗平衡方案。

php55的博客 1079

用PyCharm+Scrapy打造你的第一个爬虫:从安装到实战(附完整代码)

本文详细介绍了如何使用PyCharm和Scrapy框架从零开始构建高效网络爬虫。通过环境配置、项目创建、核心爬虫逻辑编写到数据处理与存储的完整流程,帮助Python开发者快速掌握爬虫开发技巧,并附有实战代码示例。特别适合想要学习Scrapy框架和提升爬虫技能的开发者。

weixin_29038345的博客 868

做了个外包项目测试,我的经验总结分享

项目背景 某项目是一个OA管理系统(外包给一家南方公司),以JAVA为开发语言、VUE为前端框架、MySQL为后端数据库管理系统。

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

2024最新版Anaconda Navigator安装使用指南

本文简要介绍如何下载安装Anaconda Navigator最新版,以及如何使用Python内核搭载来完成应用程序开发。

jackson_lingua的博客 1万+

甲方测试如何做好外包项目的测试验收?

春节匆匆而过,打工人陆续回到了工作岗位又开始卷了起来。小酋也一样,已经返岗几天,今天趁着节后综合症消去大半又该聊点什么了。最近在做一个视频AI分析项目的测试验收,今天就围绕“如何做好外包项目的测试验收”为题,谈谈个人的看法吧。这年头,甲方与乙方没有绝对强弱之分,如经历过甲方做成孙子,乙方当大爷的,通常强弱之分都取决于前期商务合同条款。如果前期商务合同没约定好,可能身为“孙子”的乙方拿到合同和首款后,就成了大爷。

799

MyBatis示例

MyBatis示例 基本示例 环境准备 jdk : 1.8.0 MyEclipse MySQL MyBatis-3.4.6.jar 新建JavaWeb Project 命名:mybatis 导入JAR包或添加POM.xml中添加依赖 MyBatis_config.xml <?xml version="1.0" encoding=&a

走在命运的左岸 720

CAN 通信测试工具 canutils

概述 CAN,Controller Area Network,控制器局域网,一种高可靠性的现场总线。广泛用于汽车电子、工业控制通信。 canutils 工具包内含 5 个独立的程序:canconfig、candump、canecho、cansend、cansequence。这几个程序的功能简述如下: canconfig:用于配置 CAN 总线接口的参数,主要是波特率和模式。 candump...

一个软件工程师的技术笔记 1万+

去外包做测试工程师真的好吗?从业三年的过来人给你讲讲经验

最近收到不少刚毕业的小朋友私信,说马上面临就业,在找工作的过程中,有不少软件测试的外包公司给我打电话让去面试,究竟要不要去?作为一名已经从业软件测试三年的”老人“而言这里特地开一期文章,给大家说说我这3年的外包经验,希望对于正在找工作的你有所帮助。 1、什么是软件外包 软件外包就好比一个中介公司,对方在做完整体框架后,将一些定义,流程及规范包给国内IT企业,由这些公司去实现具体功能。 说的再白一点,比如对方要画一张上海市地图,那么它们做的工作就是制定一套规范,比如告诉你用两条横线表示道路,用一个四角型表示房

xuezhangmen的博客 5865

【ROS2】机械臂MoveIt2

navigation2 专注于移动机器人的导航与定位,处理大范围空间的底盘运动;MoveIt2 专注于机械臂的操作规划,处理多关节协同的末端执行器运动。在复合机器人(如,移动机械臂)navigation2 负责移动到目标区域,MoveIt2 负责机械臂抓取。官网:https://moveit.picknik.ai/main/index.html。

郭老二 595

外包项目的售后服务(不能严以待人宽以待己)——优快云外包实践(23)

一南的售后服务,不能严以待人宽以待己。  以下是这个项目 所见即所得HTML编辑器 的售后服务聊天记录。(德俊)...说:  你好!一南 说:  恩  他们打我电话了(德俊)...说:  优快云的编辑找你了吗? 说你的成果有些不兼容, 弹出错误提示.一南 说:  我已经查出来怎么回事了  实际上那天晚上我发错代码了  可能太晚了,晕了头,就把错误版本的程序给发过去了(德俊)...说:  我们

袁德俊的专栏 2837

MoveIt 运动学、运动规划、混合规划、move_group

混合规划是运动规划方法的一个术语,它将异构运动规划器结合起来,以产生更稳健或反应更快的解决方案。这种通用方法在导航领域已经非常成熟,并在导航2等流行项目中成功实施。MoveIt 的混合规划架构结合了一对全局规划器和局部规划器,它们以不同的规划速度和问题范围并行、并发运行。全局规划器的任务是解决全局运动规划问题,这与 “感知-规划-行动 ”应用中使用的规划器非常相似。所使用的规划器算法应该是完整的,因此假定其计算时间相对较慢。此外,全局规划器不要求实时安全,这意味着无法保证规划器在特定期限内找到解决方案。

机器人控制与仿真应用 2131

135、高通 ChromaTix 调优工具入门:参数含义、调优流程与效果对比

本文介绍了高通ChromaTix色彩调优工具的核心使用要点:1. ChromaTix是位于ISP管线中的色彩处理系统,核心任务是将原始色彩映射为符合人眼感知的"舒适"效果;2. 重点解析了饱和度、色调、亮度相关饱和度等关键参数的实际含义和调试陷阱;3. 分享了四步调优流程,强调需要基于多场景数据验证;4. 通过案例展示了参数调整带来的色彩改善效果;5. 总结了实用建议,包括保持单一变量调试、量化评估色差、关注极端场景表现等。文章指出ChromaTix调优是平衡不同场景需求的"妥协艺术",需要结合客观数据和主

sundong_81的博客 106

打死都不要进外包,看看我在阿里外包的2年...

我18年毕业于一个普通二本学校,是一个很不出名的小本科。大学期间专业知识也没有去认真的学习,所以毕业的时候就随便找了一份工作,在一个小公司做功能测试。 记得那时候薪资大概是6k左右,因为是在工厂,工作环境很差,也很危险,所以我一直有想跳槽的想法。 既然有想法了,我就没有挣扎了,我就直接辞职了, 后来就换了一个城市开启了求职生涯,那时候因为自己技术不过关,只会点点点的功能测试,也找不到什么好工作 误打误撞进了一个外包公司,阿里的一个外包,这一待就是两年 外包生活也只有干过外包的人才懂,外包工作人员就

hlsxjh的博客 1万+

计算机控制技术及应用

《计算机控制技术及应用》通过总结作者的科研成果和吸收国内外的先进理论、方法和技术,以计算机控制系统的网络化、开放化、智能化和集成化发展趋势为主线索,主要介绍计算机控制系统的基本概念和计算机控制系统的典型形式,计算机控制系统的数学描述与基本分析方法,以及数字PID控制器、最少拍控制系统、达林算法、状态变量设计法等设计方法及其各种改进算法。重点突出计算机控制系统输入输出通道接口的设计方法和典型控制系统的设计案例与实现方法等。

金融项目外包测试管理经验

首先确定项目外包测试的核心问题—对项目外包测试的定位。   项目外包测试是一种服务性工作,所以把服务放在第一位是做任何事情的出发点。作为项目经理,一定要把这种思想告诉给我们的测试团队成员,树立服务意识。因为我们所有成员几乎都是做技术出身,放下思想包袱,站在客户角度上思考问题和做事情,任何问题都有解决的方法。   做项目管理,需要面对的事情非常多,下面我从工程管理、项目管理、人员管理等方面描述。

u014367999的专栏 2621

C# WinForm 基于DirectShow.dll编写的程序,可边预览边保存视频,音频和图片

基于微软的DirectShow.dll的二次开发1.自动识别连接的摄像头跟麦克风且可以对其进行选择(默认选中第一个)2.可录制wmv和avi两种格式的视频并且都带有音频,avi可以录制的分辨率和帧数进行选择,wmv默认进行了淸晰度优化如不喜欢可去除代码中有相关提示3.可在预览点开之后进行拍照,也可边录制视频边拍照4.添加了视频和音频的压缩功能(酌情使用)这次二次开发发现C#对DirectShow的相关信息太少,这次做完也不敢藏私共享出来,还望大家指正

深度学习工具包 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")

外包测试员真的能转正吗?大厂外包真的能成为大厂正式员工吗?

外包员工能变正式员工吗?这里辟谣一波,许多外包都说有转正机会。实际情况是几乎等于零。其中,三方外包更是可以直接和零划等号。三方外包的转正,往往就是给个内推机会,然后和面试官会熟悉一些。然而这些都没什么价值。内推的机会,简直不要太好找的说。现在的大厂,大部分人才招聘,都是技术部员工直接内推的。至于面试官的熟悉,只能说大多数情况下那只会让你的面试更加困难。至于二方外包的转正,大多也会对绩效、贡献等诸多方面有要求,还需要一二级主管进行推荐。另外,还需要经历审批,以及转正答辩。

okcross0的博客 4114

Statistics and Machine Learning Toolbox

Statistics and Machine Learning Toolbox(带书签),MATLAB统计学习工具

3年外包终上岸,我只能说:但凡有点机会,千万别去外包...

从我个人的从业经历来告诉大家为啥最好不去外包公司:

自动化软件测试 2992

测试员做外包能转正吗?外包员工能变正式员工吗?

外包员工能变正式员工吗?这里辟谣一波,许多外包都说有转正机会。实际情况是几乎等于零。其中,三方外包更是可以直接和零划等号。三方外包的转正,往往就是给个内推机会,然后和面试官会熟悉一些。

一个不太黑的测试人~ 2927

软件测试员做外包能转正吗?外包员工能变正式员工吗?

这里辟谣一波,许多外包都说有转正机会。实际情况是几乎等于零。

自动化测试技术栈 1916

测试过程方法论-第一章:编写目的

<br /><br />本文档是专门用来制定测试外包的工作流程、针对性地明确测试过程中所需要产生的必要测试文档模板规范,确定测试外包的双方合作方式以及各自的职责划分,并指出测试外包的质量验收标准。<br />本文档的适用范围:**(承包方)外包**(发包方)的所有测试的软件项目和软件产品。<br />本文档的预期读者对象:**(承包方)测试小组和**(发包方)软件项目开发小组。<br />本文档的编写目的,就是专门针对性地指导**(承包方)外包**(发包方)软件项目和软件产品的测试实施过程。<br /><b

刘辉的专栏 669

在腾讯做外包的这2年...

不知不觉已经在鹅厂做了两年测试外包。对于外包工作很多人(找工作的人)都是不看好的,不看好的原因包括但不仅限于以下几点:

软件测试技术分享官 3092

软件测试外包

在当今的软件开发行业中,越来越多的公司选择将软件测试外包给专业的测试服务提供商。软件测试外包可以带来许多好处,如降低成本、提高效率、获取专业知识和经验等。

DJ355的博客 564

银行项目外包专题系列之一:经常遇到的外包/驻场/实施/To B/POC这些概念

很多未毕业的学生或者已经毕业的同学在银行外包项目工作或者最近找不到合适的工作,只有外包公司来招聘自己去银行工作,但是自己对这个行业存在很多困扰和焦虑,我来给你解答一下吧

爱海贼的无处不在的技术博客 1万+
上一篇: 测试过程方法论-第一章:编写目的
下一篇: 测试过程方法论-第三章:附件、需求跟踪、缺陷周期计算
oncea2003
博客等级 码龄20年 24粉丝 45原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值