admin 管理员组

文章数量: 887062


2024年1月23日发(作者:重量的英文)

研发手机基本流程手机设计公司是根据不同的手机研发平台来设计不同性能的产品!手机研发的基本流程是:用一个较简单的阐释,一般的手机研发公司是需要最基本有六个部门:ID、MD、HW、SW、PM、Sourcing、QA。1、ID(IndustryDesign)工业设计包括手机的外观、材质、手感、颜色配搭,主要界面的实现与及色彩等方面的设计。例如摩托罗拉“明”翻盖的半透明,诺基亚7610的圆弧形外观,索爱W550的阳光橙等。这些给用户的特别感受和体验都是属于手机工业设计的范畴,一部手机是否能成为畅销的产品,手机的工业设计显得特别重要!2、MD(MechanicalDesign)结构设计手机的前壳、后壳、手机的摄像镜头位置的选择,固定的方式,电池如何连接,手机的厚薄程度。如果是滑盖手机,如何让手机滑上去,怎样实现自动往上弹,SIM卡怎样插和拔的安排,这些都是手机结构设计的范畴。繁琐的部件需要MD的工作人员对材质以及工艺都非常熟识。摩托罗拉V3以13.9mm的厚度掀起了手机市场的热潮,V3手机以超薄为卖点,因为它的手机外壳材质选择十分关键,所以V3的外壳是由技术超前的航空级铝合金材质打造而成。可以这样说,特殊外壳材质的选择成就了V3的成功。另外有个别用户反应在使用某些超薄滑盖手机的时候,在接听电话时总能感觉到手机前壳的左右摇动,这就是手机结构设计出了问题,由于手机的壳体太薄,通话时的扬声器振动很容易让手机的机身产生了共振。3、HW(Hardware)硬件设计硬件主要设计电路以及天线,而HW是要和MD保持经常性的沟通。比如MD要求做薄,于是电路也要薄才行得通。同时HW也会要求MD放置天线的区域比较大,和电池的距离也要足够远,HW还会要求ID在天线附近不要放置有金属配件等等。可想而知一部内置天线的设计手机,其制造成本是会较一部外置天线设计的手机贵上20-25%,其主要因素就是天线的设计,物料的要求与及电路的设计和制造成本平均都是要求较高一些。通常结构设计师(MD)与工业设计师(ID)都会有争论,MD说ID都是画家,画一些大家做不出来的东西,而ID会说MD笨,不按他们的设计做,所以手机卖得不好。所以,一款新的手机在动手设计前,各个部门都会对ID部门的设计创意进行评审,一个好的ID一定要是一个可以实现的创意,并且客户的体验感觉要很好才行。当年摩托罗拉V70的ID就是一个很好的实现创意例子,后期市场的反应也不错,而西门子的Xelibri的创意虽然也很好,也可实现,但可惜的是最终客户的使用感觉并不好,所以一个真正好的创意,不但要好看,可实现,而且还要好用。另外HW也会与ID吵架,ID喜欢用金属装饰,但是金属会影响了天线的设计以及容易产生静电的问题,因此HW会很恼火,ID/MD会开发新材料,才能应付ID的要求。诺基亚8800就是一个好例子,既有金属感,又不影响天线的接收能力。?4、SW(Software)软件设计相对来说,SW是更容易为大家所理解,由于计算机的普及,让我们最大程度地接触了各

