1.获得软件测试版本;
2.根据软件需求的各种文档进行需求分析,比如需求文档,功能需求文档,详细的技术文档(各个公司拥有哪些文档都不一样);
3.需求分析结束后,进行测试点划分提取,即高层用例设计(包括准备测试数据);
4.详细用例设计;
5.用例评审;
6.执行用例,如果发现缺陷,则提交缺陷,待开发修复缺陷后,进行retest,最后关闭缺陷。
大概就是这个流程,不过不同的公司流程也会有所不同。
常用软件:
ALM(QC的升级版),常用的需求、用例、缺陷管理工具。
SVN,常用的配置管理工具,各种文档代码的存放。
QTP、LR这两个工具主要是用作自动化测试和性能测试,一般刚开始测试的人员不是很实用。
软件测试要学什么数据库的知识,请教高人!!!!
从测试过程的角度来说我们也可以把数据库测试分为:
系统测试
传统软件系统测试的测试重点是需求覆盖,而对于我们的数据库测试同样也需要对需求覆盖进行保证。那么数据库在初期设计中也需要对这个进行分析,测试。例如存储过程,视图,触发器,约束,规则等我们都需要进行需求的验证确保这些功能设计是符合需求的.另一方面我们需要确认数据库设计文档和最终的数据库相同,当设计文档变化时我们同样要验证改修改是否落实到数据库上。
这个阶段我们的测试主要通过数据库设计评审来实现。
集成测试
集成测试是主要针对接口进行的测试工作,从数据库的角度来说和普通测试稍微有些区别对于数据库测试来说,需要考虑的是数据项的修改操作、数据项的增加操作、数据项的删除操作、数据表增加满、数据表删除空、删除空表中的记录、数据表的并发操作、针对存储过程的接口测试、结合业务逻辑做关联表的接口测试。
同样我们需要对这些接口考虑采用等价类、边界值、错误猜测等方法进行测试。
单元测试
单元测试侧重于逻辑覆盖,相对对于复杂的代码来说,数据库开发的单元测试相对简单些,可以通过语句覆盖和走读的方式完成。
系统测试相对来说比较困难,这要求有很高的数据库设计能力和丰富的数据库测试经验。而集成测试和单元测试就相对简单了。
而我们也可以从测试关注点的角度对数据库进行分类:
功能测试
对数据库功能的测试我们可以依赖与工具进行:
DBunit:一款开源的数据库功能测试框架,可以使用类似与Junit的方式对数据库的基本操作进行白盒的单元测试,对输入输出进行校验。
QTP:大名鼎鼎的自动测试工具,通过对对象的捕捉识别,我们可以通过QTP来模拟用户的操作流程,通过其中的校验方法或者结合数据库后台的监控对整个数据库中的数据进行测试。个人觉得比较偏向灰盒。
DataFactory:一款优秀的数据库数据自动生成工具,通过它你可以轻松的生成任意结构数据库,对数据库进行填充,帮助你生成所需要的大量数据从而验证我们数据库中的功能是否正确。这是属于黑盒测试。
数据库性能虽然我们的硬件最近几年进步很快,但是我们需要处理的数据以更快的速度在增加。几亿条记录的表格在现在是司空见惯的,如此庞大的数据量在大量并发连接操作时,我们不能像以前一样随意的使用查询,连接查询,嵌套查询,视图,这些操作如果不当会给系统带来非常巨大的压力,严重影响系统性能。
性能优化分4部分:
1、物理存储方面
2、逻辑设计方面
3、数据库的参数调整
4、SQL语句优化
性能测试:
我们如何对性能方面进行测试呢,业界也提供了很多工具通过数据库系统的SQL语句分析工具,我们可以分析得到数据库语句执行的瓶颈,从而优化SQL语句。
Loadrunner:这个不用多说,我们可以通过对协议的编程来对数据库做压力测试。
Swingbench:(这是一个重量级别的feature,类似LR,而且非常强大,只不过专门针对oracle而已)数据库厂商也意识到这点,例如oracle11g已经提供了real applicationtest,提供数据库性能测试,分析系统的应用瓶颈。
还有很多第三方公司开发了SQL语句优化工具来帮助你自动的进行语句优化工作从而提高执行效率。
安全测试:
软件日益复杂,而数据又成为了系统中重中之重的核心,从以往对系统的破坏现在更倾向于对数据的获取和破坏。而数据库的安全被提到了最前端自从SQL 注入攻击被发现,冒失万无一失的数据库一下从后台变为了前台,而一旦数据库被攻破,整个系统也会暴露在黑客的手下,通过数据库强大的存储过程,黑客可以轻松的获得整个系统的权限。而SQL的注入看似简单缺很难防范,对于安全测试来说,如何防范系统被注入是测试的难点。
业界也有相关的数据库注入检测工具,来帮助用户对自身系统进行安全检测。
对于这点来说业界也有标准,例如ISO IEC 21827,也叫做SSE CMM 3.0,是CMM和ISO的集成的产物,专门针对系统安全领域的另外一方面,数据库的健壮性,容错性和恢复能力也是我们测试的要点
我们也可以发现功能测试,性能测试,安全测试,是一个由简到繁的过程,也是数据库测试人员需要逐步掌握的技能,这也是以后公司对数据库测试人员的要求。
软件测试数据生成
测试数据肯定不是不断尝试而产生的。如果这样的话那测试部不就成了盲目尝试了吗,就毫无目的和过程可言了。
测试数据是根据业务逻辑、路径覆盖、判定覆盖、条件覆盖、经验值法等不同的方法制定的,从而来用这些有目的性的数据去作为程序的输入,然后再来判断程序的输出是否和当初设计数据预期产生的结果相同来判断结果。
你的这个例子,要判断是否是等边三角形。那么构成等边三角形的必要条件之一就是三遍相等。知道了这个必要条件,然后就基于这个必要条件来设计测试数据,这样测试数据就诞生了,而不是不断尝试出来的
我看现在的很多论文上都是用这种遗传算法来生成测试数据生成的,每次都要执行以下输入数据,看它的执行路径与目标路径的偏差,根据这个偏差,然后调整输入数据,当输入数据调整到三个数据相等了,这时候执行路径和目标路径重合就找到了最优解,也就是测试数据。实在是不明白
"我想问的是这个不断尝试值的过程不就是测试的过程,为什么说最后得到的是测试数据
"我大概明白书中所说的意思和你的疑惑了,你要转换一下思路,你想,要让我们去测试这个是不是等边三角形,我们肯定第一反应就是准备3个相等的值去作为程序的输入,从这点出发,其实你的测试数据是基于“三角形三边相等”的理论而直接一次性生成了。但是书中所举例的三角形这只是一个例子,就是说书中的前提是在生成测试数据之前,是不知道“三角形三边相等”这个理论的,他不知道这个理论的前提下,又怎么可能直接一次性生成3个相等的值为测试数据呢?所以就要不断的尝试,尝试的过程比如说第一次尝试数据是三个都不等、然后两个边相等。。。。第N次的时候尝试到了3个相等的值,然后这一次尝试就真正覆盖到了程序中判断为等边三角形的路径,所以这个数据就这样得出了。那么这个数据就可以被记录下来作为以后同样测试的一个测试数据。
也不知道我的理解对不对,我也是从事软件测试的,很高兴能和楼主共同学习
软件测试需要学习数据库么?
1.测试环境(网络环境,windows环境等)
2.数据库管理
3.编程技巧(java编程设计,脚本语言,设计工具,XML编程)
4.软件测试技术(测试理论,方法,流程,文档写作,测试工具,自动测试)
5.测试技术实践
软件测试用例主要由输入数据和什么两部分组成
操作步骤、预期结果,其实应该还有用例概述,用于简要介绍测试用例的作用
有没有一些统计软件测试方面的数据,为了体现出软件测试在不断的被告知重视起来,比如说统计软件安全问题
“假如存在没有任何错误的程序,那么世界也会不复存在。”
因错误而存在,因修正错误而存在,这就是软件测试工程师的存在之道。虽然测试不是解决错误的根本举措,但却是必须的手段。
中华英才网近期发布了最新一期的IT职场人气排行榜,最热门的前三名岗位是:软件测试工程师、高级程序员、产品项目经理的高级职位;作为软件开发流程中的重要一环,软件测试在2006年浮出水面,成为IT职场的最新热门岗位。
据统计,2006年北京在国展举办的几次招聘会,合计曾有180多家软件企业高薪招聘软件测试人员,仅有7家收到的简历能够达到招聘岗位数的50%,但符合企业要求者也不足30%。根据权威网站的统计数据,最近一个月内北京计算机科学与技术专业的招聘职位接近12000个,其中软件类职位有5000个,测试类职位有3000个,网络类职位接近40a0个。在2006年,中国软件外包行业对于人才的需求非常大,尤其以研发人员最为明显。
笔者从一位测试行业资深人士了解到,随着测试工作量的增加,如果要招到合适的软测人员,很多测试部门经理不得不把大部分时间和精力用在人员招聘上。如果说是企业的要求苛刻,倒不如说应聘者对于软测的知识掌握还不成体系,真正合格的测试人员太少;我国目前软件测试的人才需求缺口超过20万人,人才的紧缺也促使软件测试工程师的薪资逐渐走高,高级测试工程师年薪可高达10万元。从近期的企业人才需求和薪金水平来看,软件测试工程师的年工资还有逐年上升的明显趋势。
而目前我国还没有软件测试的大专和本科专业,在软件测试越来越重要的今天,更加凸显出软测人才缺乏的瓶颈;也因此软件测试工程师的薪酬一直“高烧不退”。
软件测试工程师的工作内容
“假如存在没有任何错误的程序,那么世界也会不复存在。”
因错误而存在,因修正错误而存在,这就是软件测试工程师的存在之道。虽然测试不是解决错误的根本举措,但却是必须的手段。
软件测试工程师(Software Testing Engineer)的主要工作职责是,理解产品的功能要求,并对其进行测试,检查软件有没有错误(Bug),决定软件是否具有稳定性(Robustness),写出相应的测试规范和测试案例。简而言之,软件测试工程师在一家软件企业中担当的是“质量管理”角色,及时纠错及时更正,确保产品的正常运作。据有关调查数据表明,目前在国内许多软件企业,测试人员和开发人员之比在1:7和1:5之间,与国外软件业1:1的比例还相去甚远。
软件测试工程师主要职责为:
1、负责项目/产品的测试工作,分析产品需求,建立测试环境和计划,保证产品质量以及测试工作的顺利进行;
2、按照软件工程规范和项目管理流程,实施、管理和知道软件开发不同阶段的各种测试,并提交测试报告。测试的计划安排包括人员安排、进度、使用的软硬件环境、测试的流程等;
3、提交测试报告,并撰写用户说明书;
4、参与软件测试技术和规范的改进和制定。
要成为一名合格的软测工程师,一般需要至少专科学历,一到两年测试工作经验。要熟悉软件的测试技术、方法、流程、测试文档,若想进一步提升,还要熟悉自动化测试的流程、管理及深层开发(包括测试框架等);了解若干主流测试工具,如功能测试工具winrunner、quicktestpro,性能测试工具LoadRunner,配置管理工具TestDirecter, Visiual Source Safe等;熟悉一些主流的软件工程方法论和思想,如RUP、CMM、CMMI、XP、PSP、TSP;了解软件工程,软件生命周期模型基础,了解软件配置管理;能够根据不同企业的产品特点,要求了解相应的开发测试方法。对于资深的软件测试人员,有些企业还要求其本身有自主开发测试工具的能力。
此外,由于需要与开发人员及时沟通,因此作为一个出色的软件测试工程师,还需要有良好的沟通技巧以及优秀的言语表达能力,具备良好的团队合作精神。
软测工程师,薪情差异大
并非软件测试工程师清一色的都是高薪,从业时间不同,技术水平不同,薪酬待遇也不尽相同。
软件测试中用到的数据库是什么数据库
会看脚本就行了。loadrunner里面的都是脚本。不一定非要什么语言。
当然数据库,得会sql。
转载请注明出处51数据库 » 软件测试的数据 软件测试要准备那些数据处理