您好,欢迎访问三七文档
1、软件是一系列特定的顺序组织的计算机数据的指令的集合。裸机也包含软件。对软件的简单认识是:数据+程序数据:包括键盘输入,鼠标单击,磁盘文件,打印输出程序:可执行的流程,转换,逻辑和运算。软件并不是只是包括在计算机上运行的程序,与程序相关的文档,也被称为是计算机软件的一部分。它是程序(Doucunetm)、文档,的集合体。系统软件:负责计算机系统中各种独立的硬件,使他们可以协调工作。系统软件使计算机使用者和他软件当作一个整体而不需要考虑底层每个硬件是如何工作的。应用软件:是为了某种特定的目的而开发的软件,他可以是一个特定的程序,如一个图像浏览器,也可以是一组功能联系密切,可以互相协作的程序的集合,比如微软的office,也可以是独立的程序组成的庞大的软件系统,如数据库管理系统。编写软件的目的:为了解决现实问题。软件产品到底是什么:软件不仅指从互联网上下载下来或DVD光盘安装到计算机程序,实际上制作软件还包含很多隐含的内容。如:数据库,操作动作,中间件(tomcat、iis、weblogic、wordpresswebsphere),不同平台,这些地方都有可能存在缺陷(隐含内容等扩展)。这些地方要铭记在心,因为这些全是可测试的象,并且有可能包含缺陷。操作系统驱动管理驱动程序数据库管理存储器格式化文件系统管理用户身份验证编译器网络连接语言处理程序电脑操作操作系BOOSBSDdoslinuxMacOS/更名为(IOS)OS/2QNXwindowsOS高级语言操作系统补丁程序软件系统诊断程序手机操作系统AnroidiosWindowsphone塞班汇编语言机器语言CPU主板存储器(ROM,RAM)2、软件缺陷(1)美国电气工程师按外部、内部给缺陷的定义:从产品内部看,是软件开发或维护过程中存在的错误、毛病等问题。从产品外部看,缺陷是系统所需实现的某种功能的失效和违背。简单地说,用户在软件使用过程中,遇到软件的某种功能,错误和异常都可以称为“软件缺陷”(2)计算机软件或程序中的存在的某种破坏性的正常运行能力的问题,错误或隐藏的内容功能缺陷。(3)软件缺陷除了失效以外,还体现在其他方面,如软件未实现产品说明书要求的功能;软件出现产品说明书指明不应该出现的功能,(4)软件出现说明书指明未提到的功能。(5)软件难以理解,不易使用,运行缓慢,或者从软件测试人员的角度看,认为用户最终会觉得不好。软件测试人员是真正第一个使用软件的人,如果软件测试人员在使用软件的时候发现某些地方要不对劲,无论什么原因,都要认定为缺陷。但每一个使用软件的人都会有自己的想法和意见,要编写所有的用户都满意的软件是不可能的,所以在运用第5时,要记住一点:要全面,客观准确,并非所有测试发现的缺陷都要修改的。不能判定是否是缺陷的时候要进行确认和验证两个过程。软件缺陷的定义二:是人工的自动化的手段来运行机制或测试村个系统过程其目的在于检验它是否满足规定的需求,或弄清预期结果与实际结果的差别。3、缺陷报告的组成一、lowlow新提交的状态(new)缺陷根源(rootsause):缺陷根源指发生错误的根本因素系统运行的复杂,不仅用户使用的计算机千变万化,包括用户输入的数据容易引起一些问题。通信端口多,加密手段的矛盾性,会造成系统的安全性和适用性缺陷起源(origin):被引起故障帮第一次检测的阶段缺陷来源(source):引起缺陷的起因1、软件本身需求不清晰系统结构复杂对实时的应用要精心处理没有考虑到系统崩溃后的自我恢复或数据库备份,灾难性问题缺陷严重程度(severity)微小的(minor)一般的(major)严重的(critical)致命的(Fatal)urgentVeryhighhighmedium缺陷优先级(priority)缺陷编号缺陷类型(type)urgentVeryhighhighmedium缺陷状态status)激活状态(open/reopen)已修正状态(fixed)关闭状态(closed)拒绝的状态(reject)新技术的采用,可能涉及技术或系统的兼容性问题,事先没有考虑到]大多数软件缺陷并非源自编程错误,从众多从小到大的项目进行研究而得出的结论是一致的,导致软件最大的原因是产品说明书,第二大来源是设计院,这里产生软件缺陷的原因与产品说明书是一样------随意,易变,沟通不足,有一句话叫“说不出就做不到”用到软件开发和测试身上再合适不过。代码错误可以照片于的复杂性,文档不足或普通对于设计或编程上的一些假定或依赖性,相关人员没有充分沟通。2、团队工作系统需求分析对客户需求理解不清楚,和用户的沟通存在一些困难。不同阶段的开发人员相互理解不一致,如:软件设计对需要分析有误差,编程人员对系统设计规格说明书某些内容不够重视,或存在误解项目组成员水平参差不齐,新员工多,培训不足3、技术问题算法错误语法错误计算和精度问题系统结构不合理,算法不科学接口参数传递不匹配,导致模块集成出现问题4、项目管理问题1、缺乏质量文化,不重视质量计划,对质量、资源,任务,成本等平衡性把握得不好,容易挤掉需求分析,评审,测试时间,遗留的缺陷会比较多。系统分析时对客户需求不是很清楚,或者和用户沟通存在一些困难。开发周期短开发流程不够完善,存在太多随机性或缺乏严谨的内审或评审机制,容易产生问题文档不完善,风险评估不足低级错误。而看上去是编程错误的代码是产品说明书和设计方案造成的。还有一类误解,即本来正确的当成缺陷,还有一些是多处重复出现,实际上是一个原因引起的,一些可归咎于测试错误。产品说明书常常没写,说不出来就做不到,其他原因是说明虽然有,但是不完整,不停的更改,不停的更改,或者产品说明书内容没有同开发小级其他成员沟通过。缺陷报告(二)缺陷编号(DefectID)缺陷标题(summary)缺陷的发现者(Defectby)缺陷发现日期(DefectBy)缺陷所属模块(subject)指派缺陷的版本(Defectedinrelease)指派给谁处理(assignedto)缺陷状态:status:newopen,rejected,fixed,reopen,closed缺陷的严重程度:urgent,veryhighhigh,medium,low优先级urgent,veryhighhigh,medium,low缺陷的严重程序和优先级的关系:严重程度一般不会修改,优先级可以适当妥协,严重程度较低的,但是优先级可能最高。4、第一个软件缺陷的领导者是美国海军将军,编译器的发明者,领导了cobol语言,(面商业的通用语言)-cobolcommonbusinessorientedlanguage5、以另外一种方式来思考,两个人对同一个软件都会持不同的见解,一个说很完美,一个说缺陷很多,一定是一个人以某种运行软件时暴露了大量的问题。6、软件结构的分类客户端:是更新后的效果,开发维护容易。不足:客户显示效果不如b/s,但是目前正在优分布式软件B/S(broner/server)浏览器/服务器电子商务网站,论坛,优点,软件的更新,只需要服务器程序。C/S(client/server客户端)服务器:如:qc,msn,qq,游戏,特点:客户端采用专门的软件单机软件化,朝着(richclient富客户端趋势发展),技术javascriptjquery7、主流的浏览器IE,firefox,safari(苹果),chrome,opear8、ENIAC:电子数字积分计算机,electonicnumbericalintegratorandcaluator美国宾西法尼亚大学,莫尔学院,19469、测试的步骤(1)编写测试用例(2)编写测试用例(3)执行用例,发现缺陷,提交缺陷报告(4)验证所发现的缺陷是否得到修改(5)编写测试总结报告10、测试计划的组成简介测试文档测试进度测试资源描述严重程度缺陷优先级问题的严重程度和优先级参考文档提交文档熟悉系统需求编写测试计划执行用例总结报告Alpha测试Beta测试缺陷跟踪及返测版本号风险分析测试策略黑盒测试,白盒测试,灰盒测试手工测试、自动化测试,基准测试并发测试综合场景测试测试策略功能测试,性能测试疲劳强度测试内存泄漏测试数据容量测试极限测试递增测试负载测试70吨是负压力测试70吨是压力容量测试60是容量安装测试兼容性测试硬件兼容软件兼容文档测试界面测试恢复测试回归测试易用性测试对比测试测试测试策略中的术语:黑盒测试(功能测试):软件测员只需要知道要什么-----而无法看到盒子里的软件是如何运行的。只要进行一些输入,就能得到输出结果。他不知道软件如何运行,为什么这样,只知道程序做了什么?动态黑盒测试常常称为行为测试,因为测试的是软件在使用过程中的实际行。有效的动态测试需要关于软件行为的一些定义-----即需求文档或产品说明书。好的产品说明书会提供这些细节。白盒测试(透明盒测试):软件测试员可以访问程序员的代码,并通过检查代码的线索来协助测试---可以看到盒子里面。测试员根据代码检查判断多或少可能出错的数据。并据此定制测试。有时也称为结构化分析,找出动态黑盒测试难以发现或隔离的软件缺陷,为黑盒测试测试员在接受软件进行测试时设计和应用测试用例提供思路。动态白盒测试是指利用查看代码功能(做什么)和实现方式(怎么,做)得到的信息来确定哪些测试,哪些不需要测试,如何开展测试,如何开展测试。动态白盒测试的另一个常用名称是结构化测试,因为软件测试员可以查看并使用代码的内部结构从而设计执行测试。动态白盒测试不仅仅是查看代码的运行情况,还包括直接测试和控制软件,动态白盒测试包括以下四个部分:直接测试底层函数,过程,子程序和库,在micrsoftwindows中这样[称为应用程序编程接口(API)。以完整的程序的方式从顶层测试软件,但是根据对软件运行的了解调整测试用例;从软件获得读取变量和状态信息的访问权,以便确定测试与预期结果是否相符,同时强制软件以正常测试难以实现的方式运行;估算执行测试时“命中”的代码量和具体代码,然后调整测试,却掉多余的测试用例,补充遗漏的用例。一定不要把动态白盒测试和调试(debugging)搞浑了,不是一个概念。动态白盒测试的目标寻找软件缺陷,调试的目标是修复缺陷。软件测试员应该把问题缩减为能够演示软件缺陷的最简化的测试用例。如果白盒测试,甚至还要包括那些值得怀疑的代码行信息静态测试:测试不运行的部分,只是检查和审核。如果要进行了动态白盒测试的思路:一,首先可以确定模块属于程序中的底层模块,可以由高层模块调用,但是自己不能调用其他模块,通过查看代码可以确认这一点。(合理的做法是编写一个测试驱动以独立于程序其他部分的形式测验该模块),测试可以是多种形式的,可以是输入字符串并查看结果的,也可以是文件读取测试字符串的预期结果的独立程序。二,分析说明书,确定应该采用户黑盒测试用例,运用等价类划分技术减少测试用例集合。在进行了白盒测试之前,一定要根据说明书建立黑盒测试用例,用[这种方式可以真正测试模块的功能和作用。如果先从模块的白盒角度建立测试用例,检查代码,就会偏向于以模块工作方式建立测试用例。程序员或许误解了说明,于是测试用例就会不对。动态测试:是通常意义上的测试----使用和运行软件。10、11、缺陷报告要注意的问题(1)一个报告只提交一个缺陷(2)缺陷描述准确,易读,使用最少必须步骤,保证缺陷可以重现,缺陷的描述要做到追根溯源,简明扼要,面面俱到。制定统一的checklist,并且经过项目负责人的评审,如果遇到歧义,和开发人员交流,以checklist为准,对缺陷的严重性,优先级准确,客观。(3)在提交缺陷时,一定要认真审核,确保缺陷是有限的。(4)不要为了引起开发的重视而夸大缺陷(5)及时报告缺陷(6)不做任何评价(7)对于不可重现的缺陷也要报告(8)因类测试人员以边界值或错误猜想法的设计用例而发现的缺陷,可能引起开发的不认同,测试人员要分析引导开发了解系统的潜在风险,提高开发人员的质量意识。12、缺陷报告的处理流程测试人员开发经理/项目经理开发人员测试人员处理缺陷报
本文标题:软件测试思想
链接地址:https://www.777doc.com/doc-1991556 .html