种各样的软件,手机操作界面的模式,大家经常看到的手机九官格操作菜单的实现,这都是SW设计的范畴。SW要充分考虑到界面的可操作性,是否人性化,是否美观的因素。SW的测试非常复杂,名目繁多,SW的测试不仅只是在寻找Bug,一致性的测试、兼容性的测试等都是非常重要的项目,在目前“内容为主”的信息时代,软件才是手机的最终幕后支柱,硬件的驱动是软件来实现,软件和硬件的工程师之间的冲突相信是不会比其它部门少,这种关系的绕来绕去,所以便需要有PM(ProjectManagement)项目管理来协调了。5、PM(ProjectManagement)项目管理大规模公司的PM都分得非常细致,比如TPM(TechnologlyOfProjectManagement),即专门管技术的PM,而普通的PM,只管理项目的进度各协调工作,PM这个部门通常存在于那些自己设计,自己生产,自己销售手机的公司,AM(AccountManager)的职位恐怕大家都不陌生,作为客户经理,对公司内部是代表客户提出要求,对外则代表公司的整体形象,在两者之间起着不可或缺的桥梁作用。6、Sourcing资源开发部资源开发部的员工要不停地去挖掘新的资源,如新材质、新的手机组件、测试器材等,当手机开始试产时,他们要保证生产线上所需要的所有生产物料齐备。手机进行小批量试生产,考察的不仅是软/硬件的成熟度,还包括考察生产工艺和生产的测试技术,有些手机在进行到这个阶段时,却通过不了这一关的话,最后是以失败告终。于是这款新设计的手机便不会出现在市场上了,而投入的开发资金和人力却付之流水,是一个极大的损失。7、QA(QualityAssurance)质量监督QA部门负担起整个流程质量保证的工作,督促开发过程是否符合预定的流程,保证项目的可生产性,有很多新设计的手机,就因为碰上了不可生产的某种因素而放弃了。生产一部手机不是在实验室内做实验那么简单,一旦生产就是成千上万部,要保证每一部产品的优质绝非一件简单容易的事。生产一部手机的样品和生产10万部手机完全是两码子事。举例:中国的菜馆出的都是样品,麦当劳做的是产品,所以麦当劳可以做得很大,而且到目前为止,中国的菜馆暂时还没有做到像麦当劳的规模是事实,所以手机设计公司才会建立起很多流程来防止出现设计研制出来的手机却不能投入生产的情况。不仅如此,一款手机的成功上市,能够卖个满堂红,仍然是需要与大众手机用户有亲密的接触,并且经过用户的反馈以及快速的改善才能成功。二、鲜为人知的手机测试项目1、压力测试用自动测试软件连续对手机拨打1000个电话,检查手机是否会发生故障。倘若出了问题,有关的软件就需要重新编写了。所以有时候手机上会出现不同的软件版本存在的情况,其实告诉大家一个秘密,手机的版本越多,这可以证明该手机在推出发售前,未经过充分的测试工作便发售了。2、抗摔性测试抗摔性测试是由专门的Pprt可靠性实验室来进行,0.5m的微跌落测试要做300次/面(手

机有六个面)。而2m的跌落测试每个面需各做一次,还仿真人把手机抛到桌面,而手机所用的电池,也要经过最少4m的高度,单独的向着地面撞击跌落100次而不能有破裂的情况出现。3、高/低温测试让手机处于不同温度环境下测试手机的适应性,低温一般在零下20摄氏度,高温则在80摄氏度左右。4、高湿度测试用一个专门的柜子来作滴水测试,仿真人出汗的情况(水内渗入一定比例的盐分),约需进行30个小时。5、百格测试(又称界豆腐测试)用H4硬度的铅笔在手机外壳上画100格子,看看手机的外壳是否会掉下油漆,有些要求更严格的手机,会在手机的外壳上再涂抹上一些“名牌”的化妆品,看看是否因有不同的化学成分而将手机的油漆产生异味或者掉漆的可能。6、翻盖可靠性测试对翻盖手机进行翻盖10万次,检查手机壳体的损耗情况,是用一部翻盖的仿真机来进行,它可以设置翻盖的力度、角度等。7、扭矩测试直机用夹具夹住两头,一个往左拧,一个往右拧。扭矩测试主要是考验手机壳体和手机内面大型器件的强度。8、静电测试在北方地区,天气较为干燥,手摸金属的东西容易产生静电,会引致击穿手机的电路,有些设计不好的手机就是这么样突然损坏了。进行这种测试的工具,是一个被称为“静电枪”的铜板,静电枪会调较到10-15KV的高压低电流的状况,对手机的所有金属接触点进行放电的击试,时间约为300ms-2s左右,并在一间有湿度控制的房间内进行,而有关的充电器(火牛)也会有同样的测试,合格才能出厂发售。9、按键寿命测试借助机器以给设定的力量对键盘击打10万次,假使用户每按键100次,就是1000天,相当于用户使用手机三年左右的时间。10、沙尘测试将手机放入特定的箱子内,细小的沙子被吹风机鼓吹起来,经过约三小时后,打开手机并察看手机内部是否有沙子进入。如果有,那么手机的密闭性设计不够好,其结构设计有待重新调整。此外,手机的测试还包含了更多更离奇的测项目,比如把手机放在铁板上打电话加以测试,由于此时磁场发生了变化,什么情况都会发生,例如寻找不到SIM卡等。用铁丝在手机底部连接器内拨来拨去,主要是要考虑到手袋内有锁匙的情况下,是否会令手机出现短路的问题。

还有故意把充电器/电池反接测试,看看手机的保护电路设计是否能正常运作,靠近日光灯打电话的测试,人体吸收电磁波比例的测试,以及靠近心脏起博器打电话的测试等等,上述所提及的各种测试都是不可少的。手机测试之SMS短消息GSM中唯一不要求建立端-端业务路径的业务就是短消息(亦称为短信),即使移动台已处于通话状态下仍可进行消息传输。SMS:ShortMessageService,即短消息服务。SMS主要发送的内容是文本格式。EMS:EnhancedMessageService,即增强型短消息,可以发送图片、铃声、动画等。注意事项:短消息中心号码的设置,在测试的时候,请先咨询当地运营商;出现如下情况时候,可能是短消息中心设置错误:手机可以收短信,不能发短信;可能在深圳可以发短信,但漫游到某地后无法发短信---一般在重设短信中心号码并重新关开机后,问题可以解决。测试项1.短消息的编辑、保存、详情、发送、回复、转发;2.短消息接收:查看、浏览,此外还有系统对EMS的支持,例如:能否正常显示和播放-----图片、铃声、动画等;3.单元长度的短消息测试;注意:在GSM协议里规定(具体描述见GSM03.40):一个7bit编码方式的短消息单元长度为160字符。因为有的字体是采用7bit编码方式,有的字体采用8bit编码方式,因此,在测试的时候,请先搞清楚具体的编码方式。l7bit编码:一个单元的短消息可以输入160个英文字符;l8bit编码:一个单元的短消息可以输入140个英文字符;l汉字:如果是按照Unicode编码的汉字,每个汉字占16bit,所以一个单元只能输入70个汉字;l如果在一条短消息中包含汉字和英文字符,则一个单元短消息的长度只能按照汉字短消息的长度来计算;4.超长短消息测试:超长短消息会在手机端分解为多条短消息,测试-----发送、接收、短消息合并;l注意:因为在分解的短消息中加入了“短消息分解说明”,所以,此时的单条短消息长度要比一个单元长度短消息包含的内容少。具体情况鉴于各个平台定义的不一致,在测试前,先咨询平台供应商或软件开发人员。5.短消息的删除(单条删除、全部删除);6.短消息的设置(有效时间、回复路径、回复报告、容量查询、存放位置等);l有效时间:即如果接收方未开机或处于无信号状态下,短消息中心会自动保存该短消息一段时间。但目前有效时间的长短是由运营商确定的,与设置有效时间的长短无关。(目前联通的有效时间是24小时,移动的有效时间是48小时。注意:此时间今后可能会变化,测试的时候请先咨询当地运营商。)因为此操作与运营商的网络设置有关,测试的时候,只测试基本操作即可。

