软件测试

软件测试第一周课程随笔

余生长醉 提交于 2020-03-27 21:22:59
  这周是第一节课,课程开始时的一个经典问题:什么是软件测试?软件测试 是使用人工操作或者软件自动运行的方式来检验它是否满足规定的需求或弄清预期结果与实际结果之间的差别的过程。   测试的目的: 1 .发现一些可以通过测试避免的开发风险。         2 .实施测试来降低所发现的风险。         3 .确定测试何时可以结束。         4 .在开发项目的过程中将测试看作是一个标准项目。   软件测试的分类:黑盒测试,白盒测试   黑盒测试:黑盒测试也称功能测试,它是通过测试来检测每个功能是否都能正常使用。在测试中,把程序看作一个不能打开的黑盒子,在完全不考虑程序内部结构和内部特性的情况下,在程序接口进行测试,它只检查程序功能是否按照需求规格说明书的规定正常使用,程序是否能适当地接收输入数据而产生正确的输出信息。黑盒测试着眼于程序外部结构,不考虑内部逻辑结构,主要针对软件界面和软件功能进行测试。   白盒测试:白盒测试又称结构测试、透明盒测试、逻辑驱动测试或基于代码的测试。白盒测试是一种测试用例设计方法,盒子指的是被测试的软件,白盒指的是盒子是可视的,你清楚盒子内部的东西以及里面是如何运作的。 " 白盒 " 法全面了解程序内部逻辑结构、对所有逻辑路径进行测试。 " 白盒 " 法是穷举路径测试。在使用这一方案时,测试者必须检查程序的内部结构,从检查程序的逻辑着手

软件测试的认识

谁说我不能喝 提交于 2020-03-27 21:21:22
定义:软件测试(英语:software testing),描述一种用来促进鉴定软件的正确性、完整性、安全性和质量的过程。换句话说,软件测试是一种实际输出与预期输出间的审核或者比较过程。软件测试的经典定义是:在规定的条件下对程序进行操作,以发现程序错误,衡量软件质量,并对其是否能满足设计要求进行评估的过程。 测试原则: 一,测试应该尽早进行,最好在需求阶段就开始介入,因为最严重的错误不外乎是系统不能满足用户的需求。 二,程序员应该避免检查自己的程序,软件测试应该由第三方来负责。 三,设计测试用例时应考虑到合法的输入和不合法的输入以及各种边界条件,特殊情况下不要制造极端状态和意外状态。 四,应该充分注意测试中的群集现象。 五,对策就错误结果进行地一个确认过程。一般由A测试出来的错误,一定要由B来确认。严重的错误可以召开评审会议进行讨论和分析,对测试结果要进行严格的确认,是否真的存在这个问题以及严重程度等。 六,制定严格的测试计划。一定要制定测试计划,并且要有指导性。测试时间安排尽量宽松,不要希望在极短的时间内完成也有一个高水平的测试。 七,妥善保存测试计划、测试用例、出错统计和最终 分析报告 ,为维护提供方便。 来源: https://www.cnblogs.com/sh183/p/10586270.html

软件测试论述

自作多情 提交于 2020-03-27 16:18:10
软件测试相关论述 是什么?:    软件测试的目的就是在已经规定好的条件下,对软件进行测试,通过测试去发现软件中程序的错误或者是BUG,这样可以让程序员衡量软件的质量,然后对软件是否满足最初的要求或者初衷做出一个正确的判断,只有通过重重测试筛选出来的软件才能够获得价值最大化。 为什么?    为实现对软件产品的监视和测量   对软件产品的特性进行监视和测量,主要依据软件需求规格说明书,验证产品是否满足要求。所开发的软件产品是否可以交付,要预先设定质量指标,并进行测试,只有符合预先设定的指标,才可以交付,而是否满足规格要求是需要测试才能知道的。 为不符合要求的产品进行识别和控制   为了对于软件测试中发现的软件缺陷,要认真记录它们的属性和处理措施,并进行跟踪,直至最终解决。在排除软件缺陷之后,要再次进行验证。 为产品设计和开发进行验证   通过设计测试用例对需求分析、软件设计、程序代码进行验证,确保程序代码与软件设计说明书的一致,以及软件设计说明书与需求规格说明书的一致。对于验证中发现的不合格现象,同样要认真记录和处理,并跟踪解决。解决之后,也要再次进行验证。 为了实施软件过程中的监视和测量   从软件测试中可以获取大量关于软件过程及其结果的数据和信息,它们可用于判断这些过程的有效性,为软件过程的正常运行和持续改进提供决策依据。 怎么样? 单元测试 。单元测试又称为模块测试

软件测试判断题

