功能测试

什么是验证?

荒凉一梦 提交于 2020-02-10 17:21:50
一、什么是验证? 比如,我们设计了一件shirt,我么要确认它的袖子是否一样长、尺寸和颜色是否是客户所需、扣子是否有缺损等,若都满足,则判定合格,这个过程就是验证。 二、我们进行验证,除了有验证计划,还需要构建测试平台。(DUT:被测器件) 三、为了直观的看到芯片验证在整个项目中的地位和作用,下面直接给出 芯片完整开发流程 。 1、新的芯片项目都是首先从市场人员与目标客户沟通开始的。这中间,市场人员会收集客户对于芯片的要求(主要包括功能、尺寸、功耗、性能),这些指标会被记录在 设计结构和产品文档 中去。 2、客户关心的系统层面的功能要求会被系统设计人员按照功能进一步划分为各个独立的子系统模块,这些子系统如果本身过于庞大,也会被进一步划分为功能模块,直到被划分的尺寸可以被小的设计团队进行硬件设计,并交付设计 功能描述文档 。 3、硬件工作人员将模块初步完成RTL级(寄存器级别,Register Transfer Level)的 硬件描述语言文件 。硬件设计人员一般会按照芯片的功能模块划分来分成不同的功能小组,同时系统设计人员的数目也会随着系统复杂程度的升高而增加。在硬件设计过程中,硬件设计工程师会将具体的功能描述文本通过逻辑翻译成为硬件描述语言(HDL,Hardware Description Language),目前使用广泛的HDL语言VHDL和Verilog均被各个大的EDA

关于软件测试中回归测试的思考

江枫思渺然 提交于 2020-02-10 17:18:59
今日在学习国内软件测试业界前辈的经验之谈时,碰巧遇到了有关回归测试的问题,结合自身的思考,做个简单的总结记录。 1、回归测试,无法回避的测试活动 从事软件测试的朋友可能有相同的体会,无论所参与的产品采用何种软件开发模型进行开发,在产品生命周期内,测试开展的活动中,必定不会缺少回归测试这项活动。 为什么这么说呢?我个人的理解如下。 不同的开发阶段,需要进行不同的测试活动。 无论所参与的产品采用何种软件开发模型进行开发,对于测试活动而言,在不同的开发阶段少不了要进行不同的测试活动,比如模块测试、集成测试、系统测试、验收测试等,开展这些测试活动时,测试的对象可能是完整产品的某个功能模块、或某几个功能模块的集成、或所有功能模块的集成等,实际执行测试的时候,可能相同的功能会重复执行多次,当然,每个阶段的测试深度可能会有所不同,这取决于采用的测试策略等。 软件质量很大程度上决定了某些测试活动的开展。 比如,集成测试或系统测试阶段,一轮测试结束后,某些功能模块仍存在缺陷,此时就需要按照缺陷管理流程,在缺陷生命周期内进行跟踪、流转,待研发人员将缺陷修复后,进行验证及确认,而后进行回归测试。 处于维护阶段的系统,部分功能发生变更后,需要进行回归测试,以确保功能变更对原有功能没有造成影响。 迭代更新的系统,新一轮迭代新增的功能构建到原有产品中后,需要对构建后整体的功能进行测试,此时也会涉及到回归测试。

手机app测试