l回复路径:如果将此功能设置为开,并向某人或指定的人发送短消息,对方回复的短信息将按发送的短信息中指定的路径发送。即A发送短消息到B,需要经过三个短消息中心1、2、3,如果B开启了回复路径功能,则B执行回复操作时,回复的短消息将分别经过3、2、1三个短消息中心,再到达A;(注意:启用该功能的发送失败几率会比不启动该功能的几率大,在测试的时候,如果发现频繁出现发送失败的情况,检查一下是否开启了此功能;)l回复报告:是由短消息中心发回的,与接收方的手机无关。当启用此功能后,短消息中心会在接收方是否接收成功的信息发回给发送方。l容量查询:查询SIM卡和本机分别能够存储了多少条短消息,已经使用了多少,剩余空间是多少。l存放位置:即将短消息保存到SIM卡还是保存在本机。7.提取号码:保存、拨号;8.消息体内号码的提取:即可以将短消息内容中的号码提取出来,此时用户可以保存、拨号等操作;9.常用短语添加、修改、删除;10.短消息数量达到极限值:增加、编辑、修改、删除等操作;复合测试项1.2.3.4.下情况:ll5.习惯;6.7.短消息发送过程中,出现干扰活动;短消息删除过程中,出现干扰活动;在普通手机上接收EMS,查看系统能够正确进行处理和显示;EMS在各个运营商之间的编码不一致,所以在测试的时候需要注意如在同一个运营商的网络中发送EMS,不应该出现乱码;在不同运营商的网络中发送EMS,可能会出现乱码;其他语言模式下,菜单名称、提示信息拼写是否正确且符合用户操作不同手机厂家之间对不同类型短消息的兼容性;启动短消息锁后的相关操作;压力测试1.在短时间内,发送大量的短消息,同时并接收大量的短消息。发送和接收的数量都在50条以上。(注意:采用不同形式的短消息进行发送、接收);2.短消息的群发(包括超长短消息),查看接收和发送的成功率;3.在发送短消息期间,频繁进行翻合盖操作;4.收件箱容量达到极限后,仍然发送和接收新短消息;5.短消息容量满的情况下,进行全部删除操作,并在删除过程中,进行干扰活动;MMS与SMS、EMS的区别SMS,ShortMessagingService短信业务,可以通过手机等移动设备发送文本型短信。SMS这个术语最早在80年代初期出现,但一直到了90年代初才开始进入商用市场,并且一直到1999年,该业务才在世界各国迅速蔓延,并有持续爆炸性的增长趋势。可刚进入21世纪,人们又提出EMS--EnhancedMessageService增强短信业务,除文本之外,它可提供

简单的图片和声音的短信服务,在2001年6月,几家手机巨头联合起来要统一EMS的标准,并且要生产具有这种功能的手机,可是因为没有Nokia的支持,不久就不了了之。那么手机业的龙头老大-Nokia为什么不支持EMS呢?因为Nokia认为MMS时代将很快来临,没有必要再生出一个过渡性标准。(1)SMS是最早的短信业务,是现在普及率最高的一种短信业务。目前SMS只是在手机内建立一段文字后再发送给朋友,简单方便易用,这种短信的长度被限定在140字节之内。SMS以简单方便的使用功能受到大众的欢迎,却始终是属于第一代的无线数据服务,在内容和应用方面存在技术标准的限制。SMS采用存储转发机制。SMS传送数据包的工作由移动网络中的短信中心而不是终端用户来完成,如果用户不在服务区内,短信就被存储在短信中心,等用户出现之后再转发给他。另外采用传递确认机制。在电路交换数据环境中,连接是端到端的,所以用户能够知道连接是否完成,以及数据传递的情况,但在GPRS环境中,附属于GPRS承载体的终端是“永远在线”的,它在任何时候都准备透明地(相对于用户而言)传送或接收数据,这样一来,检查数据包是否发送成功的任务就落到了用户头上,对于每一次分组数据业务,其相应的成本也会比SMS高。(2)EMS增强短信服务,SMS增强版本,是SMS向MMS的跳板。EMS的优势除了可以像SMS那样发送文本短信之外,还可发简单的图像、声音和动画等信息,仍然可以运行在原有SMS运行的网络上,发送途径和操作也没有差别。该标准属于开放式的,任何对EMS感兴趣的第三方公司或个人都可以在此平台上开发应用软件和服务。EMS能够将简单音调、图片、声音、动画、文本集成到一起,然后在EMS手机上显示,例如,当短信中出现感叹号时演奏相关的音调,或者把简单的黑白图片和文本及声音效果同时展示出来。EMS是SMS的增强版本,也使用信令信道,通过短信中心存储和转发短信,实现原理也比较相似,无须对基础网络进行升级。从SMS向EMS的升级是透明的,实施EMS对现有的短信中心几乎没有任何影响。EMS对现有的短信中心所要做的最大修改是运营商计费系统,毕竟EMS和SMS属于不同类别的业务,一条EMS短信的容量可能是SMS的好几倍,在EMS中有些格式的字占用的空间也比SMS大很多,故定价策略不应采取“一刀切”的方案。在这种情况下,短信中心就需要增加一些模块,记录相关的技术值并生成相应的呼叫详情记录。(3)MMS意为多媒体短信业务。MMS在概念上与SMS和EMS非常相似,可以理解为是SMS向多媒体的演进。但与SMS和EMS不同的是,MMS对于信息内容的大小或复杂性几乎没有任何限制。MMS不但可以传输文字短信,还可以传送图像、影像和音频,因此,MMS带来最大的变化是各运营商可发展更多元化的移动通信服务。MMS既可收发多媒体短信,还可以收发包含附件的邮件等。而从用户角度来看,多媒体应用将是吸引他们使用的关键。从技术上来看,MMS绝对不是像SMS那么简单的技术,说的简单一些,MMS是封装在WAP协议之上的高层应用程序(注意:这里仅仅是协议的封装,并没有出现WAP浏览器本身),利用这种高层应用程序可以实现包括图像、音频信息、视频信息、数据以及文本等多媒体