无人久伴 提交于 2020-03-26 23:47:28
判断题 软件测试就是为了验证软件功能实现的是否正确,是否完成既定目标的活动,所以软件测试在软件工程的后期才开始具体的工作。 (初级) ( × ) 发现错误多的模块,残留在模块中的错误也多。( √ ) (初级) 测试人员在测试过程中发现一处问题,如果问题影响不大,而自己又可以修改,应立即将此问题正确修改,以加快、提高开发的进程。( × )(初级) 单元测试通常应该先进行“人工走查”,再以白盒法为主,辅以黑盒法进行动态测试。 ( √ )(中级) 功能测试是系统测试的主要内容,检查系统的功能、性能是否与需求规格说明相同。( √ )(中级) 软件质量管理即QM由QA和QC构成,软件测试属于QC的核心工作内容。(√)(高级) 软件测试只能发现错误,但不能保证测试后的软件没有错误。(√) 软件就是程序。(X) 测试只要做到语句覆盖和分支覆盖,就可以发现程序中的所有错误。(X) I18N测试是指对产品做出具有国际性的规划,而L10N测试则是指对软件做出符合本地需求更改工作。(√)【高级】 ( × )用黑盒发测试时,测试用例是根据程序内部逻辑设计的。 ( √ )白盒测试是基于对程序控制结构了解的基础上来设计测试用例的。 ( × )测试是为了验证软件正确的实现了用户需求。 ( √ )确定测试主要测试软件功能是否满足用户的合理需求,以“需求规格说明书”为测试依据。 ( √ )软件测试时经常要输入无效的

构建之法阅读笔记02

假如想象 提交于 2020-03-23 06:12:35
利用这周和上周的时间把《构建之法》前三章读完了,在阅读过程中发现了很多我未曾了解的内容。   从中我学到了很多新词,比如书中“你的RP是由你的程序质量决定的”这句话中的RP指的是绩效比率(rate of performance) 是指在项目或者活动周期的给定时间内,实际完成的工作对计划完成的工作的比率。   单元测试是我学到的较受益的知识,单元测试对于如何能让自己负责的模块功能定义尽量明确,模块内部的改变不会影响其他模块,而且模块的质量能得到稳定的、量化的保证。是一个很有效的解决方案。 在以后的开发过程中更要着手建立自己的代码库,能大大提高开发效率   回归测试也很重要,我以前也遇到过这种情况,本来某段代码没问题,但是在此代码上加入一些内容后,此段代码就出现了问题。这就体现了回归测试的重要性。   第三章说了软件工程师的成长。一个人的成长是多方面的,软件工程师也是一样。我们要一直补充自己,提升自己,在团队中除了展现自己的能力以外,还要和其他人友好分工合作,毕竟是一个团队。   下面说说个人感受部分,以前编写程序时单元测试我很少做,总是把整个程序编完了才去进行测试检验。阅读完第二章我认识到这样其实不好,因为我现在编的程序都是一些小程序,如果出现问题,比较容易找到问题处,但以后编的程序都是一些大型程序,如果不进行单元测试的话,出现问题很难解决。所以,从现在开始我编程时应该注意单元测试

关于用户体验设计与软件测试的关系

我的梦境 提交于 2020-03-22 22:51:36
作为一个目前从事软件测试的工作却对用户体验设计行业有着期盼和追求的人,很长一段时间我都在思考:用户体验设计(user experience design,简称UED)与软件测试的关系是怎样的?有什么区别和联系?鉴于个人的思考和总结,现在谈谈我自己的观点和看法。 从定义和目标上来看 UED一般包括用户研究、视觉设计、交互设计以及信息架构设计。用户体验是一种纯主观在用户使用产品过程中建立起来的感受。但是对于一个界定明确的用户群体来讲,其用户体验的共性是能够经由良好设计实验来认识到。UED的目标是让产品首先有用、其次要易用、接下来产品设计要友好、然后是视觉设计能让产品产生一种吸引力、最后是全面融会贯通上升为品牌。因此,可以说,UED为产品的产生及其寿命长短具有十分重要的意义,属于创造性的工作。 软件测试一般也包括功能测试和性能测试。软件测试是使用人工或者自动手段来运行或测试某个系统的过程,其目的在于检验它是否满足规定的需求或弄清预期结果与实际结果之间的差别。因此,从这个角度来看,测试更像是为了配合UED的目标而存在的,起着陪护作用。 从软件生命周期来看 软件生存周期模型,把软件生存的漫长周期依次划分为:可行性研究与计划、需求分析、设计、开发、测试、运行与维护六个阶段。在这其中,设计阶段就包括UED,而开发和测试阶段就对应有测试的过程,如开发过程中的可用性测试、单元测试、集成测试等。另外

03软件测试

陌路散爱 提交于 2020-03-22 16:03:33
划分等价类 输入等价类 有效等价类 无效等价类 日期的类型及长度 (1)6位数字 (4)有非数字 (5)少于6位数字 (6)多余6位数字 年份范围 (2)1990~2049 (7)小于1990 (8)大于2049 月份范围 (3)01~12 (9)等于00 (10)大于12 测试用例 测试数据 期望结果 覆盖无效等价类 199102 正确 (1)(2)(3) 56aaaa 错误 (4) 20025 错误 (5) 2022022 错误 (6) 189802 错误 (7) 205003 错误 (8) 200500 错误 (9) 200513 错误 (10) 来源: https://www.cnblogs.com/1014040868lyn/p/12546245.html