狂风中的少年 提交于 2020-02-08 01:23:02
一、安装、卸载、更新、运行 1.安装、卸载 应用是否可以正常安装(命令行安装;apk/ipa安装包安装)(有网,无网是否都正常) 卸载过程中出现死机,断电,重启等意外的情况,待环境恢复后是否可以继续正常卸载 卸载是否支持取消功能,单击取消后软件卸载情况是否正常 应用是否可以在iOS和Android不同系统,版本,机型上进行安装(有的系统版本过低,应用不能适配) 安装过程中是否能暂停,再次点击,是否继续按照 安装空间不足时如何表现,是否有相应提示,提示是否友好 安装过程中断网或网络不稳定的情况下,是否有相应提示 是否可以正常删除应用(桌面删除;第三方软件删除;命令行删除) APP安装完成后,是否可以正常打开,稳定运行 APP的速度是可以让人接受,切换是否流畅 安装在手机卡上 或 SD卡上 (不同的IOS和安卓版本) 网络异常时,应用是否会崩溃:在请求超时的情况下,如果程序逻辑处理的不好,就有可能发生Crash。 2.APP版本更新 当客户端有新版本时,有更新提示。 当版本为非强制升级时,用户可以取消更新,老版本能正常使用。用户在下次启动APP时,仍出现更新提示。 当版本为强制升级时,用户没有做更新时,退出客户端,下次启动APP时,仍出现强制升级提示(且无法关闭)。 (点击更新是否正确跳转至后台配置的更新页面) 当客户端有新版本时,在本地不删除客户端的情况下,直接更新检查是否能正常更新

软件测试管理方法(二)——软件测试需求分析

白昼怎懂夜的黑 提交于 2020-02-07 23:39:05
0.认识需求 1. 业务需求:组织或客户的高层次目标、 描述为什么要开发系统 (Why),希望达到什么样的目标、 一般 2-5 条,记录在 《 软件愿景和范围 》 文档中。 2. 用户需求: 从 用户角度 ,描述 用户使用产品必须要完成什么任务; 用户能使用系统来做什么(What);通过用户访谈、调查、对用户使用场景进行整理等方法获取。 3. 功能需求: 描述 开发 人员 在产品中实现的软件功能, 描述开发 人员如何设计具体的解决方案来实现这些 需求 ( how ), 数量 往往比用户需求高一个数量级, 属于 《 软件需求规格说明书 》 的一部分。 <0>软件需求规格说明书 其包括: 功能需求: 1. 用户需求 2. 系统需求: 用于描述包含多个子系统的产品 ( 即系统 ) 的顶级需求,它是从系统实现的角度描述的需求,有时还需要考虑相关的硬件、环境方面的需求。 3. 业务规则: 业务规划本身并非软件需求,因为它们不属于任何特定软件系统的范围。然而,业务规则常常会限制谁能够执行某些特定用例,或者规定系统为符合相关规则必须实现某些特定功能。它包括企业方针、政府条例、工业标准、会计准则和计算方法等。有时,功能中特定的质量属性(通过功能实现)也源于业务规则。所以,对某些功能需求进行追溯时,会发现其来源正是一条特定的业务规则。 非功能需求: 1. 质量属性:产品 必须具备的属性或品质

Selenium - 简介

馋奶兔 提交于 2020-02-07 19:41:10
selenium是什么? Selenium是最广泛使用的开源Web UI(用户界面)自动化测试套件之一。它最初由杰森·哈金斯(Jason Huggins)于2004年开发,作为 Thought Works 的内部工具。Selenium支持跨不同浏览器,平台和编程语言的自动化。 Selenium可以轻松部署在Windows,Linux,Solaris和Macintosh等平台上。此外,它支持IOS(IOS,Windows Mobile和Android)等移动应用程序的OS(操作系统)。 Selenium通过使用特定于每种语言的驱动程序支持各种编程语言。Selenium支持的语言包括C#,Java,Perl,PHP,Python和Ruby。目前,Selenium Web驱动程序最受Python和C#欢迎。 Selenium测试脚本可以使用任何支持的编程语言进行编码,并且可以直接在大多数现代Web浏览器中运行。 Selenium支持的浏览器包括Internet Explorer,Mozilla Firefox,Google Chrome和Safari。 应该具备的知识 需要一些JavaScript知识才能学习本教程。 关于一些后端平台的知识不是必需的,但它可以帮助您了解各种Selenium概念。 Selenium功能特性 Selenium有以下功能特性:

第4周小组作业:WordCount优化

拈花ヽ惹草 提交于 2020-02-06 23:35:52
1.github地址 https://github.com/muzhailong/wcPro 2.填写PSP表格 PSP阶段 预计耗时(分钟) 实际耗时(分钟) 计划 10h 15h .估计这个任务需要时间 10h 15h 开发 9h 13h .需求分析(包括学习新技术) 5 20 .生成设计文档 15 30 .设计复审 10 15 .代码规范 10 10 .具体设计 7h 10 .具体编码 10 10h .代码复审 30 15 .测试 40 80 报告 1h 2h .测试报告 25 1.5h .计算工作量 15 10 .事后总结并提出改进计划 20 20 合计 10h 15h 3.描述代码设计思路 我们小组讲这个工程分成类7大模块: param:参数解析模块 in :输入模块 core :核心处理模块 out :输出模块 ui :图形界面模块 util :工具类模块 start: 模块集成模块 我主要负责的是输入模块、核心模块以及模块集成模块,各个模块如下图所示: in(输入模块): 功能:负责从指定文件中读取内容,并且为核心模块提供单词(next方法)。 实现:思路很简单,现将指定文件的所有内容读取到内存中去(preRead方法实现,比较简单不多说,这个地方可以有优化,后面再说),然后通过next方法解析单词,重点说一下next方法的实现

这一顿神操作!我把 3000 行代码重构成 15 行!

。_饼干妹妹 提交于 2020-02-06 13:05:04
作者:马非码 博客园:https://www.cnblogs.com/marvin/p/4133973.html 如果你认为这是一个标题党,那么我真诚的恳请你耐心的把文章的第一部分读完,然后再下结论。如果你认为能够戳中您的 G 点,那么请随手点个赞。 把三千行代码重构为 15 行 那年我刚毕业,进了现在这个公司。公司是搞数据中心环境监控的,里面充斥着嵌入式、精密空调、总线、RFID的概念,我一个都不懂。还好,公司之前用Delphi写的老客户端因为太慢,然后就搞了个Webform的替代,恰好我对Asp.Net还算了解,我对业务的不了解并不妨碍我称成为这个公司的一个程序员。小公司也有小公司的好,人少,进去很快负责代码开发。我当然也就搞这个数据中心智能管理系统啦。 这个系统非常的庞大,尤其牛逼的是支持客户端组态,然后动态生成网页,数据还能通过Socket实时监控(那时我还真就不懂网络编程)。这个对于当时的我来说,真真是高、大、上呐!!当时跟着了解整个系统大半个月才算能够调试,写一些简单的页面。 在维护系统的过程中,时不时要扩展一些功能,也就接触了下面这个类: 看到没有,就是当年最最流行的三层架构的产物,对于刚出茅庐的毛头小子来说,这是多么专业的文件头注释,还有反射也就算了,这构造函数还能静态的,还能私有的?那时刚接触这么高大上的代码的我,瞬间给跪了! 但是,类写多了,我就感觉越来越别扭

SAP成都研究院郑晓霞:Shift Left Testing和软件质量保证的一些思考

☆樱花仙子☆ 提交于 2020-02-05 05:21:52
今天的文章来自Jerry的同事,曾经的搭档郑晓霞(Zheng Kate)。郑晓霞是在Jerry心中是一位很有实力的程序媛,2011年从西安某软件公司跳槽到SAP成都研究院。当时,成都研究院的CRM团队刚刚成立,Jerry和郑晓霞都在一个大组。 2012年夏天,我们接到任务,要把SAP Customer Briefing这款已经发布的iOS应用移植到Android平台。因为只有1年的期限,老板组建了一只特殊的开发团队,由Jerry, 郑晓霞和另外两位男同事组成。是的,因为需求很清楚,就是把iOS版本上的功能移植到Android平台,所以这只团队没有产品经理,没有架构师,郑晓霞担任了开发人员和Scrum Master的双重身份, UX也是项目中后期从上海找了一位同事远程加入项目组。由于我们4位以前都没接触过Android开发,因此也是边学习边干活。这个微型团队的学习气氛非常好,一个人遇到困难,其他三位都会积极热心参与讨论和提供帮助。 Jerry印象最深的一件事是,当时我负责实现一个company profile的功能,即客户可以从一个下拉列表里选择一个企业,从而进入该企业明细页面,显示该企业的概述,包含文字简介,企业人数,财政收入等等。概述信息通过消费wikipedia提供的Restful API,传入企业名称,返回响应