信息在内的信息传送。业内人士有的把它看作是电子邮件的替代品,有的把它看作是明信片的电子版,当然更多的是看作多媒体化的SMS。就好像收音机到电视机的发展一样,多媒体短信与原有的普通短信比较,除了基本的文字信息以外,更配有丰富的彩色图片、声音、动画等多媒体的内容。通过MMS,手机可以收发多媒体短信,包括文本、声音、图像、视频等,MMS支持手机贺卡、手机图片、手机屏保、手机地图、商业卡片、卡通、交互式视频等多媒体业务。MMS能够自动快速传送用户创建的内容。它主要以接收者的电话号码进行寻址定位,这样MMS通信可以在终端之间进行。同时MMS也支持Email寻址,因此信息可以在终端和Email之间传递。MMS作为一种新兴的移动数据业务,MMS的发展需要多方面的合作和支持,包括网络运营商、设备制造商、内容提供商等等,而各方面所持的积极态度使得MMS已经呼之欲出。但是,实施MMS并不是一件轻松的事,为了实现新的承载业务,网络基础设施需要更新,MMS终端也必须流行起来,并且,还要有丰富、精彩的内容来推动应用的发展。手机黑盒测试详细介绍1。ReleaseTestPurpose:测试手机的基本功能是否实现,是否有进一步测试的必要性Attention:nReleaseTest的TestCase具有一定的典型性,主要是反映手机最基本功能的TestCasen本类测试只需要依据TestCase进行测试,不需要进一步发挥n如果有发现与Case无关的Error,在测试通过后才可以填报ErrorReportn此类测试有一门槛值,即TestCase的Pass率达到一定值(如95%)才能宣布版本发布成功,进入进一步的测试,否则此版本无效。n除了门槛值外,如果重要功能模块的TestCase没通过,也会终止这个版本。2SystemTestFullRoundSystemTestnPurposeu对手机的所有功能进行全面的测试(所有语言包)u由于Case不可能包含所有方面,所以测试时应适度发挥,尽力完成全面测试CommonSystemTest(MediumorMinor)Attention:nSystemTest一般分为两个部分,“跑Case”和FreeTest。n在测试初期,一般只需要按照TestCase测,把一些不可重现的Error都记录下来。同时遇到TestCase的问题或者不充分,应该立即解决(和TeamLeader或者SpecialList讨论,补写TestCase)。在这一阶段结束后,一般要写一个SummaryReport。把这一阶段的测试结果和遇到的问题、自己的见解都写在里面(当然是用English)。n当所有TestCase都测完后,就进入FreeTest期间。这里的FreeTest具有明确的目的性和范围。一般来说,这段时间的FreeTest只需要测自己负责的模块。而且FreeTest还负责重现前期“跑Case”是遗留的不可重现的Error。2.5.3FocusTest

