软件测试的方法一共有几种
它与被认为是不间断操作的容错技术有所不同。
HA系统是目前企业防止核心计算机系统因故障停机的最有效手段。
高可用性(HA)的功能 1、软件故障监测与排除 2、备份和数据保护 3、管理站能够监视各站点的运行情况,能随时或定时报告系统运行状况,故障能及时报告和告警,并有必要的控制手段 4、实现错误隔离以及主、备份服务器间的服务切换 HA的工作方式:HA有主从方式和双工方式两种工作模式 高可用性与容错技术有什么区别? 容错(FT)技术一般利用冗余硬件交叉检测操作结果。
当发现异常时,故障部件会被隔离开而不影响用户的操作。
高可用性方案则利用更少的冗余部件同时由软件检测故障,一旦故障发生立即隔离损坏部件,通过提供故障恢复实现最大化系统和应用的可用性。
容错技术随着处理器速度的加快和价格的下跌而越来越多地转移到软件中。
未来容错技术将完全在软件环境下完成,那时它和高可用性技术之间的差别也就随之消失了。
中国的软件测试主要是用黑盒测试还是白盒测试啊?
http://baike.baidu.com/view/51274.htm?fr=ala0_1 http://baike.baidu.com/view/51297.htm?fr=ala0_1 黑盒测试与白盒测试区别 黑盒测试 黑盒测试也称功能测试或数据驱动测试,它是在已知产品所应具有的功能,通过测试来检测每个功能是否都能正常使用,在测试时,把程序看作一个不能打开的黑盒子,在完全不考虑程序内部结构和内部特性的情况下,测试者在程序接口进行测试,它只检查程序功能是否按照需求规格说明书的规定正常使用,程序是否能适当地接收输入数锯而产生正确的输出信息,并且保持外部信息(如数据库或文件)的完整性。
黑盒测试方法主要有等价类划分、边值分析、因—果图、错误推测等,主要用于软件确认测试。
“黑盒”法着眼于程序外部结构、不考虑内部逻辑结构、针对软件界面和软件功能进行测试。
“黑盒”法是穷举输入测试,只有把所有可能的输入都作为测试情况使用,才能以这种方法查出程序中所有的错误。
实际上测试情况有无穷多个,人们不仅要测试所有合法的输入,而且还要对那些不合法但是可能的输入进行测试。
白盒测试 白盒测试也称结构测试或逻辑驱动测试,它是知道产品内部工作过程,可通过测试来检测产品内部动作是否按照规格说明书的规定正常进行,按照程序内部的结构测试程序,检验程序中的每条通路是否都有能按预定要求正确工作,而不顾它的功能,白盒测试的主要方法有逻辑驱动、基路测试等,主要用于软件验证。
“白盒”法全面了解程序内部逻辑结构、对所有逻辑路径进行测试。
“白盒”法是穷举路径测试。
在使用这一方案时,测试者必须检查程序的内部结构,从检查程序的逻辑着手,得出测试数据。
贯穿程序的独立路径数是天文数字。
但即使每条路径都测试了仍然可能有错误。
第一,穷举路径测试决不能查出程序违反了设计规范,即程序本身是个错误的程序。
第二,穷举路径测试不可能查出程序中因遗漏路径而出错。
第三,穷举路径测试可能发现不了一些与数据相关的错误。
软件人员使用白盒测试方法,主要想对程序模块进行如下的检查: – 对程序模块的所有独立的执行路径至少测试一次; – 对所有的逻辑判定,取 “ 真 ” 与取 “ 假 ” 的两种情况都至少测试一次; – 在循环的边界和运行界限内执行循环体; – 测试内部数据结构的有效性,等。
具体包含的逻辑覆盖有: – 语句覆盖 – 判定覆盖 – 条件覆盖 – 判定-条件覆盖 – 条件组合覆盖 – 路径覆盖。
白盒测试技术 (White Box Testing) : 深入到代码一级的测试,使用这种技术发现问题最早,效果也是最好的。
该技术主要的特征是测试对象进入了代码内部,根据开发人员对代码和对程序的熟悉程度,对有需要的部分进行在软件编码阶段,开发人员根据自己对代码的理解和接触所进行的软件测试叫做白盒测试。
这一阶段测试以软件开发人员为主,在 JAVA 平台使用 Xunit 系列工具进行测试, Xunit 测试工具是类一级的测试工具对每一个类和该类的方法进行测试。
黑盒测试技术( Black Box Testing ):黑盒测试的内容主要有以下几个方面,但是主要还是功能部分。
主要是覆盖全部的功能,可以结合兼容,性能测试等方面进行,根据软件需求,设计文档,模拟客户场景随系统进行实际的测试,这种测试技术是使用最多的测试技术涵盖了测试的方方面面,可以考虑以下方面 c正确性 (Correctness) :计算结果,命名等方面。
d可用性 (Usability) :是否可以满足软件的需求说明。
e边界条件 (Boundary Condition) :输入部分的边界值,就是使用一般书中说的等价类划分,试试最大最小和非法数据等等。
f性能 (Performance) : 正常使用的时间内系统完成一个任务需要的时间,多人同时使用的时候响应时间在可以接受范围内。
J2EE 技术实现的系统在性能方面更是需要照顾的,一般原则是 3 秒以下接受, 3-5 秒可以接受, 5 秒以上就影响易用性了。
如果在测试过程中发现性能问题,修复起来是非常艰难的,因为这常常意味着程序的算法不好,结构不好,或者设计有问题。
因此在产品开发的开始阶段,就要考虑到软件的性能问题 g压力测试 (Stress) : 多用户情况可以考虑使用压力测试工具,建议将压力和性能测试结合起来进行。
如果有负载平衡的话还要在服务器端打开监测工具 , 查看服务器 CPU 使用率,内存占用情况,如果有必要可以模拟大量数据输入,对硬盘的影响等等信息。
如果有必要的话必须进行性能优化 ( 软硬件都可以 ) 。
这里的压力测试针对的是某几项功能。
h错误恢复 (Error Recovery) :错误处理,页面数据验证,包括突然间断电,输入脏数据等。
i安全性测试 (Security) :这个领域正在研究中,防火墙、补丁包、杀毒软件等的就不必说了,不过可以考虑。
破坏性测试时任意看了一些资料后得知 , 这里面涉及到的知识、内容可以写本书了 , 不是一两句可以说清的,特别是一些商务网站,或者跟钱有关,或者和公司秘密有关的 web 更是需要这方面的测试,在外国有一种专门干这一行的人叫安全顾问,可以审核代码,提出安全建议,出现紧急事件时的处理办法等,在国内没有听说哪里有专门搞安全技术测试的内容。
...
如何进行可用性测试和用户研究
可用性测试是一种操作性较强的迭代设计方法。
关于迭代设计,还有一种说法叫“MVP"(Minimum Viable Product,最低可行产品),即快速推出产品,后续不断改进。
这能有效地降低产品研发周期,快速占领市场,快速获得客户反馈。
很多人对设计的误解,认为设计师都是些不食人间烟火,深夜案头苦思冥想闭门几个月最终憋出来一个惊世设计方案,而当灵感枯竭时则颓废懒散无所事事的人,认为设计依赖于捉摸不定的灵感而无法进行项目时间管控。
这种观点更多地认为设计就是临门一脚的结果。
事实上,假如脱离了中场组织和调整,缺少了必要的控球倒脚,临门一脚往往无果而终。
设计更多是过程,沟通过程。
可用性测试提供了这样一种简单直接的沟通方式。
通过这种方式获得用户反馈,并以此为设计依据迅速调整产品功能乃至产品方向。
如能秉持这种设计即沟通的理念,自然不会将可用性测试仅仅看做是一种无奈之选。
小到一个图标的辨识,页面导航,功能使用,大到某项业务的办理,都可以拿来做可用性测试。
测试对象的选取也没有过多要求,任何不相关的同事,朋友,甚至路人都可以被请来参加你的可用性测试。
除了专业度很高的比如业务处理等,一般性的操作对是否具有真正用户资质的要求并不高。
原因在于,可用性测试最大的作用是发现明显的可用性问题(不要怀疑设计师的水平,有太多设计失败案例是源于看起来简单愚蠢之极的错误),而这些问题多数跟专业无关,只跟常识有关。
具体操作也很简单,无需拘泥于测试地点,准备材料,等等,一张纸一枝笔足够矣。
这里操作关键的点在, 1. 场景代入,2. 观察和倾听。
场景代入是指让被试者知道大概的背景,比如这个软件功能是做什么的,谁会是使用者等,但不告诉具体如何操作(有点小白鼠的意思)。
观察,靠的不仅仅是眼睛,而是心。
只有清楚自己要借助测试得到什么,才能不错过转瞬即逝的细节。
这要求主试者本人对设计有较深的理解。
其他的工作则是为了确保可用性测试顺利进行。
比如前期需要邀请,需要准备任务清单,提问清单,需要记录的设备工具,还有一点小意思。
但真正影响可用性测试质量的只取决于主试者自身的经验和水平。
链接:http://www.zhihu.com/question/20418124/answer/25583970来源:知乎
软件测试基本理论?
可以参考这个软件测试的定义软件的生命周期软件测试需求分析软件测试用例编写bug管理系统禅道的使用软件测试的兼容性测试app测试重点和常见测试问题
软件质量与软件质量保证之间的关系?(不是软件测试与软件质量的关...
概括地说,软件质量就是“软件与明确的和隐含的定义的需求相一致的程度”。
具体地说,软件质量是软件符合明确叙述的功能和性能需求、文档中明确描述的开发标准、以及所有专业开发的软件都应具有的隐含特征的程度。
影响软件质量的主要因素,这些因素是从管理角度对软件质量的度量。
可划分为三组,分别反应用户在使用软件产品时的三种观点。
正确性、健壮性、效率、完整性、可用性、风险(产品运行);可理解性、可维修性、灵活性、可测试性(产品修改);可移植性、可再用性、互运行性(产品转移)。
软件质量保证(SQA)是建立一套有计划,有系统的方法,来向管理层保证拟定出的标准、步骤、实践和方法能够正确地被所有项目所采用。
软件质量保证的目的是使软件过程对于管理人员来说是可见的。
它通过对软件产品和活动进行评审和审计来验证软件是合乎标准的。
软件质量保证组在项目开始时就一起参与建立计划、标准和过程。
这些将使软件项目满足机构方针的要求。
关系:简要的理解,软件质量是一个名词,软件质量保证是一个动词,是一种技术方法,是为了实现优秀的软件质量的一个工作。
在某一层次上说,软件质量保证和软件测试异曲同工。
软件测试工程师需要掌握哪些知识???对那些要求特别高???
软件测试需要熟练掌握测试的相关理论,熟悉测试的流程和测试的技巧,可以给你推荐一本书《测试的艺术》,网上可以下载到电子版的。
熟读这本书基本上就可以应付笔试了,呵呵。
另外,想要在测试方面取得更好的成绩,呵呵,也就是想拿到更多的薪酬,进入更高的层次,要学习性能测试和自动化测试,国内目前已LoadRunner和QTP为主,可以多关注一下。
有基本的编程技能学习起来会比较容易,这也是一般的公司喜欢招收计算机相关专业毕业生的原因,据我的经验,只要掌握了基本的C语言就差不多够用了,后期用到的东西可以找开发人员请教,顺便学习。
呵呵另外,要多搜集网络资源,几个有名气的测试网站上都有很多入门级的建议,可以好好的参阅一下。
(一字一句敲上来的,希望对你有用,有问题可以继续请教我)
软件测试在信息系统软件运维中有何作用
对于信息系统建设项目而言,其生命周期体现了该信息系统建设项目从产生到报废的完整过程,根据软件工程有关定义,软件生命周期包括如下几个阶段:项目规划、需求定义和需求分析、软件设计、程序编码、软件测试、运行维护等。
而事实上,对于一个信息系统建设项目而言,运行维护阶段才是系统真正实现价值的开始,在此之前的所有工作都是为了得到一个可以为用户提供更多价值的软件产品和信息系统。
因此,软件运行维护阶段对于一个软件产品或者信息系统而言,是其生命周期中最为漫长的一个阶段,据初步统计,软件运行维护阶段占整个软件生命周期的时间比例为80%。
随着IT建设的不断深入和完善,计算机软硬件系统的运行维护已经成为了各行各业、各单位领导和信息服务部门普遍关注和不堪重负的问题。
由于这是一个随着计算机信息技术的深入应用而产生的新课题,因此如何进行有效的IT运维管理也是一个新的领域,对于这方面的知识积累和应用技术还刚刚起步。
毫无疑问,作为信息系统建设质量检验的最有效手段,在系统运维阶段也离不开软件测试,但由于系统运行之后,其相比于软件开发阶段,存在较多的现实难题,诸如不能影响用户的现有业务运行,不能引起业务运行中断,不能破坏系统存储的真实业务数据等等,这些都给系统运维阶段的软件测试工作带来了新的难题,也对系统运维测试提出了更高的要求和期望。
综上所述,系统运维测试是在软件系统投入正式使用后,在系统运行阶段实施的测试服务,包括对上线后系统运行状态进行监测和异常报告、对上线系统实施动态测试等,以寻找系统缺陷和风险,并对相关缺陷进行诊断,指导系统调优;对系统风险进行评估,制定预防策略,确保系统上线后稳定运行。
系统运维测试是系统运维管理的重要组成部分,是软件测试在系统运维阶段的进一步延伸和扩展,那么运维测试又有哪些特点呢。
特点一:软硬件全覆盖测试 系统运维测试是在软件投入使用后的一个测试服务活动,由于IT系统建设是一个复杂的实体,它必然由一系列的硬件、网络、基础软件和业务软件组成。
一旦投入正式使用,IT系统将是一个整体,且随着企业IT系统的日益成熟和复杂,企业的关注点已从单点向多点进行转移。
在信息系统开发建设阶段,由于环境比较单一,我们可以分别针对网络、硬件、业务软件进行独立测试,但一旦系统投入使用,我们就必须结合系统软硬件环境进行综合测试,并针对测试结果进行综合分析,从总体上验证系统建设架构的可用性和服务水平。
特点二:系统业务在线运行测试 系统运维测试时针对用户已经开展业务的系统进行测试,此时,运维测试完全基于生产环境下完成,因此,运维测试中要确保当前的测试操作不影响系统的正常运转。
生产环境下的软件测试和模拟环境下的测试有较大的不同。
模拟环境下,软件系统的用户仅为测试用户,测试用户可以随意的构造和处理数据,不对系统正常运行和对外提供服务负责,只检验软件是否符合验收的标准;生产环境下测试用户执行的操作将会受到较大限制,既要满足测试要求,又不能对系统的业务造成影响。
生产环境中,需要在约束条件下完成系统测试,这需要制定较为完善的测试计划和测试方案,一方面要保证系统的正常运转,另一方面要完成测试的内容。
运维测试中,需要把测试重点放在对系统运行状况的核查上,对软件系统的业务流程,功能完备进行检查,对系统并发测试可以选择查询、统计等不对系统产生数据损坏的操作为主。
系统运维测试阶段,考虑到系统正在对外提供服务的现实情况,我们对系统的测试应该在检查功能实现正确性的基础上,尽量保证系统的稳定运行,不应影响系统的实际运行,因此我们需要加强对系统数据的保护: 1)在执行测试前,我们应尽可能对系统进行备份,至少要对系统的重要 数据和文件进行备份,确保系统测试结束后可以恢复到初始状态; 2)进行在线系统测试时,对于系统测试过程中产生的少量测试数据要进行特殊标记,测试结束后要及时清理。
测试数据我们可以事先准备并予以特殊标记,可以是带有特定意义的区域数据或者是特殊时间段内的数据,当系统测试结束后,我们可以根据这些特殊标记将相应的测试数据删除,保证系统的正常运行,对于那些需要直接在系统中进行变更的数据在相应的业务操作和功能确认完成后应予以及时恢复,确保将系统恢复到数据变更前的正常状态; 3)对于系统并发负载测试或者其他可能影响系统运行并导致系统崩溃的测试操作,我们可以安排在非工作时间进行,出现系统异常时有时间可进行系统的恢复工作。
另外,在具体实施系统并发负载测试时,应按照指标驱动和用户逐渐增加的方法对系统进行测试。
在测试过程中,应实时关注系统状态,当系统不能承受相应的压力时,测试立即终止,这样可以有效保证测试不会超出系统的最大可承受压力,避免系统崩溃和数据损坏。
特点三:测试执行具有多变性 系统运维测试是以满足用户使用为基础,针对运行中出现的问题进行报告和分析,由于系统已经对外提供服务,因此,所有的测试都必须是在用户使...
...主要讲一下手机软件测试的方法和技巧,谢谢了
楼主指的是手机的第三方软件测试吧如果是,那么我略谈一些关于这方面的东西。
首先测试一般是把流程走通,这是最基本的,你的软件需要实现什么功能和实现了什么功能,严格按照需求,即使是可用的功能,需求没有的话,那也是Bug。
软件的可用性和体验性交互性:这一块的Bug应该是最多,举一个简单的例子,使用软件的过程中来短信和来电,如果你的软件是基于网络的,这一块肯定会有很多问题。
而且,手动的将网络断开再恢复,请求会不会重新发送,这一点也是需要考虑的。
将软件中的控件和手机的按键结合起来测试。
还有你要明确软件的平台,兼容性需要考虑,如果是一个平台的,但是分辨率不一样,会使得界面元素丢失等,如果是键盘和触屏,那又要分情况考虑了。
找Bug就是要把软件玩死,就要充分考虑异常的操作,测试不是找开发的错误,而是想开发没想到的东西,场景是否面面俱到,错误处理是否健全。
午休时间到....
怎样提高自己的软件测试能力
我也是做软件测试的,提一些小建议,仅供参考: 1.做软件测试最好进公司实践.因为测试公司的每个项目组对知识的要求都不一样,也许你在这个项目组里做的很好,但把你调到另一个项目组,你仍然是门外汉.所以直接进公司学习和实践是个不错的选择. 2.软件测试需要有广泛的计算机相关知识,包括计算机网络,数据库,软件工程等. 3.掌握一门开发语言,对其他语言也要熟悉,起码做到能看懂,这样将会对你的发展很有帮助. 4.提高自己的英语水平.不可否认,现在软件行业的领先国家还是欧美,换句话说就是欧美的产品相对较多,是测试的一个很大的市场.要做这些国家的产品,英语当然是非常重要的. 5.最好掌握一门日语或者韩语.现在中国对日对韩的软件外包越来越多,尤其是北方地区.掌握这两门语言,在找工作时将会非常有优势. 6.初次进入软件测试行业,公司只会让你做人工测试,或者说是黑盒测试.所以一切读要从基础做起,不要奢望学好了直接进公司做自动测试. 7.总起来说,进公司实践,然后再买一些相关书籍翻阅.记住,最重要的还是动手能力,然后才是思考能力(这个行业和别的行业颇有不同,公司要求的是你先能做项目,然后你才去自己发展自己) 最后,软件测试现在人才缺口很大,薪水也颇为可观相信你选对了路.好好做,祝你有个美好的前程!
转载请注明出处51数据库 » 高可用性软件测试的方法及应用
荣获特级段子评论员证书的男人