SAP成都研究院姚瑶:软件质量保证工作的变迁

眉间皱痕 提交于 2020-02-05 03:15:58
大家好,我是来自SAP成都研究院Revenue Cloud 团队的质量工程师 , yoyo。很高兴可以和大家分享我个人的工作体会。每个团队都有QE(Quality Engineer), 相信大家对QE 的工作并不陌生,我也就不唠叨QE 的具体工作啦。作为从事软件质量保证工作十年的“老人”,我想就我个人的工作经历和大家探讨下软件质量保证工作的变迁。 当我们谈论软件产品的质量保证工作时,必然是基于某种软件开发模式上的。皮之不存,毛将焉附?脱离了软件开发模式,质量保证工作就是空中楼阁。相信大家都感受到,近十几年,软件开发模式不断涌现新的概念和词汇,Agile, Continuous Integration , Continuous Delivery, DevOps ,令人应接不暇。我们首先要理解软件开发模式的变迁,然后才能进行与开发模式匹配的质量保证活动。 1. 瀑布开发 传统的瀑布模式如下图: 在这种模式下,测试活动仅仅是线性开发活动的后期活动。质量保证严格依赖于各个文档(需求文档,设计文档,测试计划和测试报告)以及评审会议,自动化测试可有可无。 2.增量开发 团队把产品的需求,设计,实现以及测试放在若干迭代周期里完成,每个迭代结束的交付物视为产品的增量,不要求增量达到能交付的要求,但需要能够基本可以工作。产品的交付仍然发生在最后,如下图所示: 增量开发的核心就是持续测试和持续集成

【巨杉数据库SequoiaDB】巨杉数据库无人值守智能自动化测试实践

让人想犯罪 __ 提交于 2020-02-04 11:55:33
刚刚过去的春节,新型冠状病毒疫情突如其来地横扫大江南北。为了响应国家号召,许多软件公司和互联网公司也将在较长一段时间内建议员工采取远程办公的方式,同时也存在骨干工程师无法及时返岗的问题,使得生产力大受影响。 对于软件企业来说,研发与测试是两大核心命脉。研发团队保障着产品新功能新特性的及时发布,而测试团队则如同马的缰绳,确保产品不会由于迭代速度过快、设计考虑角度不周,而导致软件缺陷的产生。 巨杉数据库在9年的自研和技术创新历程中,在研发体系构建、自动化测试、团队线上线下结合等方面积累了很多经验。从2011年团队成立之初开始,巨杉数据库的整个技术研发体系就以面向流程协作的方式进行构建。其核心思想是,任何员工可以在任何地点,只要遵循正确的流程,就可以与整个团队有机地衔接在一起。 在这个非常时刻,为了帮助在远程办公期间内保质保量完成新版本的迭代与测试工作,我们也将我们自己的一些经验分享给大家,主要介绍巨杉如何在无人值守的环境下,完成产品的自动化测试与研发协作。 基础体系 网络基础设施 我们的整个开发环境分为内外网两大网络,其中外部网络可以连接到广域网Internet,而内部网络则没有广域网连接。外网包括办公室中每个员工的台式机,以及可供员工进行远程连接的***服务器与防火墙。工程师们无论使用办公室的电脑,还是通过配发的笔记本电脑从远程通过***接入,均连入公司的外网网段。