Purpose:n集中于一个或几个点进行测试(同SystemTest)2.5.4StressTestPurpose:n为了解决市场上发现的重大Error,而进行的有针对性的强度测试n主要是利用边缘测试(临界测试)手段Attention:n压力测试,顾名思义,是给手机施加一定压力,从而找出手机软件上的Error。一般来说,对手机施加的压力主要有:u存储压力:由于手机采用的是栈式存储,所以当一个存储块满了之后,如果程序员不做相应处理或者处理不好的话,很容易造成其他存储区被擦除,从而在UI上出现问题(其他功能无法正常使用)。u边界压力:边界一直是程序员最容易忽略的地方。u响应能力压力:有时候某个操作可能处理的时间很长,在处理期间如果测试者再不断地进行其他操作的话,很容易出现问题。u网络流量压力(如在接电话时进行短信服务)等等。n在项目中,StressTest有时也会用来重现不可重现的Error。n由于有不少不可重现的Error是由于MemoryLeak(内存泄漏)引起的,所以不停的重复同一个操作是重现一个不可重现的Error的一个好方法。2.5.5FreeTestPurpose:n测试SystemTest中没有做完的不可重现Errorn寻找平时没有找到的忽略的ErrorAttention:n在SystemTest阶段所用的FreeTest具有明显的目的性和范围n平时的FreeTest从理论上应该对所测试的范围穷尽所有的测试方法。但是,这是不现实的。在实际项目中,主要有两个方面是FreeTest所需要重视的。u一是从UISpec上找灵感。应为TestCase是依据UISpec写的,所以从UISpec上突破是一个行之有效的方法。UISpec有一定的探索深度,加大探索深度,是一种突破的途径;另外同一个功能用其他不同的方法去实现,也是一种突破途径。u二是多关注不同Feature之间的Interaction。这是手机软件相对比较容易出问题,而TestCase又很少能反映的地方。这是一个很大的FreeTest空间。软件测试基础一、软件测试概述软件测试是软件开发过程的重要组成部分,是用来确认一个程序的品质或性能是否符合开发之前所提出的一些要求。软件测试的目的,第一是确认软件的质量,其一方面是确认软件做了你所期望的事情(Dotherightthing),另一方面是确认软件以正确的方式来做了这个事件(Doitright)。第二是提供信息,比如提供给开发人员或程序经理的反馈信息,为风险评估所准备的信息。第三软件测试不仅是在测试软件产品的本身,而且还包括软件开发的过程。如果一个软件产品开发完成之后发现了很多问题,这说明此软件开发过程很可能是有缺陷的。因此软件测试的第三个目的是保证整个软件开发过程是高质量的。

软件质量是由几个方面来衡量的:一、在正确的时间用正确的的方法把一个工作做正确(Doingtherightthingsrightattherighttime.)。二、符合一些应用标准的要求,比如不同国家的用户不同的操作习惯和要求,项目工程中的可维护性、可测试性等要求。三、质量本身就是软件达到了最开始所设定的要求,而代码的优美或精巧的技巧并不代表软件的高质量(Qualityisdefinedasconformancetorequirements,notas“goodness”or“elegance”.)。四、质量也代表着它符合客户的需要(Qualityalsomeans“meetcustomerneeds”.)。作为软件测试这个行业,最重要的一件事就是从客户的需求出发,从客户的角度去看产品,客户会怎么去使用这个产品,使用过程中会遇到什么样的问题。只有这些问题都解决了,软件产品的质量才可以说是上去了。测试人员在软件开发过程中的任务:1、寻找Bug;2、避免软件开发过程中的缺陷;3、衡量软件的品质;4、关注用户的需求。总的目标是:确保软件的质量。二、常用的软件测试方法1.黑盒测试黑盒测试顾名思义就是将被测系统看成一个黑盒,从外界取得输入,然后再输出。整个测试基于需求文档,看是否能满足需求文档中的所有要求。黑盒测试要求测试者在测试时不能使用与被测系统内部结构相关的知识或经验,它适用于对系统的功能进行测试。黑盒测试的优点有:1)比较简单,不需要了解程序内部的代码及实现;2)与软件的内部实现无关;3)从用户角度出发,能很容易的知道用户会用到哪些功能,会遇到哪些问题;4)基于软件开发文档,所以也能知道软件实现了文档中的哪些功能;5)在做软件自动化测试时较为方便。黑盒测试的缺点有:1)不可能覆盖所有的代码,覆盖率较低,大概只能达到总代码量的30%;2)自动化测试的复用性较低。

2.白盒测试白盒测试是指在测试时能够了解被测对象的结构,可以查阅被测代码内容的测试工作。它需要知道程序内部的设计结构及具体的代码实现,并以此为基础来设计测试用例。如下例程序代码:HRESULTPlay(char*pszFileName){if(NULL==pszFileName)return;if(STATE_OPENED==currentState){PlayTheFile();}return;}读了代码之后可以知道,先要检查一个字符串是否为空,然后再根据播放器当前的状态来执行相应的动作。可以这样设计一些测试用例:比如字符串(文件)为空的话会出现什么情况;如果此时播放器的状态是文件刚打开,会是什么情况;如果文件已经在播放,再调用这个函数会是什么情况。也就是说,根据播放器内部状态的不同,可以设计很多不同的测试用例。这些是在纯粹做黑盒测试时不一定能做到的事情。白盒测试的直接好处就是知道所设计的测试用例在代码级上哪些地方被忽略掉,它的优点是帮助软件测试人员增大代码的覆盖率,提高代码的质量,发现代码中隐藏的问题。白盒测试的缺点有:1)程序运行会有很多不同的路径,不可能测试所有的运行路径;2)测试基于代码,只能测试开发人员做的对不对,而不能知道设计的正确与否,可能会漏掉一些功能需求;3)系统庞大时,测试开销会非常大。3.基于风险的测试

基于风险的测试是指评估测试的优先级,先做高优先级的测试,如果时间或精力不够,低优先级的测试可以暂时先不做。有如下一个图,横轴代表影响,竖轴代表概率,根据一个软件的特点来确定:如果一个功能出了问题,它对整个产品的影响有多大,这个功能出问题的概率有多大?如果出问题的概率很大,出了问题对整个产品的影响也很大,那么在测试时就一定要覆盖到。对于一个用户很少用到的功能,出问题的概率很小,就算出了问题的影响也不是很大,那么如果时间比较紧的话,就可以考虑不测试。基于风险测试的两个决定因素就是:该功能出问题对用户的影响有多大,出问题的概率有多大。其它一些影响因素还有复杂性、可用性、依赖性、可修改性等。测试人员主要根据事情的轻重缓急来决定测试工作的重点。4.基于模型的测试模型实际上就是用语言把一个系统的行为描述出来,定义出它可能的各种状态,以及它们之间的转换关系,即状态转换图。模型是系统的抽象。基于模型的测试是利用模型来生成相应的测试用例,然后根据实际结果和原先预想的结果的差异来测试系统,过程如下图所示。

