软件测试是指使用人工或者自动的手段来运行或测定某个软件产品系统的过程,其目的是在于检验是否满足规定的需求或者弄清预期的结果与实际结果的区别。本文主要描述软件测试的一些类型。
白盒测试是基于**的测试,测试人员通过阅读程序**或者通过使用开发工具中的单步调试来判断软件的质量,一般白盒测试由项目经理在程序员开发中来实现。白盒测试分为动态白盒测试和静态白盒测试。
利用眼睛,浏览**,凭借经验,找出**中的错误或者**中不符合书写规范的地方。比如,**规范中规定,函数必须为动宾结构。而黑盒测试发现一个函数定义如下:
function nameget(){
这是属于不符合开发规范的。
有这样一段**:
if ((i<0) &i>=0))
这段**交集为整个数轴,if语句没有必要。
i=0;while(i>100){
j=j+100;
t=j*pi;
在循环体内没有i的增加, 错误产生。
利用开发工具中的调式工具进行测试。比如一段**有4个分支,输入4组不同的测试数据使4组分支都可以走通而且结果必须正确。
if(i<0){
p1else{
p2在调试中输入i=-1,测试p1程序段通过; 再输入i=1, 测试p2程序段,这样的测试属于动态白盒测试的缺陷。白盒测试通常在单元测试的时候进行。
功能测试指测试软件各个功能模块是否正确,逻辑是否正确。对测试对象的功能测试应侧重于所有可直接追踪到用例或业务功能和业务规则的测试需求。这种测试的目标是核实数据的接受、处理和检索是否正确,以及业务规则的实施是否恰当。
此类测试基于黑盒技术,该技术通过图形用户界面 (gui)或者测试脚本与应用程序进行交互,并对交互的输出或结果进行分析,以此来核实应用程序及其内部进程。功能测试的主要参考为类似于功能说明书之类的文档。
ui测试指测试用户界面的风格是否满足客户要求,文字是否正确,页面美工是否好看,文字,**组合是否完美,背景是否美观,操作是否友好等等。
用户界面 (ui) 测试用于核实用户与软件之间的交互。ui 测试的目标是确保用户界面会通过测试对象的功能来为用户提供相应的访问或浏览功能。另外,ui 测试还可确保 ui 中的对象按照预期的方式运行,并符合公司或行业的标准。
包括用户友好性,人性化,易操作性测试。ui测试比较主观,与测试人员的喜好有关。
比如:页面基调颜色刺眼;文字**现错别字;页面显示范围超过屏幕范围等都属于ui测试中的缺陷。
性能测试主要测试软件测试的性能,包括负载测试,强度测试,容量测试,基准测试以及基准测试。
负载测试是一种性能测试指数据在超负荷环境中运行,程序是否能够承担。
在这种测试中,将使测试对象承担不同的工作量,以评测和评估测试对象在不同工作量条件下的性能行为,以及持续正常运行的能力。负载测试的目标是确定并确保系统在超出最大预期工作量的情况下仍能正常运行。此外,负载测试还要评估性能特征,例如,响应时间、事务处理速率和其他与时间相关的方面。
比如,用户并发量测试就是属于负载测试的用户,可以使用测试工具,模拟上百人客户同时访问,看系统响应时间,处理速度如何?
强度测试是一种性能测试,他在系统资源特别低的情况下软件系统运**况。这类测试往往可以书写系统要求的软硬件水平要求。主要测试对象为低cpu主频,低存储空间(内存或外存),低连接速度。
实施和执行此类测试的目的是找出因资源不足或资源争用而导致的错误。如果内存或磁盘空间不足,测试对象就可能会表现出一些在正常条件下并不明显的缺陷。而其他缺陷则可能由于争用共享资源(如数据库锁或网络带宽)而造成的。
强度测试还可用于确定测试对象能够处理的最大工作量。
比如:一个系统在内存366m下可以正常运行,但是降低到258m下不可以运行,告诉内存不足,这个系统对内存的要求就是366m。
容量测试指通过**往存储空间中插入一定数量的数据,看看相关程序是否能够正常运行。
容量测试使测试对象处理大量的数据,以确定是否达到了将使软件发生故障的极限。容量测试还将确定测试对象在给定时间内能够持续处理的最大负载或工作量。例如,通过编写**项存贮空间输入一定数量的记录,然后运行需要使用这个存储空间的程序,判断程序是否运行正常。
基准测试与已知现有的系统进行比较,主要检验是否与类似的产品具有竞争性的一种测试。
如果你要开发一套财务系统软件并且你已经获得用友财务系统的性能等数据,你可以测试你这套系统,看看哪些地方比用友财务系统好,哪些地方差?以便改进自己的系统,也可为产品广告提供数据。
软件竞争使用各种资源(数据纪录,内存等),看他与其他相关系统对资源的争夺能力。比如:一台机器上即安装您的财务系统,又安装用友财务系统。
当cpu占有率下降后,看看是否能够强过用友财务系统,而是自己的系统能够正常运行?
安全性和访问控制测试侧重于安全性的两个关键方面:
应用程序级别的安全性,包括对数据或业务功能的访问。
系统级别的安全性,包括对系统的登录或远程访问。
可确保:在预期的安全性情况下,主角只能访问特定的功能或用例,或者只能访问有限的数据。例如,可能会允许所有人输入数据,创建新账户,但只有管理员才能删除这些数据或账户。
如果具有数据级别的安全性,测试就可确保“用户类型一”能够看到所有客户消息(包括财务数据),而“用户二”只能看见同一客户的统计数据。
比如不通过登入页面,直接进入系统?
可确保只有具备系统访问权限的用户才能访问应用程序,而且只能通过相应的网关来访问。
比如输入管理员账户,检查其密码是否容易猜取,或者可以从数据库中获得?
故障转移和恢复测试指当主机软硬件发生灾难时候,备份机器是否能够正常启动,使系统是否可以正常运行,这对于电信,银行等领域的软件是十分重要的。
故障转移和恢复测试可确保测试对象能成功完成故障转移,并能从导致意外数据损失或数据完整性破坏的各种硬件、软件或网络故障中恢复。
故障转移测试可确保:对于必须持续运行的系统,一旦发生故障,备用系统就将不失时机地“顶替”发生故障的系统,以避免丢失任何数据或事务。
恢复测试是一种对抗性的测试过程。在这种测试中,将把应用程序或系统置于极端的条件下(或者是模拟的极端条件下),以产生故障(例如设备输入/输出 (i/o) 故障或无效的数据库指针和关健字)。然后调用恢复进程并监测和检查应用程序和系统,核实应用程序或系统和数据已得到了正确的恢复。
一定要注意主备定时备份。
比如电信系统,突然主机程序发生死机,备份机器是否能够启动,使系统能够正常运行,从而不影响用户打**?
又叫配置测试。兼容性测试核实测试对象在不同的软件和硬件配置中的运**况。在大多数生产环境中,客户机工作站、网络连接和数据库服务器的具体硬件规格会有所不同。
客户机工作站可能会安装不同的软件例如,应用程序、驱动程序等而且在任何时候,都可能运行许多不同的软件组合,从而占用不同的资源。(如浏览器版本,操作系统版本等)
下面列出主要配置测试。
测试软件在不同产商的浏览器下是否能够正确显示与运行;
比如测试ie,natscape浏览器下是否可以运行这套软件?
测试软件在不同操作系统下是否能够正确显示与运行;
比如测试windows98,windows 2000,windows xp,linu, unix下是否可以运行这套软件?
测试与硬件密切相关的软件产品与其他硬件产品的兼容性,比如该软件是少在并口设备中的,测试同时使用其他并口设备,系统是否可以正确使用。
比如在inter,舒龙cpu芯片下系统是否能够正常运行?
这样的测试必须建立测试实验室,在各种环境下进行测试。
安装测试有两个目的。第一个目的是确保该软件在正常情况和异常情况的不同条件下: 例如,进行首次安装、升级、完整的或自定义的安装_都能进行安装。
异常情况包括磁盘空间不足、缺少目录创建权限等。第二个目的是核实软件在安装后可立即正常运行。这通常是指运行大量为功能测试制定的测试。
安装测试包括测试安装**以及安装手册。安装手册提供如何进行安装,安装**提供安装一些程序能够运行的基础数据。
又称本地化测试,是指为各个地方开发产品的测试,如英文版,中文版等等,包括程序是否能够正常运行,界面是否符合当地习俗,快捷键是否正常起作用等等,特别测试在a语言环境下运行b语言软件(比如在英文win98下试图运行中文版的程序),出现现象是否正常。
本地化测试还要考虑:
当语言从a翻译到b,字符长度变化是否影响页面效果。比如中文软件中有个按键叫“看广告”,翻译到英文版本中为 “view advertisement”可能影响页面的美观程度。
要考虑同一单词在各个国家的不同意思,比如football在英文中为足球,而美国人使用中可能理解为美式橄榄球。
要考虑各个国家的民族习惯,比如龙个美国中被理解**的象征,但翻译到中国,中国人认为为吉祥的象征。
测试在不同分辨率下,界面的美观程度,分为800*600,1024*768,1152*864,1280*768,1280*1024,1200*1600大小字体下测试。一个好的软件要有一个极佳的分辨率,而在其他分辨率下也都能可以运行。
主要在产品发布前对一些附带产品,比如说明书,广告稿等进行测试。
主要为语言检查,功能检查,**检查。
语言检查:检查说明书语言是否正确,用词是否易于理解;
功能检查:功能是否描述完全,或者描述了并没有的功能等;
**检查::检查**是否正确。
主要测试产品中的附带的宣传材料中的语言,描述功能,**。
帮助文件是否正确,易懂,是否人性化。最好能够提供检索功能。
产品出公司前的广告材料文字,功能,**,人性化的检查。
文档审核测试目前越来越引起人们的重视,软件质量不是检查出来的,而是融进软件开发中来。前置软件测试发越来越受到重视。请看一个资料:
据美国软件质量安全中心2023年对美国一百家知名的软件厂商统计,得出这样一个结论:软件缺陷在开发前期发现比在开发后期发现资金,人力上节约90%;软件缺陷在推向市场前发现比在推出后发现资金,人力上节约90%。所以说软件的缺陷应该尽早发现。
不是所有的软件都要进行任何类型的软件测试的,可以根据产品的具体情况进行组装测试不同的类型。
软件测试方案
xx项目。测试方案。版本修订记录。文档使用对象。审批人员。本文档包含针对xx控股集团 开发的xx项目的全面的测试方案。本文档是完成xx项目测试的指导性文件。本文档给出了对测试需求 测试环境 测试过程及测试结果的总体要求,这也是本测试项目中其他文档编写及结果评价的基础。本次测试是针对xx项目项目进行的...
软件测试方案
xx项目。测试方案。版本修订记录。文档使用对象。审批人员。本文档包含针对xx控股集团 开发的xx项目的全面的测试方案。本文档是完成xx项目测试的指导性文件。本文档给出了对测试需求 测试环境 测试过程及测试结果的总体要求,这也是本测试项目中其他文档编写及结果评价的基础。本次测试是针对xx项目项目进行的...
软件测试方案
xx项目。测试方案。版本修订记录。文档使用对象。审批人员。本文档包含针对xx控股集团 开发的xx项目的全面的测试方案。本文档是完成xx项目测试的指导性文件。本文档给出了对测试需求 测试环境 测试过程及测试结果的总体要求,这也是本测试项目中其他文档编写及结果评价的基础。本次测试是针对xx项目项目进行的...