第一篇:软件测试课学习心得
软件测试课学习心得
09301028 张如
这个学期我学习了软件测试这门专业课程,在学期即将结束的时候,我也对这门课程建立基本的了解和理解。软件测试这门课程作为软件工程专业中一门很重要的课程,已经在软件领域占据了不可替代的角色,当一个软件从雏形到真正的在一台计算机上运行的时候,谁也不能保证计算机软件能一步到位的满足人们的需求。所以就有了软件测试,其目的是:第一是确认软件的质量,其一方面是确认软件做了你所期望的事情,另一方面是确认软件以正确的方式来做了这个事件。下面我简单的写一下这个学期对课程的总结和收获。
我认为,在整个庞大的软件工程中,不管是需求分析、架构设计甚至是最后的debug,都会产生引入不管的机会,这就要求作为一个软件测试师要掌握丰富的软件工程原理和知识。测试的工作将会存在于整个项目周期,即在项目开始时需要各种分析调研时就开始了。尤其是在形成需求规格说明书时就有对文档的测试需求,甚至主导整个项目的走向。
软件测试对逻辑思维、学习能力、反应要求很高,是否有严密的思维和逆向思维也非常重要。做测试还要考虑到所有出错的可能性,有时候还要用一些非常规的的测试方法。软件测试还很注重软件性能问题,也就是要保证软件运行得很好;不同的使用环境下,考虑软件
的兼容性同样重要。对于测试员来讲,会比开发人员更加重视软件产品的质量问题。在测试过程中,测试者可能会为客户的需求角度考虑到更多,由此我们可以认为测试人员有权利决定产品是否可以发布。然而,通过一个学期的学期,我们又不得不懂得,软件测试人员不是万能的,测试人员在面对一个设计烂编码烂的软件时,也是无法不低头的,再怎么测试它也变不成优秀的软件。
通过课上的理论因为课下的实践和后半学期又因为身体力行于qq群论坛里使我对测试方法和设计分析有了大致的接触和深入了解。收印象深刻的有一下几点。
1、最基本的测试的分类:从是否需要执行被测软件的角度,可分为静态测试和动态测试;从测试是否针对系统的内部结构和具体实现算法的角度来看,可分为白盒测试和黑盒测试。
2、然后就是,白盒测试中的逻辑驱动测试的覆盖率测试。
3、还有就是对于划分等价类和边界值法这一块,让我从模糊到明朗。
4、在初次写测试用例的时候,感觉真是纠结,用例写的很死板,看似简单的一个填表工作,要写好真是不简单。一开始写的比较不自然,有些生搬硬套,而且还很慢。在后来负责了对论坛新鲜事版块的测试之后,明白了测试用例其实就是指导怎么去执行测试,而且书写设计测试用例也要以熟悉软件的业务为前提,才能更好的去测试。
另外就是一个学期的学习让我纠正了几点误区:
1. 有位大师曾说过:“软件测试的目的在于发现错误,一个好的测试用例在于发现从来未发现的错误,一个成功的测试是发现了从未发现的错误的测试。” 由此我自认为测试就是为了找到bug,然而一个学期的测试学习经验告诉我这是错误的,如果只是为了找到bug,那么bug会成天缠着你。
2.在大家协力测试论坛的时期内,我曾认为这种大量的重复性的工作真的很乏味,可是在这乏味中真心发生挺多有意思的bug,意想不到的bug,所以我认为只要掌握了方法,在重复中寻到到创新的小惊喜,任何东西都有它的特点。
作为测试新手,通过一学期的学习,我认为能独立写测试计划,设计测试用例,精通一种测试工具,理解一种bug管理软件是新手晋级老手的必备素质。任重而道远?!
在最后,我不得不提的就是细心和耐心了。这是我认为这个学期测试课上收获最大的了,课程要求测试时必须细心和耐心,我在想,如果以后真的工作在测试一系列的岗位上,要学会坐得住,用大量的时间和精力和bug斗争,分离、识别还有归类bug,是不是也能真的改变我粗心大意和三分钟热度的毛病。
最后感谢刘老师这学期的课程讲授,和实践中的指导和帮助。测试路程,路漫漫其修远兮,吾将上下而求索。
第二篇:软件测试学习纲要
《软件测试》学习纲要
一、2014年春季学期期末考试题型如下:
1、选择题:15题、每题2分;共30分
2、填空题:15空、每空1分;共15分
3、论述题:6题、每题5分;共30分
4、软件测试实践题:4题、共25分
学习要点:
1) 软件测试目的、原则、误区、对象、分类
2) 软件缺陷
3) 软件测试v模型
4) 测试用例概念、设计原则、设计步骤
5) 黑盒、白盒测试
6) 边界值、等价类测试用例设计
7) 因果图法
8) 场景法
9) 逻辑覆盖测试分类、关系
10) 环路复杂度
11) 单元测试概念
12) 单元测试的策略
13) 集成测试概念
14) 集成测试策略10个字
15) 系统测试的概念
16) 回归测试概念
17) 验收测试概念、过程
18) 动态测试与静态测试
19) 系统性能参数
20) 性能测试分类
21) 测试计划、测试报告文档内容
22) 白盒测试用例设计
23) 黑盒测试用例设计
24) junit单元测试用例设计及编程
第三篇:软件测试学习基础
学习软件测试需要什么基础
1、自学能力又是与基础无关的,但自学能力是一个技术人员最重要的能力之一,尤其是在遇到问题时快速学习并找到解决办法的能力。技术人员很重要的一点就是需要不断学习新的知识,这样才能与时俱进。在工作中不要指望别人告诉你该学什么,该怎么学,甚至帮你解决问题,要对自己有个长期的规划,希望往哪方面发展,应该具备什么样的知识。当然知识是学不完的,工作中很可能遇到没学过的问题,因此遇到问题时要知道怎样去寻找解决方法,并自己思考如何解决。
2、编程基础至少要了解一门编程语言,c、vb、java都可以,注意是了解而不是精通。了解的意思就是能看懂代码,如果能自己写简单的代码就更好了。关键是了解编程的思想,不至于看到代码相关的内容就不知所措了。只要能看懂一种编程语言,学会其他语言也就不是问题了。其实绝大部分刚刚从事软件测试行业的人都是做功能黑盒测试,并不需要编程能力,但当工作了一段时间,想往更高层次发展时,就需要更全面的能力,编程能力就是很重要的一点。如果想往性能测试、自动化测试方面发展的话,那编程能力更是必不可少的了,因为使用测试工具就需要编程。
3、数据库基础与编程基础一样,会简单的sql语句,熟悉一种数据库的使用,sql server是首选,毕竟是微软的产品,简单易用。现在的软件系统基本上没有不使用数据库的了,测试人员可能经常会到数据库中查询一些数据,如果能自己进行数据库的操作,那么不但能提高工作效率,也能对系统有更深一步的了解。
4、英语基础具备基本的英语读写能力。看到英语就害怕可不是一个软件测试人员应该具备的素质。基本上所有的软件测试工具都是英文界面,很多好的知识文档也只有英文版的,有可能你测试的系统也是英文的,甚至在一些企业里,跟你沟通的开发人员也只会英语。但也不要被吓着,英语其实多用用就熟悉了,再开个金山词霸,难不倒你的。英语不需要多讲了,即使不从事软件测试工作会一门外语也是很有用的。
第四篇:软件测试的学习
软件测试学习
一、软件测试方法:白盒测试、黑盒测试、灰盒测试
二、软件测试阶段:
执行人测试阶段测试方法
开发人员—>1.单元测试(白盒测试)
测试人员—>2.集成测试(黑盒+白盒测试)
测试人员—>3.系统测试(黑盒多)
第三方—>4.验收测试(黑盒多)
验收测试包括:正式验收测试、alpha测试、beta测试三种。
系统测试包括:功能测试、性能测试、界面测试、安全测试、配置测试、兼容测试、回归测试等。
三、软件各种测试的定义:
白盒测试:程序内部的结构测试,也叫结构测试或逻辑驱动测试,对程序所有逻辑路径进行测试。
? 白盒测试的主要方法:逻辑驱动测试和基本路径测试。
? 白盒测试主要对程序模块进行如下检查:
1. 对程序模块所有独立的执行路径至少测试一遍。
2. 多所有逻辑判定,取“真”与取“假”,的两种情况都至少测试一遍。
3. 在循环的边界和运行的边界内执行循环体。
4. 测试内部数据结构的有效性,等等。
黑盒测试:也叫数据驱动测试,主要是基于需求分析对系统的功能进行测试。
? 黑盒测试的主要方法:等价类划分、边界值分析、因果图、场景法、错误推测法
※(测试用例设计所采用的方法就是黑盒测试的主要方法)
? 黑盒测试为了发现几类错误:
1. 在接口上,输入是否正确接收,输出结果是否正确(集成测试)
2. 功能是否有遗漏,是否正确(系统测试-功能)
3. 性能是否能满足要求(系统测试-性能)
4. 是否有数据结构错误或外部信息(例如数据文件)访问错误(系统测试-兼容)
5. 是否有初始化或终止性错误(系统测试-安全)
单元测试:对代码的运行测试(也叫白盒测试),用于判定某个特定条件(或场景)下某个特定函数的行为。 集成测试:(也叫组装测试,联合测试),是单元测试的逻辑扩展。模块与模块之间接口的测试。
? 集成测试的策略:
1. 模块与模块连接时,穿越模块接口的数据是否丢失。
2. 各个子模块组合起来,是否达到预期要求的父功能。
3. 一个模块的功能是否对另一个模块的功能产生不利影响。
4. 单个模块的误差积累起来,是否会放大,从而达到不可接受的程度。
5. 全局数据结构是否有问题。
系统测试:是将测试的子系统装配成一个完整的系统来测试
? 系统测试的目的:对最终软件系统进行全面的测试,确保最终软件系统满足产品的需求并遵循系
统设计。
验收测试:alpha测试、beta测试、第三方验收测试
回归测试:对系统的新版本执行上一版本的测试用例检验是否通过。也可以说对于修改后新代码进行测试。
? 回归测试:作为软件生命周期的一个组成部分,在整个软件测试过程中占有很大的工作量比重,
软件开发的各个阶段都会进行多次回归测试
功能测试:也叫黑盒测试,利用黑盒测试法进行动态测试,根据需求分析看系统是否能达到预期结果。 性能测试:也叫压力测试,目标是测试当负载逐渐增加时,系统各项性能指标的变化情况。
界面测试:测试界面是否美观,是否能让用户满意,操作功能是否合理。
安全测试:检查系统对非法侵入的防范能力(破译密码、保护机制)。
配置测试:搭环境时,进行的参数配置是否合理。
兼容测试:与其他软件或浏览器是否发生冲突。
四、测试活动的生命周期是什么(也可说成测试流程是什么)?
是指从测试项目计划建立到bug提交的整个过程。
包括五个阶段:1、测试项目计划
2、测试需求分析
3、测试用例编写
4、测试用例执行
5、bug提交
(总结:测试的集成测试阶段和系统测试阶段,两个阶段会运用“测试活动生命周期”来完成)
例如:集成测试→上面的五个阶段(测试项目计划除外)
系统测试→上面的五个阶段(测试项目计划除外)
? 软件测试项目计划的目的、内容:(对应阶段1)
软件测试计划是指导测试过程的纲领性文件,包含了产品概述、测试策略、测试方法、测试区域、测试配置、测试
周期、测试资源、测试交流、风险分析等内容。借助软件测试计划,参与测试的项目成员,尤其是测试管理人员,
可以明确测试任务和测试方法,保持测试实施过程的顺畅沟通,跟踪和控制测试进度,应对测试过程中的各种变更。
测试计划和测试详细规格、测试用例之间是战略和战术的关系,测试计划主要从宏观上规划测试活动的范围、方法
和资源配置,而测试详细规格、测试用例是完成测试任务的具体战术。所以其中最重要的是测试策略和测试方法(最
好是能先评审)
? 软件测试项目计划从什么时候开始的,为什么?(对应阶段1) 测试过程测试过程
软件测试应该在需求分析阶段就介入,
因为测试的对象不仅仅是程序编码,应该对软件开发过程中产生的所有产品都测试,并且软件缺陷存在放大趋势.缺
陷发现的越晚,修复它所花费的成本就越大.
? 测试用例编写的内容:(也可以说成是缺陷测试报告的组成:)(对应阶段3)
简单说分三部分,测试步骤、数据输入、预期结果
缺陷测试报告的组成:缺陷的标题,缺陷的基本信息,复现缺陷的操作步骤,缺陷实际结果的描述,期望正确结果
的描述,注释文字和截取的缺陷图像
? 缺陷的生命周期(也可以说成是bug的管理流程)(对应阶段5)
最简单的缺陷生命周期:
发现—打开:发现缺陷提交给开发人员
打开—修复:开发人员在现,修复缺陷,然后提交测试人员去验证
修复—关闭:测试人员验证修复的软件,关闭已不存在的缺陷。
复杂的缺陷生命周期:
测试人员提交bug入库(qc),错误状态为new
高级测试人员验证错误
验证错误qc状态验证open状态下错误qc状态
高级测试人员是open开发人员是并修复fixed
高级测试人员不是declind不是declind
是不能修复留下文字说明保存保存bug为open对于不能解决和延期解决的bug,不能让开发人员自己决定,一般要报告给测试经理。
五、测试结束的标准是什么:(对应测试活动生命周期记忆)
基于“项目计划”的原则(对应阶段1)
基于“测试阶段”的原则(对应阶段2)
基于“测试用例”的原则(对应阶段3)
基于“覆盖率”的原则(对应阶段4)
基于“缺陷收敛趋势”的原则(对应阶段5)
基于“缺陷修复率”的原则(对应阶段5)
基于“缺陷度量”的原则(对应阶段5)
基于“验收测试”的原则
基于“质量成本”的原则
基于“测试行业经验”的原则
六、测试工具:
测试bug的管理工具:td、qc、bugfree
功能测试管理工具:qtp
性能测试管理工具:loadrunner
[testdirector]:企业级测试管理工具,也是业界第一个基于web的测试管理系统。
[quality center]:基于web的测试管理工具,可以组织和管理应用程序测试流程的所有阶段,包括指定测试需求、计划测试、执行测试和跟踪缺陷。
[quicktest professional]:用于创建功能和回归测试。
[loadrunner]:预测系统行为和性能的负载测试工具
七、软件测试的相关概念:
软件测试的对象:需求规格说明书、概要设计规格说明书、详细设计规格说明书、源代码程序
软件测试:检测系统预期结果与实际结果之间的差别,发现系统中的bug。
软件测试与qa的区别:
qa:是以第三方的姿态,孤立于项目组以外的身份,对整个开发进行评审,qa负责对每个阶段的软件文档审
核。
软件测试的目的:
1. 发现代码错误(单元测试)
2. 一个成功的测试用例,在于发现至今未发现的错误
3. 一个成功的测试用例,在于发现至今未发现错误的测试
4. 依据需求分析确保产品的所有功能,并且用户访问的所有功能附有书面说明书。(系统测试-功能)
5. 满足性能和效率的要求(系统测试-性能)
6. 适应用户的环境(系统测试-兼容)
软件测试的原则:
1. 应尽早执行,并贯穿于整个软件生命周期。(软件的生命周期)
2. 严格执行测试计划(软件的生命周期-测试项目计划)
3. 应追溯需求(软件的生命周期-测试需求分析)
4. 穷举例是不能的,要遵循good-enough原则(软件的生命周期-测试用例编写)
5. 关注缺陷的修复(软件的生命周期-bug提交)
6. 检查程序是否做了不该做的(单元测试)
7. 必须确定预期结果(系统测试-功能)
8. 应由第三方来构造(验收测试)
八、 v模型:
v模型:揭示了软件测试活动分层和分阶段的本质特性。
如:集成测试对应概要设计
集成测试计划和集成测试说明文档的编写:可以在概要设计阶段就可以开始编写,只要在集成测试实施前完 成即可。
v模型还有一点意义:1)在需求分析阶段 : 编写测试用例,可以发现需求文档本身的缺陷,这样就能尽早把需
求的缺陷消除,避免使缺陷残留到下一个阶段中。
2)在概要设计阶段:编写集成测试用例也会间接地地图软件设计质量。
总结:开发人员软件开发阶段:用户需求、需求分析与系统设计、概要设计、详细设计、编码
(集成、实施、交付)
测试人员软件测试阶段:验收测试准备、系统测试准备、集成测试准备、单元测试准备、单元测试
(集成测试、系统测试、验收测试)
(测试阶段准备反过来,与开发阶段对应上)
九、典型的软件测试过程模型是:v模型、w模型、h模型、前置测试模型。
第五篇:软件测试学习总结
软件测试学习总结
姓名:某某学号:20140001
在大庆浦东软件平台有限公司经过一周的软件测试实训,从对软件测试没有什么经验的我初步掌握了软件测试的方法和技能,收获颇多。
我在大学期间的专业是信息与计算科学,原本打算从事网络方面的工作,对活动目录、数据库、操作系统等的知识比较感兴趣。经过这次理论学习,了解到要做好软件测试,要求掌握的知识并不仅仅是测试方面的,网络、数据库、操作系统等的知识对做好测试也是很有帮助的。这让我明确了以后学习的目标,在不断学习软件测试的同时,也应该继续其他相关知识的深入学习。
通过此次学习,对整个软件测试行业的了解大大的加深。以前认为软件测试只是枯燥的反复的使用被测试软件来发现异常的问题,以为软件测试并不重要,低开发一等。现在认识到了软件测试的重要性,软件测试是软件产业向软件工业化生产时代迈进不可缺少的重要组成部分,是保证软件质量达到客户需求不可缺少的环节。软件测试在国内是一个新的职业,发展得比较晚,但它的重要性正在为行业所重视。
在学习过程中,我了解了作为一个合格的测试人员所应具备的素质与技能。其中个人素质在测试工作中起到了非常重要的作用,它包括你的信心、耐心、细心和与人交流沟通的能力,它将贯穿你工作生涯的整个过程。在测试理论上,我们系统学习了软件测试的流程,各种测试阶段和测试方法,以及测试工具的使用。通过这些课程的学习,让我们对软件工程也有了更深刻的理解,为以后的测试工作作了很好的理论储备和技能的提升。
软件测试作为软件开发过程中一个非常重要的环节,越来越成为软件开发商和用户关注的焦点。完善的测试是软件质量的保证,因此软件测试就成了一项重要而艰巨的工作,要做好这项工作当然也绝非易事,我在做软件测试工作中总结出了一些经验和技巧。
1.功能点的细化
在进行测试前,先将所要测试的功能细分,填写《测试用例表》,有针对性的运行功能测试案例,逐个对每个功能细分点进行测试。在每次运行测试案例之前,明确此次运行的目的和预期的输出结果,并要做好记录。
2.注意测试中的错误集中发生的现象
有一些错误是和程序开发人员的编程水平和习惯有很大关系的。例如程序中的拼写错误,习惯用法等。注意收集并记录这些现象,有助于更快、更多地发现类似的错误。
3.尽可能多的使用非常规的测试
充分考虑到各种合法的输入和不合法的输入以及各种边界条件。边界值往往是最容易出现异常的情况,特殊的情况下甚至要制造极端的状态和意外状态,比如网络突然中断,和电源突然断电等情况。
4.对测试错误结果一定要有一个确认的过程
一般有a测试出来的错误,一定要有一个b来确认。
5.制定严格的测试计划
测试时间安排的尽量宽松,不要希望在极短的时间内完成一个高水平的测试。
6.回归测试的关联性一定要引起充分的注意
在开发人员刚修复bug之后的地方,再找一找,往往开发人员只修复报告出来的缺陷而不去考虑别的功能在修改时可能会重新造成错误。修改一个错误而引起更多的错误出现的现象并不少见。
7.测试文档要尽可能详细
《测试用例表》中的功能点可尽量的详细,如实、详细地记录每次运行测试案例的输入数据,输出数据,出错提示,进行测试的时间,完成测试的时间等,便于以后对测试工作的回溯。
8.重视交流和沟通
包括和程序开发人员的交流,同是测试人员之间的交流,网上技术论坛和网友的交流,和客户的交流等。多思考,多交流,多提问,通过多种沟通交流的途径,可以少走很多弯路,同时可以学到很多东西。
9.善于总结
在测试过程中发现的所有问题,异常情况,发现程序开发人员易犯,常犯的错误,各种有价值的经验教训,使用系统和操作数据库时发现或者学到的技巧,使用测试工具时的心得等等,都可以随手记录在笔记本或者电脑上。这些都将是今后工作中可以参照的珍贵资料,同时也会成为自己的宝贵经验。
10.妥善保存一切测试过程文档。
这次软件测试实训为我们以后从事软件测试工作打下了良好的专业基础,为我们的进一步学习提高打下了扎实的理论基础。对测试过程有了初步的认识,测试计划、测试设计、测试开发、测试执行、测试评估、测试报告贯穿整个软件开发过程。单元测试、集成测试、系统测试、验证测试每个阶段都应以用户需求为依据。这些基本的概念虽然比较抽象,但对以后的实践是大有益处的。
总的来说,这次培训效果不错,对自己有一定的提升,这完全不同与学校的学习,因为它更加贴近工作,针对以后工作的内容作了很多实例的练习与工具的使用,为我们更快的加入工作提供的很好的前提。接下来一段时间,我将利用假期进入相关测试部门进行实际项目的训练,我相信在我有了很好的理论基础后,会在工作中很好的加以应用,让测试工作做得更好。同时,我会更加努力的学习与工作,遇到问题会及时多渠道寻找解决方法,积极上进,希望早日成为一名优秀的测试人员。