三、软件测试的类型常见的软件测试类型有:BVT(BuildVerificationTest)BVT是在所有开发工程师都已经检入自己的代码,项目组编译生成当天的版本之后进行,主要目的是验证最新生成的软件版本在功能上是否完整,主要的软件特性是否正确。如无大的问题,就可以进行相应的功能测试。BVT优点是时间短,验证了软件的基本功能。缺点是该种测试的覆盖率很低。因为运行时间短,不可能把所有的情况都测试到。ScenarioTests(基于用户实际应用场景的测试)在做BVT、功能测试的时候,可能测试主要集中在某个模块,或比较分离的功能上。当用户来使用这个应用程序的时候,各个模块是作为一个整体来使用的,那么在做测试的时候,就需要模仿用户这样一个真实的使用环境,即用户会有哪些用法,会用这个应用程序做哪些事情,操作会是一个怎样的流程。加了这些测试用例后,再与BVT、功能测试配合,就能使软件整体都能符合用户使用的要求。ScenarioTests优点是关注了用户的需求,缺点是有时候难以真正模仿用户真实的使用情况。SmokeTest在测试中发现问题,找到了一个Bug,然后开发人员会来修复这个Bug。这时想知道这次修复是否真的解决了程序的Bug,或者是否会对其它模块造成影响,就需要针对此问题进行专门测试,这个过程就被称为SmokeTest。在很多情况下,做SmokeTest是开发人员在试图解决一个问题的时候,造成了其它功能模块一系列的连锁反应,原因可能是只集中考虑了一

开始的那个问题,而忽略其它的问题,这就可能引起了新的Bug。SmokeTest优点是节省测试时间,防止build失败。缺点是覆盖率还是比较低。此外,ApplicationCompatibilityTest(兼容性测试),主要目的是为了兼容第三方软件,确保第三方软件能正常运行,用户不受影响。AccessibilityTest(软件适用性测试),是确保软件对于某些有残疾的人士也能正常的使用,但优先级比较低。其它的测试还有FunctionalTest(功能测试)、SecurityTest(安全性测试)、StressTest(压力测试)、PerformanceTest(性能测试)、RegressionTest(回归测试)、Setup/UpgradeTest(安装升级测试)等。四、微软的软件测试工作1.基本情况测试在微软公司是一项非常重要的工作,微软公司在此方面的投入是非常巨大的。微软对测试的重视表现在工程开发队伍的人员构成上,微软的项目经理、软件开发人员和测试人员的比例基本是1:3:3或1:4:4,可以看出开发人员与测试人员的比例是1:1。对于测试的重视还表现在最后产品要发布的时候,此产品的所有相关部门都必须签字,而测试人员则具有绝对的否决权。测试人员中分成两种职位,SoftwareDevelopmentEngineerinTest(测试组的软件开发工程师)实际上还是属于开发人员,他们具备编写代码的能力和开发工具软件的经验,侧重于开发自动化测试工具和测试脚本,实现测试的自动化。SoftwareTestEngineer(软件测试工程师)具体负责测试软件产品,主要完成一些手工测试以及安装配置测试。2.测试计划测试计划是测试人员管理测试项目,在软件中寻找Bug的一种有效的工具。测试计划主要有两个作用,一是评判团队的测试覆盖率以及效率,让测试工作很有条理的逐步展开。二是有利于与项目经理、开发人员进行沟通。有了测试计划之后,他们就能够知道你是如何开展测试工作的,他们也会从中提出很多有益的意见,确保测试工作顺利进行。总之,有了测试计划可以更好的完成测试工作,确保用户的满意度。测试人员在编写测试计划之前,应获得以下文档:1)程序经理编写的产品功能说明书或产品开发计划;2)程序经理或开发人员提供的开发进度表。根据产品的特性及开发进度安排,测试人员制定具体的测试计划。测试计划通常包括以下内容:1)测试目标和发布条件:a.给出清晰的测试目标描述;

b.定义产品的发布条件,即在达到何种测试目标的前提下才可以发布产品的某个特定版本。2)待测产品范围:a.软件主要特性/功能说明,即待测软件主要特性的列表;b.特性/功能测试一览,应涵盖所有特性、对话框、菜单和错误信息等待测内容,并列举每个测试范围内要重点考虑的关键功能。3)测试方法描述:a.定义测试软件产品时使用的测试方法;b.描述每一种特定的测试方法可以覆盖哪些测试范围。4)测试进度表:a.定义测试里程碑;b.定义当前里程碑的详细测试进度。5)测试资源和相关的程序经理/开发工程师:a.定义参与测试的人员;b.描述每位测试人员的职责范围;c.给出与测试有关的程序经理/开发工程师的相关信息。6)配置范围和测试工具:a.给出测试时使用的所有计算机平台列表;b.描述测试覆盖了哪些硬件设备;c.测试时使用的主要测试工具。此外,还应列出测试中可能会面临的风险及测试的依赖性,即测试是否依赖于某个产品或某个团队。比如此项测试依赖性WindowsCE这个操作系统,而这个系统要明年2月份才能做好,那么此项测试就可能只有在明年5月份才能完成,这样就存在着依赖关系。如果那个团队的开发计划往后推,则此项测试也会被推迟。3.测试用例开发