在做自动化测试之前你需要知道的什么是自动化测?

我怕爱的太早我们不能终老 提交于 2020-03-21 11:45:47
本文是转载“虫师”的文章http://www.cnblogs.com/fnng/p/3653793.html 因为我感觉这篇文章写的很好,但是没有收藏功能,所以在自己的博客转载 希望“虫师”老师能够谅解!在此感谢“虫师”老师的分享!!!!!!! 什么是自动化测?   做测试好几年了,真正学习和实践自动化测试一年,自我感觉这一个年中收获许多。一直想动笔写一篇文章分享自动化测试实践中的一些经验。终于决定花点时间来做这件事儿。   首先理清自动化测试的概念,广义上来讲,自动化包括一切通过工具(程序)的方式来代替或辅助手工测试的行为都可以看做自动化,包括性能测试工具(loadrunner、jmeter),或自己所写的一段程序,用于生成1到100个测试数据。狭义上来讲,通工具记录或编写脚本的方式模拟手工测试的过程,通过回放或运行脚本来执行测试用例,从而代替人工对系统的功能进行验证。   当然,我们更普遍的认识把“自动化测试”看做“ 基于产品或项目UI层的自动化测试”。 分层的自动化测试   这个概念最近曝光度比较高,传统的自动化测试更关注的产品UI层的自动化测试,而分层的自动化测试倡导产品的不同阶段(层次)都需要自动化测试。   相信测试同学对上面的金字塔并不陌生,这不就是对产品开发不同阶段所对应的测试么!我们需要规范的来做 单元测试同样需要相应的单元测试框架,如java的Junit

软件质量保证与测试——单元测试过程&断言

99封情书 提交于 2020-03-17 18:23:57
单元测试过程 定义:单元测试是对软件 基础组成单元 进行的测试 时机:一般在 代码完成后由开发人员完成 ,QA人员辅助 对象:类、模块、组件、单元 单元测试 单元测试的依据是软件的 详细设计描述、源程序清单、编码标准 等。 单元测试一般应该由编程人员完成,有时测试人员也加入进来,但编程人员扔会起到主要作用。 多个被测试模块之间的单元测试可同时进行,以提高单元测试效率。 单元测试是对软件组成的基本单元测试。 在传统的结构化编程语言如c语言中,单元一般是模块,也就是函数或子过程。 在象c++中,单元是类和类的方法 在Ada语言中,单元可为独立的过程、函数或Ada包 在第四代语言(4GL)中,单元对应为一个菜单或显示界面。 单元测试的目的 验证 代码 是否达到详细设计的预期要求(概要设计->集成测试) 发现代码中不符合 编码规范 的地方 准确定位发现的错误,以便排除错误 单元测试的优点 单元测试在编码过程中(在所有测试前),若发现一个错误,不论是从做回归测试的角度,还是对错误原因理解的深刻性的角度,修复错误的成本远小于集成测试阶段,更小于系统测试阶段( 效益更优 ) 在编码过程中考虑单元测试的问题,有助于编程人员养成更良好的 编程习惯 ( 规范 ),提高源代码质量 单元测试的步骤 实施应遵循一定的步骤。 计划 单元测试 设计 单元测试 实现 单元测试 执行 单元测试 结果分析并提交

我为什么长期看好软件测试这个职业—软件测试属于“金字塔型”职业?还是“扁平型”职业?

旧巷老猫 提交于 2020-03-17 10:45:13
前两天看《香帅的中国财富报告》,在职业篇里,提到一个关键词: 可编码 。什么样的职业是可编码的呢?重复的、有明确目标的工作会被算法替代,比如:阅读资料、记忆、复述、数字分析、总结等等。 其中还提到两种职业模型: “金字塔型职业” 和 “扁平型职业” ,他们的含义分别如下: 金字塔型职业:可编码的工作很多,只有顶部少数的工作无法被替代。比如:金融行业、法律、商业、销售等,虽然很多工作可以被替代,但是优秀的基金经理或者销售经理,他们所具备的经验、决策力是不可替代的。 扁平型职业:多数的工作是不能被编码的,比如:社区服务、医疗保健执业医师和技师等。这些工作往往需要人的主观意识和经验,因此被替代率会比较低。 那么软件测试属于哪种职业呢?我个人的观点,现阶段应该还属于“扁平型职业”,也就是可编程替代率不高。我主要是从目前软件测试行业的工作内容去分析,下面是我的几个思考点。 测试用例 测试用例编写是一系列的工作,前期需要参与需求评审,后面则需要根据需求文档内容,结合一些测试理论思想编写详细的测试点。这个过程是依赖人的主观理解以及经验,同时还牵扯到用户交互体验,因此可被编程替代度比较低。 那假如这个过程想被编程替代,有没有可能呢?我觉得等到发展到一定阶段,也有可能,需要依赖 人工智能 。首先产品经理需要按照一定的规则编写PRD文档,然后由人工智能系统,分析每条需求的语义