A. 怎么对软件功能测试
找经理要详细设计说明书,没有就找开发问功能。
啥都不会呢测毛啊。功能先整明白了。然后划分模块,拆分功能点,自己设计用例,自己执行。有时间再加上负面测试。有能力再搞搞QTP、LR。基本就这些了。
至于你说的怎么划分功能要看公司要求,和项目的紧急程度,理论上是颗粒越小越好。一个组件一个用例也可以。没事就找点测试方面的书看看吧
B. 软件测试的测试流程是怎样的
需求:阅读需求,理解需求,与客户、开发、架构多方交流,深入了解需求。--testing team
2.测试计划: 根据需求估算测试所需资源(人力、设备等)、所需时间、功能点划分、如何合理分配安排资源等。---testing leader or testing manager
3.用例设计:根据测试计划、任务分配、功能点划分,设计合理的测试用例。---testing leader, senior tester
4.执行测试:根据测试用例的详细步骤,执行测试用例。--every tester(主要是初级测试人员)
5.执行结果记录和bug记录:对每个case记录测试的结果,有bug的在测试管理工具中编写bug记录。--every tester(主要是初级测试人员)
6.defect tracking:追踪leader分配给你追踪的bug.直到 bug fixed。--every tester
7.测试报告:通过不断测试、追踪,直到被测软件达到测试需求要求,并没有重大bug.
8.用户体验、软件发布等……
C. 如何测试app软件测试在手机中的使用情况
手机app测试主要有以下:
1.安全测试
1)软件权限
-扣费风险:包括发送短信、拨打电话、连接网络等 -隐私泄露风险:包括访问手机信息、访问联系人信息等 -新增风险项
2)开发者官方权限列表信息比对分析 2.安装、运行、卸载测试
验证App是否能正确安装、运行、卸载,以及操作过程和操作前后对系统资源的使用情况,主要包括:
1)检测软件是否能正确安装、运行、卸载; 2)安装、卸载、更新错误报告; 3)其他辅助信息: -位置和文件夹是否合理; -组件是否正确注册或删除;
-评估操作前后,CPU、Memory(内存占用)、Storage(磁盘占用)等系统资源的使用情况。 3.UI测试
测试用户界面(如菜单、对话框、窗口和其它可视控件)布局、风格是否满足客户要求,文字是否正确,页面是否美观,文字,图片组合是否完美,操作是否友好等。
UI测试的目标是确保用户界面会通过测试对象的功能来为用户提供相应的访问或浏览功能。确保用户界面符合公司或行业的标准。包括用户友好性、人性化、易操作性测试。 4.功能测试
根据软件说明或用户需求验证App的各个功能实现,采用如下方法实现并评估功能测试过程:
1)采用时间、地点、对象、行为和背景五元素或业务分析等方法分析、提炼App的用户使用场景,对比说明或需求,整理出内在、外在及非功能直接相关的需求,构建测试点,并明确测试标准(若用户需求中无明确标准遵循,则需要参考行业或相关国际标准或规则)。 2)根据被测功能点的特性列举出相应类型的测试用例对其进行覆盖,如:涉及输入的地方需要考虑等价、边界、负面、异常或非法、场景回滚、关联测试等测试类型对其进行覆盖。 3)在测试实现的各个阶段跟踪测试实现与需求输入的覆盖情况,及时修正业务或需求理解错误。 5.性能测试
评估App的时间和空间特性
1)极限测试:在各种边界压力情况下(如电池、存储、网速等),验证App是否能正确响应。
2)响应能力测试:测试App中的各类操作是否满足用户响应时间要求 3)压力测试:反复/长期操作下,系统资源是否占用异常; 4)性能评估:评估典型用户应用场景下,系统资源的使用情况。
5)Benchmark测试(基线测试):与竞争产品的Benchmarking,产品演变对比测试等。 6.中断测试
针对智能终端应用的服务等级划分方式及实时特性所提出的测试方法,如:App在前/后台运行状态时与来电、文件下载、音乐收听等关键运用的交互情况测试等。 7.兼容测试
主要测试内部和外部兼容性,包括:
与本地及主流App是否兼容; 检验在各种网络连接下(WiFi、GSM、GPRS、EDGE、WCDMA、CDMA1x、CDMA2000、HSPDA等),App的数据和运用是否正确;
与各种设备是否兼容(若有跨系统支持则需要检验是否在各系统下,各种行为是否一致)。
8.安全测试
安全测试显得尤为重要,粗心、不谨慎的数据存储或传输方式使得非法、恶意目的有可乘之机。
智能终端安全涉及各信息交互、存储接点,借鉴于网络传输和相关安全测试经验,App安全测试大概划分为以下几类:
1)从数据的本地存储到数据的传输、处理以及远程访问等各个环节,基于相应的安全标准/行业标准评估App的安全特性;
2)借鉴在Web App和网络安全测试的一些成功经验在智能终端App测试中进行裁减或适配;
3)检测App的用户授权级别,数据泄漏,非法授权访问等;
4)对App的输入有效性校验、认证、授权、敏感数据存储、数据加密等方面进行检测,以期发现潜在的安全问题;
5)基于各种通信协议或相应的行业安全标准检视App是否满足相应的要求
D. 如何进行软件测试
1、转分析阶段
需求分析人员完成《需求规格说明书》之后,测试人员参加《需求规格说明书》的评审
2、转设计阶段
设计人员完成《界面原型规范》之后,测试人员参加《界面原型规范》的评审
3、计划阶段
测试组长编写《系统测试计划》、《项目进度计划》,测试人员参加评审,评审之后,由组长召开项目开工会
4、设计阶段
测试工程师编写《系统测试方案》,并由测试工程师组织相关人员对《系统测试方案》评审
5、实现阶段
测试工程师编写《系统测试用例》,并由测试工程师组织相关人员对《系统测试用例》评审
6、预测试阶段
代码写完之后,由开发工程师以《系统演示》的方式进行预测试,由开发工程师组织相关人员参加系统演示会议
7、全面测试阶段
系统演示通过的模块,由测试工程师根据测试方案、用例执行全面测试,提交缺陷
8、发布阶段
全面测试通过之后,由发布人员将产品打包发给现场实施人员,进行现场的环境搭建组装
9、回归测试阶段
实施人员发现问题的,将问题陈诉打包回公司,由配置工程师统一进行分配给开发工程师进行修改,修改完成后,再由测试工程师进行回归测试,回归测试之后,由配置工程师将增量打包发回现场。
E. 如何选择软件测试方法
1、按是否查看程序内部结构分为:
(1)黑盒测试(black-box testing):只关心输入和输出的结果
(2)白盒测试(white-box testing):去研究里面的源代码和程序结构
2、按是否运行程序分为:
(1)静态测试(static testing):是指不实际运行被测软件,而只是静态地检查程序代码、界面或文档可能存在的错误的过程。
静态测试包括:
对于代码测试,主要是测试代码是否符合相应的标准和规范。
对于界面测试,主要测试软件的实际界面与需求中的说明是否相符。
对于文档测试,主要测试用户手册和需求说明是否真正符合用户的实际需求。
(5)动态测试(dynamic testing),是指实际运行被测程序,输入相应的测试数据,检查输出结果和预期结果是否相符的过程
3、按阶段划分:
(1)单元测试(unit testing),是指对软件中的最小可测试单元进行检查和验证。
桩模块(stud)是指模拟被测模块所调用的模块,驱动模块(driver)是指模拟被测模块的上级模块,驱动模块用来接收测试数据,启动被测模块并输出结果。
(2)集成测试(integration testing),是单元测试的下一阶段,是指将通过测试的单元模块组装成系统或子系统,再进行测试,重点测试不同模块的接口部门。
集成测试就是用来检查各个单元模块结合到一起能否协同配合,正常运行。
(3)系统测试(system testing),指的是将整个软件系统看做一个整体进行测试,包括对功能、性能,以及软件所运行的软硬件环境进行测试。
系统测试的主要依据是《系统需求规格说明书》文档。
(4)验收测试(acceptance testing),指的是在系统测试的后期,以用户测试为主,或有测试人员等质量保障人员共同参与的测试,它也是软件正式交给用户使用的最后一道工序。
验收测试又分为a测试和beta测试,其中a测试指的是由用户、 测试人员、开发人员等共同参与的内部测试,而beta测试指的是内测后的公测,即完全交给最终用户测试。
4、黑盒测试分为功能测试和性能测试:
1)功能测试(function testing),是黑盒测试的一方面,它检查实际软件的功能是否符合用户的需求。
包括逻辑功能测试(logic function testing)
界面测试(UI testing)UI=User Interface
易用性测试(usability testing):是指从软件使用的合理性和方便性等角度对软件系统进行检查,来发现软件中不方便用户使用的地方。
兼容性测试(compatibility testing):包括硬件兼容性测试和软件兼容性测试
2)性能测试(performance testing)
软件的性能主要有时间性能和空间性能两种
时间性能:主要指软件的一个具体事务的响应时间(respond time)。
空间性能:主要指软件运行时所消耗的系统资源。
软件性能测试分为:
一般性能测试:指的是让被测系统在正常的软硬件环境下运行,不向其施加任何压力的性能测试。
稳定性测试也叫可靠性测试(reliability testing):是指连续运行被测系统检查系统运行时的稳定程度。
负载测试(load testing):是指让被测系统在其能忍受的压力的极限范围之内连续运行,来测试系统的稳定性。
压力测试(stress testing):是指持续不断的给被测系统增加压力,直到将被测系统压垮为止,用来测试系统所能承受的最大压力。(Validate the system or software can allowed the biggest stress.)
F. 如何进行软件功能测试
我是做软件测试工作的,仁者见仁智者见智,水平有限,就你提出的问题作一个简单的回答吧,一是期望对你的问题有所帮助,二也是对我自己的提高。
1、我对你的第一个问题表示质疑,你认为测试是保证软件质量吗?能保证吗?
测试只能提高软件质量,做不到保证,bug是永远存在的,测试工作可以让这
量减少、降低严重问题的存在;软件过程才可能保证它的质量,不是软件测
试,所以这一点我要明确出来。一个软件的质量好坏不依赖于测试者,测试
再高明,软件设计本身的水平面要品质不高,巧妇也有无米之炊的无奈。
2、测试的原本目标就是发现缺陷,挑毛病,工作性质和开发人员相反,但目标
是一致的,都是为了使软件更完美、更稳定。
3、盖房子的时候,先打地基,地基如果有毛病(如不够深、不平),那以后房
盖起来了住个几年,你会发现楼上的梁会发裂,渗水,然后越来越让人担
忧。这时你要修复怎么办,再怎么补都不放心,因为地基有缺陷啊!这个道
和第三个问题是一模一样的,修复的代价太大太大了!在测试中有一个规
则,问题越早解决代价越小,单元测试发现的问题解决只要1块钱,等到集成
测试再解决,要10块钱,你认为比例有多大?需求分析系统设计是源头,重
中之重,这个比例我认为要在上面我举例中增加80%,就是说它会导致你在编
码阶段多付出8块钱。前期可能不觉得,越到后期将发现非常头痛,这也是我
的经验之谈,没有太多的科学性哦。
4、对于测试员,首先是效率减低;对于项目而言,成本增加了。瞧病就错了
诊,影响大么?将导致后面的百分之八十的事情白做了,百分之二在长远
目标中有后期帮助,同时证明另外百分之八十步入歧途。这就要在测试设计
的时候要仔细全面,但是这种事情多少都避免不了,早一点发现并改变,也
是很重要的,另外多布置一些小结会议,有利到测试的工作方向和目标。
usfo,希望我的回答对你稍有帮助哦。
G. 怎么软件测试啊
软件测试方法
软件测试的基本方法
单元测试的基本方法
综合测试的基本方法
确认测试的基本方法
系统测试的基本方法
软件测试的基本方法
软件测试的方法和技术是多种多样的。
对于软件测试技术,可以从不同的角度加以分类:
从是否需要执行被测软件的角度,可分为静态测试和动态测试。
从测试是否针对系统的内部结构和具体实现算法的角度来看,可分为白盒测试和黑盒测试;
1、黑盒测试
黑盒测试也称功能测试或数据驱动测试,它是在已知产品所应具有的功能,通过测试来检测每个功能是否都能正常使用,在测试时,把程序看作一个不能打开的黑盆子,在完全不考虑程序内部结构和内部特性的情况下,测试者在程序接口进行测试,它只检查程序功能是否按照需求规格说明书的规定正常使用,程序是否能适当地接收输入数锯而产生正确的输出信息,并且保持外部信息(如数据库或文件)的完整性。黑盒测试方法主要有等价类划分、边值分析、因果图、错误推测等,主要用于软件确认测试。 “黑盒”法着眼于程序外部结构、不考虑内部逻辑结构、针对软件界面和软件功能进行测试。“黑盒”法是穷举输入测试,只有把所有可能的输入都作为测试情况使用,才能以这种方法查出程序中所有的错误。实际上测试情况有无穷多个,人们不仅要测试所有合法的输入,而且还要对那些不合法但是可能的输入进行测试。
2、白盒测试
白盒测试也称结构测试或逻辑驱动测试,它是知道产品内部工作过程,可通过测试来检测产品内部动作是否按照规格说明书的规定正常进行,按照程序内部的结构测试程序,检验程序中的每条通路是否都有能按预定要求正确工作,而不顾它的功能,白盒测试的主要方法有逻辑驱动、基路测试等,主要用于软件验证。
“白盒”法全面了解程序内部逻辑结构、对所有逻辑路径进行测试。“白盒”法是穷举路径测试。在使用这一方案时,测试者必须检查程序的内部结构,从检查程序的逻辑着手,得出测试数据。贯穿程序的独立路径数是天文数字。但即使每条路径都测试了仍然可能有错误。第一,穷举路径测试决不能查出程序违反了设计规范,即程序本身是个错误的程序。第二,穷举路径测试不可能查出程序中因遗漏路径而出错。第三,穷举路径测试可能发现不了一些与数据相关的错误。
3.ALAC(Act-like-a-customer)测试
ALAC测试是一种基于客户使用产品的知识开发出来的测试方法。ALAC测试是基于复杂的软件产品有许多错误的原则。最大的受益者是用户,缺陷查找和改正将针对哪些客户最容易遇到的错误。
单元测试的基本方法
单元测试的对象是软件设计的最小单位模块。单元测试的依据是详细设描述,单元测试应对模块内所有重要的控制路径设计测试用例,以便发现模块内部的错误。单元测试多采用白盒测试技术,系统内多个模块可以并行地进行测试。
单元测试任务
单元测试任务包括:1 模块接口测试;2 模块局部数据结构测试;3 模块边界条件测试;4 模块中所有独立执行通路测试;5 模块的各条错误处理通路测试。
模块接口测试是单元测试的基础。只有在数据能正确流入、流出模块的前提下,其他测试才有意义。测试接口正确与否应该考虑下列因素:
1 输入的实际参数与形式参数的个数是否相同;
2 输入的实际参数与形式参数的属性是否匹配;
3 输入的实际参数与形式参数的量纲是否一致;
4 调用其他模块时所给实际参数的个数是否与被调模块的形参个数相同;
5 调用其他模块时所给实际参数的属性是否与被调模块的形参属性匹配;
6调用其他模块时所给实际参数的量纲是否与被调模块的形参量纲一致;
7 调用预定义函数时所用参数的个数、属性和次序是否正确;
8 是否存在与当前入口点无关的参数引用;
9 是否修改了只读型参数;
10 对全程变量的定义各模块是否一致;
11是否把某些约束作为参数传递。
如果模块内包括外部输入输出,还应该考虑下列因素:
1 文件属性是否正确;
2 OPEN/CLOSE语句是否正确;
3 格式说明与输入输出语句是否匹配;
4缓冲区大小与记录长度是否匹配;
5文件使用前是否已经打开;
6是否处理了文件尾;
7是否处理了输入/输出错误;
8输出信息中是否有文字性错误;
检查局部数据结构是为了保证临时存储在模块内的数据在程序执行过程中完整、正确。局部数据结构往往是错误的根源,应仔细设计测试用例,力求发现下面几类错误:
1 不合适或不相容的类型说明;
2变量无初值;
3变量初始化或省缺值有错;
4不正确的变量名(拼错或不正确地截断);
5出现上溢、下溢和地址异常。
除了局部数据结构外,如果可能,单元测试时还应该查清全局数据(例如FORTRAN的公用区)对模块的影响。
在模块中应对每一条独立执行路径进行测试,单元测试的基本任务是保证模块中每条语句至少执行一次。此时设计测试用例是为了发现因错误计算、不正确的比较和不适当的控制流造成的错误。此时基本路径测试和循环测试是最常用且最有效的测试技术。计算中常见的错误包括:
1 误解或用错了算符优先级;
2混合类型运算;
3变量初值错;
4精度不够;
5表达式符号错。
比较判断与控制流常常紧密相关,测试用例还应致力于发现下列错误:
1不同数据类型的对象之间进行比较;
2错误地使用逻辑运算符或优先级;
3因计算机表示的局限性,期望理论上相等而实际上不相等的两个量相等;
4比较运算或变量出错;
5循环终止条件或不可能出现;
6迭代发散时不能退出;
7错误地修改了循环变量。
一个好的设计应能预见各种出错条件,并预设各种出错处理通路,出错处理通路同样需要认真测试,测试应着重检查下列问题:
1输出的出错信息难以理解;
2记录的错误与实际遇到的错误不相符;
3在程序自定义的出错处理段运行之前,系统已介入;
4异常处理不当;
5错误陈述中未能提供足够的定位出错信息。
边界条件测试是单元测试中最后,也是最重要的一项任务。众的周知,软件经常在边界上失效,采用边界值分析技术,针对边界值及其左、右设计测试用例,很有可能发现新的错误。
单元测试过程
一般认为单元测试应紧接在编码之后,当源程序编制完成并通过复审和编译检查,便可开始单元测试。测试用例的设计应与复审工作相结合,根据设计信息选取测试数据,将增大发现上述各类错误的可能性。在确定测试用例的同时,应给出期望结果。
应为测试模块开发一个驱动模块(driver)和(或)若干个桩模块(stub),下图显示了一般单元测试的环境。驱动模块在大多数场合称为“主程序”,它接收测试数据并将这些数据传递到被测试模块,被测试模块被调用后,“主程序”打印“进入-退出”消息。
驱动模块和桩模块是测试使用的软件,而不是软件产品的组成部分,但它需要一定的开发费用。若驱动和桩模块比较简单,实际开销相对低些。遗憾的是,仅用简单的驱动模块和桩模块不能完成某些模块的测试任务,这些模块的单元测试只能采用下面讨论的综合测试方法。
提高模块的内聚度可简化单元测试,如果每个模块只能完成一个,所需测试用例数目将显着减少,模块中的错误也更容易发现。
H. 怎样做好软件测试
作为一个软件测试工程师,首先,你要建立自己的测试思维,这个很重要,因为测试思维相当于你的软件的世界观,这也就是为什么,个人不支持从 开发转测试的原因,因为对于开发而言,他们是目标型的世界观,即需求要完成什么我去完成,如果你在开发中待的时间太长,容易习惯这样目标型世界观,而测试更多关注的是多方面的,有时候,就是一些在开发所谓的不可能、无所谓的东西最后造成软件的失败,而如何建立自己的软件世界观,那就要去通过测试的方法论的理解,很多人喜欢把黑盒测试方法论、白盒测试方法论,分得很清楚,其实两者是相通的,看懂这些东西很快的,但是悟透,这个过程会漫长。
接下来 我们讲讲你需要作为一个初级功能工程师所需要基本素质吧
1、软件测试的基本方法(边界值、等价类、错误分类、流程分析等等黑盒、白盒测试方法要有了解,并且掌握)这个不难,但请务必牢记在心中,它是你去建立自己世界观的基础,所有的测试逃不出这些方法
2、会写的基础的测试文档(测试用例、缺陷报告等)
3、会看开发文档(需求说明书、操作手册)
4、知道软件工程中,测试所需要做的事情,了解性能测试、安全测试等
当你有了基础,同时也有了自己的世界观,祝贺你已经入门了,这个时候,我建议你可以去了解不同软件开发不同环节人所作的事情,不单单是开发,需求、设计、运维等等,因为这样你会知道什么是体系、规范,为你以后的发展有着很好的帮助,这也是测试相对于开发优势的地方,开发更关注的是点,而测试要关注的是面,所以对于测试而言,除了准确的抓住细节的同时,大局观要好,否则做不好测试。
最后才是细节技术就是所谓的白盒测试、性能测试、自动化、安全等等,这些其实对测试而言反而是小节,技术永远不会阻碍你前行的脚步,反而思维,这个你可以根据自己喜好去发展,没有固定模式
顺便说一句,别看不起基础的功能测试,它没外人看得那么简单,因为如果你连测试用例都不会设计就别去说做性能测试、自动化测试、安全测试等等,要做一好的功能测试工程师,写的一手好用例(你的用例是个识字人都能执行、并且用例有效的系统覆盖率也是很高的)、好缺陷(是个识字的人都能理解你说的是问题,并且抓住重点),很难的,真心不是普通人能做好的,要去花心思琢磨的。
I. 什么是软件测试,软件怎么测试
软件测试定义是:为了发现程序中的错误而执行程序的过程 (这个行业现在比较热门。而且好的测试员收入可观。)
它是帮助识别开发完成(中间或最终的版本)的计算机软件(整体或部分)的正确度(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.系统测试
J. 软件如何做性能测试
目前大部分性能测试工具都是基于web的,如果要测试exe执行软件的性能,需要自己制定测试方案,并选择何时的性能测试工具。