一个好的测试用例就是有一个合理的概率来找到Bug,不要冗余,要有针对性,一个测试只针对一件事情。特别是功能测试的时候,如果一个测试是测了两项功能,那么如果测试结果失败的话,就不知道到底是哪项功能出了问题。测试用例开发中主要使用的技术有等价类划分,边界值的分析,ErrorGuessingTesting。等价类划分是根据输入输出条件,以及自身的一些特性分成两个或更多个子集,来减少所需要测试的用例个数,并且能用很少的测试用例来覆盖很多的情况,减少测试用例的冗余度。在等价类划分中,最基本的划分是一个为合法的类,一个为不合法的类。边界值的分析是利用了一个规律,即程序最容易发生错误的地方就是在边界值的附近,它取决于变量的类型,以及变量的取值范围。一般对于有n个变量时,会有6n+1个测试用例,取值分别是min-1,min,min+1,normal,max-1,max,max+1的组合。边界值的分析的缺点,是对逻辑变量和布尔型变量不起作用,还有可能会忽略掉某些输入的组合。ErrorGuessingTesting完全靠的是经验,所设计的测试用例就是常说的猜测。感觉到软件在某个地方可能出错,就去设计相应的测试用例,这主要是靠实际工作中所积累的经验和知识。其优点是速度快,只要想得到,就能很快设计出测试用例。缺点就是没有系统性,无法知道覆盖率会有多少,很可能会遗漏一些测试领域。实际上在微软是采用一些专门的软件或工具负责测试用例的管理,有一些测试信息可以被记录下来,比如测试用例的简单描述,在哪些平台执行,是手工测试还是自动测试,运行的频率是每天运行一次,还是每周运行一次。此外还有清晰的测试通过或失败的标准,以及详细记录测试的每个步骤。跟踪过程在软件开发项目中,测试人员的一项最重要使命就是对所有已知Bug进行有效的跟踪和管理,保证产品中出现的所有问题都可以得到有效的解决。一般地,项目组发现、定位、处理和最终解决一个Bug的过程包括Bug报告、Bug评估和分配、Bug处理、Bug关闭等四个阶段:1)测试工程师在测试过程中发现新的Bug后,应向项目组报告该Bug的位置、表现、当前状态等信息。项目组在Bug数据库中添加该Bug的记录。2)开发经理对已发现的Bug进行集中讨论,根据Bug对软件产品的影响来评估Bug的优先级,制定Bug的修正策略。按照Bug的优先级顺序和开发人员的工作安排,开发经理将所有需要立即处理的Bug分配给相应的开发工程师。3)开发工程师根据安排对特定的Bug进行处理,找出代码中的错误原因,修改代码,重新生成产品版本。4)开发工程师处理了Bug之后,测试人员需要对处理后的结果进行验证,经过验证确认已正确处理的Bug被标记为关闭(Close)状态。测试工程师既需要验证Bug是否已经被修正,也需要确定开发人员有没有在修改代码的同时引入新的Bug。

的不同处理方式在某些情况下,Bug已处理并不意味着Bug已经被修正。开发工程师可以推迟Bug的修正时间,也可以在分析之后告知测试工程师这实际上不是一个真正的Bug。也就是说,某特定的Bug经开发工程师处理之后,该Bug可能包括以下几种状态。已修正:开发工程师已经修正了相应的程序代码,该Bug不会出现了。可推迟:该Bug的重要程度较低,不会影响当前应提交版本的主要功能,可安排在下一版本中再行处理。设计问题:该Bug与程序实现无关,其所表现出来的行为完全符合设计要求,对此应提交给程序经理处理。无需修正:该Bug的重要程度非常低,根本不会影响程序的功能,项目组没有必要在这些Bug上浪费时间。五、成为优秀测试工程师的要求要成为一名优秀的测试工程师,首先对计算机的基本知识要有很好的了解,精通一门或多门的编程语言,具备一定的程序调试技能,掌握测试工具的开发和使用技术。同时要比较细心,会按照任务的轻重缓急来安排自己的工作,要有很好的沟通能力。此外,还要善于用非常规的方式思考问题,尽可能多的参加软件测试项目,在实践中学习技能,积累经验,不断分析和总结软件开发过程中可能出错的环节。这样,一名优秀的测试工程师就从软件测试的实践中脱颖而出了。结束语:微软的软件开发经验积淀深厚,微软工程师们的授课生动溢彩,其中有些内容是结合编程代码所作的详细讲解,较难用介绍性文字加以概括提炼,加之笔者受能力和精力所限,只能撷取部分精华内容整理成文以飨读者,因此难免是挂一漏万,甚至会有失误之处,敬请对本系列文章的关注者谅解及指正。最后对微软老师们的辛勤付出再表由衷谢意!软件问题报告怎么写在软件测试过程中,对于发现的每个软件错误(缺陷),都要进行记录该错误的特征和复现步骤等信息,以便相关认识分析和处理软件错误。为了便于管理测试发现的软件错误,通常要采用软件缺陷数据库,将每一个发现的错误输入到软件缺陷数据库中,软件缺陷数据库的每一条记录称为一个软件问题报告。软件问题报告包括头信息、简述、操作步骤和注释。头信息包括:测试软件名称、版本号、缺陷或错误类型、可重复性、测试平台、平台语言、缺陷或错误范围。要求填写完整、准确。简述是对缺陷或错误特征的简单描述,可以使用短语或短句,要求简练、准确。

