⑴ 什么是软件测试
它是帮助识别开发完成(中间或最终的版本)的计算机软件(整体或部分)的正确度(correctness) 、完全度(completeness)和质量(quality)的软件过程;是SQA(software quality assurance)的重要子域。
软件测试的目标:
(1)测试是为了发现程序中的错误而执行程序的过程;
(2)好的测试方案是极可能发现迄今为止尚未发现的错误的测试方案;
(3)成功的测试是发现了至今为止尚未发现的错误的测试。
软件测试的内容:
软件测试主要工作内容是验证(verification)和确认(validation ),下面分别给出其概念:
验证(verification)是保证软件正确地实现了一些特定功能的一系列活动,即保证软件做了你所期望的事情。(Do the right thing)
1.确定软件生存周期中的一个给定阶段的产品是否达到前阶段确立的需求的过程;
2.程序正确性的形式证明,即采用形式理论证明程序符号设一计规约规定的过程;
3.评市、审查、测试、检查、审计等各类活动,或对某些项处理、服务或文件等是否和规定的需求相一致进行判断和提出报告。
确认(validation)是一系列的活动和过程,目的是想证实在一个给定的外部环境中软件的逻辑正确性。即保证软件以正确的方式来做了这个事件(Do it right)
1.静态确认,不在计算机上实际执行程序,通过人工或程序分析来证明软件的正确性;
2.动态确认,通过执行程序做分析,测试程序的动态行为,以证实软件是否存在问题。
软件测试的对象不仅仅是程序测试,软件测试应该包括整个软件开发期问各个阶段所产生的文档,如需求规格说明、概要设计文档、详细设计文档,当然软件测试的主要对象还是源程序。
从不同的角度出发,软件测试可以划分为不同的分类:
从是否关心软件内部结构和具体实现的角度划分
A.白盒测试
B.黑盒测试
C.灰盒测试
从是否执行程序的角度
A.静态测试
B.动态测试
从软件开发的过程按阶段划分有
A.单元测试
B.集成测试
C.确认测试
D.验收测试
E.系统测试
* 测试过程按4个步骤进行,即单元测试、集成测试、确认测试和系统测试及发版测试。
* 开始是单元测试,集中对用源代码实现的每一个程序单元进行测试,检查各个程序模块是否正确地实现了规定的功能。
* 集成测试把已测试过的模块组装起来,主要对与设计相关的软件体系结构的构造进行测试。
* 确认测试则是要检查已实现的软件是否满足了需求规格说明中确定了的各种需求,以及软件配置是否完全、正确。
* 系统测试把已经经过确认的软件纳入实际运行环境中,与其它系统成份组合在一起进行测试。
单元测试 (Unit Testing)
* 单元测试又称模块测试,是针对软件设计的最小单位 — 程序模块,进行正确性检验的测试工作。其目的在于发现各模块内部可能存在的各种差错。
* 单元测试需要从程序的内部结构出发设计测试用例。多个模块可以平行地独立进行单元测试。
1. 单元测试的内容
* 在单元测试时,测试者需要依据详细设计说明书和源程序清单,了解该模块的I/O条件和模块的逻辑结构,主要采用白盒测试的测试用例,辅之以黑盒测试的测试用例,使之对任何合理的输入和不合理的输入,都能鉴别和响应。
(1) 模块接口测试
* 在单元测试的开始,应对通过被测模块的数据流进行测试。测试项目包括:
– 调用本模块的输入参数是否正确;
– 本模块调用子模块时输入给子模块的参数是否正确;
– 全局量的定义在各模块中是否一致;
* 在做内外存交换时要考虑:
– 文件属性是否正确;
– OPEN与CLOSE语句是否正确;
– 缓冲区容量与记录长度是否匹配;
– 在进行读写操作之前是否打开了文件;
– 在结束文件处理时是否关闭了文件;
– 正文书写/输入错误,
– I/O错误是否检查并做了处理。
(2) 局部数据结构测试
* 不正确或不一致的数据类型说明
* 使用尚未赋值或尚未初始化的变量
* 错误的初始值或错误的缺省值
* 变量名拼写错或书写错
* 不一致的数据类型
⑵ 测试流程和测试方法是什么
测试流程
1、需求分析:需求分析由产品人员制定,细化每一个功能的细节,每一个按钮的位置,对于稍大或复杂一点的需求进行建模。
2、需求评审:所有参与项目人员进行,开发人员、测试人员。测试人员提出需求,开发人员考虑功能实现的方案与可行性、当然开发负责也是要参与的。测试人员主要是对需求的理解提出疑问,以便才能根据需求写用例。
3、开发人员制定开发计划:开发人员需求根据需求功能点进行排期。然后将开计划转交给测试人员。
4、测试计划制定测试计划:测试人员根据开发计划,对测试具体测试时间,也就是开发功能完成后的时间,进行几轮测试等。然后,把项目的开发与测试计划提交到Teambiton进行任务管理。
5、编写测试用例:根据详细的需求文档,开始进行用例的编写。
6、用例评审:在用例进行评审之间,先以邮件形式将用例发送给相关人员,以便他们事先了解用例对哪些功能进行验证以及验证的细节。然后,测试人员组进行用例评审,开发人员对用例与实际功能不符合有哪些,产品人员对会通过用例对功能的具体实现进行把握等等。
7、提交代码:开发人员完成所有功能后,会对自己的功能进行一个自测。自测完成后提交测试人员进行测试。
8、具体测试流程:开发人员对于提测的功能进行测试,发现的问题通过缺陷管理工具进行反馈,开发人员对问题进行修复,然后,准备第二轮测试。测试人员完成第一轮测试后,需要写测试结论,发到相关人员。然后进行第二轮测试,并且对第一轮中发现的问题进行重点回归。
9、测试通过:经过两到三轮或四轮的测试后,直到没发现新的问题,或暂时无法解决,或不紧急的问题。通过上级确认,可以通过。编写测试报告与验收方案。
测试方法
1、冒烟测试:指在对一个新版本系统进行大规模的测试之前,先验证一下软件的基本功能是否实现,是否具备可测性。引入到软件测试中,就是指测试小组在正规测试一个新版本之前,先投入较少的人力和时间验证一个软件的主要功能,如果主要功能都没有实现,则打回开发组重新开发。
2、功能测试:功能测试检查实际的功能是否符合用户的需求。测试的大部分工作也是围绕软件的功能进行,设计软件的目的也就是满足客户对其功能的需求。功能测试又可可以细分为很多种:界面测试、逻辑功能测试、易用性测试、安装测试、兼容性测试等。
3、回归测试:指修改了旧代码后,重新实行测试以确认修改后没有引入新的错误或导致其他代码产生错误。原有功能在新版本上进行回归测试,保证运行准确。
4、验收测试:验收测试是部署软件之前的最后一个测试操作。对产品功能、用户界面、性能、业务关联性的全局测试,确保产品达到产品经理的需求,没有阻碍产品使用的大bug。
5、升级测试:从历史版本升级到当前新版本的测试,确保升级后,软件可以正常使用,重点对升级后的新功能进行测试。
⑶ 软件测试需要用到哪些工具
软件测试分为手工测试和自动化测试,手工测试分为功能测试、性能测试、接口测试几个方向,自动化测试又分为功能自动化测试、性能自动化测试、接口自动化测试几个方向。每个方向用到的测试工具都不尽相同,下面我们来介绍一下一些常用的软件测试工具有哪些。
一、Selenium
Selenium是常用的功能测试工具之一,它是一套完整的 Web应用程序测试系统,包含了测试的录制、编写及运行和测试的并行处理。这个工具的主要功能包括:测试与浏览器的兼容性,测试系统功能。
二、Loadrunner
Loadrunner是一种预测系统行为和性能的负载测试工具,它通过模拟大量用户实施并发负载及实时性能检测的方式来确认、查找问题,对整个企业架构进行测试。
三、禅道
禅道是一款国产开源项目管理软件、支持产品管理、项目管理、质量管理、文档管理等。
四、Jmeter
JMeter是Apache组织开发的基于Java的压力测试工具。用于对服务器、网络或对象模拟巨大的负载来做压力测试,在不同压力类别下测试他们的强度和分析整体性能。
五、Postman
Postman是一款功能强大的网页调试与发送网页HTTP请求的Chrome插件。
六、Fiddler
能够支持所有浏览器、系统和平台的调试代理。位于客户端和服务器的中间,它能记录所有客户端和服务器的请求响应。
⑷ 测试方案根据什么写的
测试方案根据如下几个条件写:
国家法律法规的要求。
产品可靠性要求。
客户特别要求。
⑸ 什么是软件测试,软件测试的目的
软件测试指的是在规定的条件下对程序进行操作,以发现程序错误,衡量软件质量,并对其是否能满足设计要求进行评估的过程。其目的主要有以下几点:
1、发现被测对象与用户需求之间的差异,即缺陷。
2、通过测试活动发现并解决缺陷,增加人们对软件质量的信心。
3、通过测试活动了解被测对象的质量状况,为决策提供数据依据。
4、通过测试活动积累经验,预防缺陷出现,降低产品失败风险。
(5)历史上首套测试方案是根据什么扩展阅读:
软件测试的原则:
1、测试应该尽早进行,最好在需求阶段就开始介入,因为最严重的错误不外乎是系统不能满足用户的需求。
2、程序员应该避免检查自己的程序,软件测试应该由第三方来负责。
3、设计测试用例时应考虑到合法的输入和不合法的输入以及各种边界条件,特殊情况下还要制造极端状态和意外状态,如网络异常中断、电源断电等。
4、应该充分注意测试中的群集现象。
5、对错误结果要进行一个确认过程。一般由A测试出来的错误,一定要由B来确认。严重的错误可以召开评审会议进行讨论和分析,对测试结果要进行严格地确认,是否真的存在这个问题以及严重程度等。
6、制定严格的测试计划。一定要制定测试计划,并且要有指导性。测试时间安排尽量宽松,不要希望在极短的时间内完成一个高水平的测试。
7、妥善保存测试计划、测试用例、出错统计和最终分析报告,为维护提供方便。
参考资料来源:网络-软件测试
⑹ 软件测试一般都用到哪些工具
常用的软件测试工具一般是:QTP+LoadRunner+QC
软件测试中还需的工具如下:
功能测试工具:QTP(HP),WinRunner(MI),Robort(IBM),QARun(Compuware)
性能测试工具:LoadRunner(HP),WAS(MS),Robort(IBM)【必须下载相应的插件才支持性能方面的测试】,QALoad(Compuware)
测试管理工具:TestDirector/Quarlity Center【这两个工具一个横版一个竖版,功能完全一样】,Rational TestManager
缺陷跟踪工具:Bugzilla、Mantis
其他:Rational Purify、Rational PureCoverager
一般测试流程:
需求分析阶段:只要就是对业务的学习,分析需求点。
测试计划阶段:测试组长就要根据SOW开始编写《测试计划》,其中包括人员,软件硬件资源,测试点,集成顺序,进度安排和风险识别等内容。
测试设计阶段:测试方案一般由对需求很熟的高资深的测试工程师设计,测试方案要求根据《SRS》上的每个需求点设计出包括需求点简介,测试思路和详细测试方法三部分的方案。《测试方案》编写完成后也需要进行评审。
测试方案阶段:主要是对测试用例和规程的设计。测试用例是根据《测试方案》来编写的,通过《测试方案》阶段,测试人员对整个系统需求有了详细的理解。这时开始编写用例才能保证用例的可执行和对需求的覆盖。测试用例需要包括测试项,用例级别,预置条件,操作步骤和预期结果。其中操作步骤和预期结果需要编写详细和明确。测试用例应该覆盖测试方案,而测试方案又覆盖了测试需求点,这样才能保证客户需求不遗漏。同样,测试用例也需要评审。
测试执行阶段:执行测试用例,及时提交有质量的Bug和测试日报,测试报告等相关文档
⑺ 软件测试员主要工作是做什么
软件测试员的主要工作内容是根据测试计划和测试方案进行软件测试;能够针对软件需求开发测试模型,制定测试方案,安排测试计划,并对测试项目进行管理。
软件测试主要工作内容是验证(verification)和确认(validation)。
验证(verification)是保证软件正确地实现了一些特定功能的一系列活动, 即保证软件以正确的方式来做了这个事件。
确认(validation)是一系列的活动和过程,目的是想证实在一个给定的外部环境中软件的逻辑正确性。即保证软件做了你所期望的事情。
(7)历史上首套测试方案是根据什么扩展阅读:
软件测试的专业优势:
1、就业竞争小
人才供不应求让软件测试人员的就业竞争压力明显小于同类其它职业,有利于从业者的身心健康。
另外,由于软件测试在我国起步较晚,独立设置测试部门、对测试人员有强烈需求的多为独具慧眼的大中型IT企业。软件测试人才不需要在小企业积累经验就能获得知名企业的入门通行证,工作起点高于同类其它职业。
2、高薪
刚入行的软件测试人员,起步的月薪就在7000-15000元左右,平均薪资8000/月以上,随着工作经验的丰富以及能力的提升,这份薪水将一路看涨。
3、就业质量高
与其他IT职位相比,软件测试人员最大的优势就是发展方向太多了。由于工作的特殊性,测试人员不但需要对软件的质量进行检测,而且对于软件项目的立项、管理、售前、售后等领域都要涉及。
在此过程中,测试人员不仅提升了专业的软件测试技能,还能接触到各行各业,从而为自己的多元化发展奠定了基础。
4、无性别歧视
如果把软件开发领域比作“男子单打”,那么,软件测试领域就是“混合双打”。由于工作的特殊性,软件测试人员更要具有认真、耐心、细致、敏感等个性元素,而这在一定程度上与女性的个性气质相吻合。
据了解,很多IT企业中软件测试人员的比例更趋向男女平衡,甚至出现女性员工成主流的情况。
⑻ 软件测试方案根据什么写的
测试目标,测试范围,测试内容,测试使用的方法(黑盒,白盒,自动化等等),时间人员进度安排.
⑼ 系统测试方案是根据什么来写的
需求分析说明书和概要设计说明书