操作步骤是描述该缺陷或错误出现的操作顺序,要求完整、简洁、准确。对命令、系统变量、选项要用大写字母,对控件名称等加双引号。注释一般是对缺陷或错误的附加描述,一般包括缺陷或错误现象的图像,包括其他建议或注释文字。书写专业软件问题报告的技巧书写软件问题报告的目的是为了正确地重复缺陷或错误,从而在后续工作中可以准确验证并加以处理。因此,基本要求是准确、简洁、完整、规范。为了正确书写专业的软件问题报告,应该注意以下要点:每个软件问题报告只书写一个缺陷或错误这样可以每次只处理一个确定的错误,定位明确,提高效率,也便于修复错误后方便的进行验证。对错误的描述要做到简洁、准确、完整,揭示错误实质描述要准确反映缺陷或错误的本质内容,简短明了。为了便于在答数据库中寻找,包含错误发生时的用户界面是个良好的习惯。例如记录对话框的标题、菜单、按钮等控件的名称。明确指明错误类型和严重程度根据错误的现象,总结判断错误的类型和严重程度,例如,是功能错误?还是界面布局错误?该错误是属于特别严重的错误还是一般错误?是否影响软件的后续开发和发布?每一个步骤尽量只记录一个操作简洁、条理井然,容易重复操作步骤,以便确认、修复、验证该错误。复现的操作步骤要完整,准确,简短保证快速准确的重复错误,“完整”即没有缺漏,“准确”即步骤正确,“简短”即没有多余的步骤。附加必要的错误特征图像为了直观的观察缺陷或错误现象,通常需要附加错误出现的界面,作为附件附着在记录的“附件”部分。为了节省空间,又能真实反映缺陷或错误本质,可以捕捉缺陷或错误产生时的全屏幕,活动窗口和局部区域。附加必要的测试用例

如果打开某个特殊的测试用例而产生的错误,则必须附加该测试用例,从而可以迅速再现缺陷或错误。为了使错误修正者进一步明确缺陷或错误的表现,可以附加修改建议或注解。尽量使用短语和短句,避免复杂句型句式书写软件问题报告的目的是便于定位错误,因此,要求客观的描述操作步骤,不需要修饰性的词汇和复杂的句型,增强可读性。常用的功能测试方法功能测试就是对产品的各功能进行验证,根据功能测试用例,逐项测试,检查产品是否达到用户要求的功能。常用的测试方法如下:1.页面链接检查:每一个链接是否都有对应的页面,并且页面之间切换正确。2.相关性检查:删除/增加一项会不会对其他项产生影响,如果产生影响,这些影响是否都正确。3.检查按钮的功能是否正确:如update,cancel,delete,save等功能是否正确。4.字符串长度检查:输入超出需求所说明的字符串长度的内容,看系统是否检查字符串长度,会不会出错.5.字符类型检查:在应该输入指定类型的内容的地方输入其他类型的内容(如在应该输入整型的地方输入其他字符类型),看系统是否检查字符类型,会否报错.6.标点符号检查:输入内容包括各种标点符号,特别是空格,各种引号,回车键.看系统处理是否正确.7.中文字符处理:在可以输入中文的系统输入中文,看会否出现乱码或出错.8.检查带出信息的完整性:在查看信息和update信息时,查看所填写的信息是不是全部带出.,带出信息和添加的是否一致9.信息重复:在一些需要命名,且名字应该唯一的信息输入重复的名字或ID,看系统有没有处理,会否报错,重名包括是否区分大小写,以及在输入内容的前后输入空格,系统是否作出正确处理.10.检查删除功能:在一些可以一次删除多个信息的地方,不选择任何信息,按”delete”,看系统如何处理,会否出错;然后选择一个和多个信息,进行删除,看是否正确处理.11.检查添加和修改是否一致:检查添加和修改信息的要求是否一致,例如添加要求必填的项,修改也应该必填;添加规定为整型的项,修改也必须为整型.

12.检查修改重名:修改时把不能重名的项改为已存在的内容,看会否处理,报错.同时,也要注意,会不会报和自己重名的错.13.重复提交表单:一条已经成功提交的纪录,back后再提交,看看系统是否做了处理。14.检查多次使用back键的情况:在有back的地方,back,回到原来页面,再back,重复多次,看会否出错.检查:在有search功能的地方输入系统存在和不存在的内容,看search结果是否正确.如果可以输入多个search条件,可以同时添加合理和不合理的条件,看系统处理是否正确.16.输入信息位置:注意在光标停留的地方输入信息时,光标和所输入的信息会否跳到别的地方.17.上传下载文件检查:上传下载文件的功能是否实现,上传文件是否能打开。对上传文件的格式有何规定,系统是否有解释信息,并检查系统是否能够做到。18.必填项检查:应该填写的项没有填写时系统是否都做了处理,对必填项是否有提示信息,如在必填项前加*19.快捷键检查:是否支持常用快捷键,如Ctrl+CCtrl+VBackspace等,对一些不允许输入信息的字段,如选人,选日期对快捷方式是否也做了限制。20.回车键检查:在输入结束后直接按回车键,看系统处理如何,会否报错.


本文标签: 测试 手机 是否 软件