软件测试的定义
就是以发现错误为目的而运行程序的过程。
软件测试员的目标是找到软件缺陷,尽可能早一些,并确保其得以修复。
2、软件测试方法总体分类
试图验证软件是“工作的”(所谓“工作的”就是指软件的功能是按照预先的设计执行的)。
设法证明软件是“不工作的”。
两类方法的优劣对比:
虽然软件测试总的目的是为了软件产品的质量,但很明显这两类测试方法在具体目标、或指导思想上截然相反。由此也决定了它们在思路、过程和测重点上有很大的差别,并各有利弊的。
3、软件测试的组成
软件项目是由文档、数据以及程序组成的,所以软件测试应该是对软件开发中形成的文档、数据及程序进行测试,目前很多人认为软件测试就是对程序的测试。
4、软件质量
ISO9126中定义的软件质量是:软件满足规定和潜在用户需求特性的总和;而2001年的软件国际标准中,把软件质量分成了:“内部质量” 、“外部质量” 、‘使用质量‘三个部分。也就是说:软件满足规定和潜在用户需求的能力,要从软件在内部、外部和使用中的表现来衡量。
内部:单元测试、安全性测试等。
外部:系统功能测试、界面测试等。
使用表现:易用性测试、用户体验性测试等。
5、软件测试与质量保证的区别(QA与Tester区别)
质量保证(QA)是通过预防、检查和改进来保证软件质量,即全面的质量管理与过程改进来开展质量保证工作;软件测试是执行软件,对开发文档和源代码进行走查,以找出问题,报告质量。
6、软件测试的目的
以最少的人力、物力和时间找出软件中潜在的各种错误与缺陷,通过修正各种错误与缺陷提高软件的质量,回避软件发布后由于软件缺陷和错误造成的隐患所带来的风险。
7、软件测试的原则
1)所有的软件测试应该蒴源到用户的需求
2)尽早的将软件测试贯穿到软件开发的全过程中
3)完全测试是不可能,测试需要中止
4)测试无法保证软件中完全没有缺陷
5)充分注意测试中错误集群现象
6)应避免自己检测自己的程序
7)应避免测试的随意性
8、软件测试的分类
按软件开发阶段划分
1)单元测试:又称模块测试,对程序模块进行检验。
2)集成测试:又称组装测试,检验程序单元的接口关系。
3)确认测试:通过检验和提供客观证据,证实软件是否满足特定的预期的用途要求。
4)系统测试:确认系统是否达到目标要求,对集成的硬件,软件系统进行测试。
5)验收测试:按照项目任务书或合同。供需双方约定的验收依据文档进行的整个系统的测试与评审,决定是否接受或拒绝系统。
按测试的实施组织划分
1)开发方测试:又称验证测试,或α测试
2)用户测试:又称β测试
3)第三方测试:又称独立测试
α测试是由一个用户在开发环境下进行的测试,也可以是公司内部的用户在模拟实际操作环境下进行的测试。α测试的目的是评价软件产品的FLURPS(即功能、局域化、可使用性、可靠性、性能和支持)。尤其注重产品的界面和特色。α测试可以从软件产品编码结束之时开始,或在模块(子系统)测试完成之后开始,也可以在确认测试过程中产品达到一定的稳定和可靠程度之后再开始。
β测试是指软件开发公司组织各方面的典型用户在日常工作中实际使用β版本,并要求用户报告异常情况、提出批评意见,然后软件开发公司再对β版本进行改错和完善
按测试技术划分
1)白盒测试:对内部结构进行分析,检测寻找问题。
2)黑盒测试:通过软件的外部表现来发现缺陷和错误。
3)灰盒测试:介于白盒与黑盒之间,关注输出对输入的正确性;同时也关注内部表现,只通过一些表征性的现象、事件、标志来判断内部的运行状态。
9、测试类型
1)功能测试
功能测试是一个试图发现程序与其外部规格说明之间存在不一致的过程。外部规格说明是一份从最终用户的角度对程序行为的精确描述。测试时按照科学方法设计的测试用例执行测试,在优先保证测试用例执行完全的前提下,再根据对业务的了解和经验性的判断进行探索性测试。
2)界面测试
界面测试简称UI测试,界面为用户与软件交互最直接的层,所以更注重用户的体验性,主要从用户的感官、交互、浏览、情感和体验出发。具体测试用户界面的功能模块布局是否合理,整体风格是否统一,各个控件的放置位置是否符合客户使用习惯,是否符合操作便捷,导航是否简单易懂,界面中文字是否正确,命名是否统一,页面美观,文字、图片组合是否完美等等。测试时可以按照最终用户具体的需求,以及通用的用户体验原则进行测试list的编写,然后测试人员根据list执行。
3)兼容测试
兼容性测试是指测试软件在特定的硬件平台上、不同的应用软件之间、不同的操纵系统平台上、不同的网络等环境中是否能够很友好的运行的测试。通常兼容性测试为软件在不同浏览器、操作系统和分辨率下的兼容测试。测试时测试人员按照软件的具体兼容性需求进行测试。
4)易用性测试
考察评定软件的易学易用性,各个功能是否易于完成,软件界面是否友好等方面进行测试。测试时可以根据用户需求,以及同类行业软件对易用性的通用原则列出测试list,然后测试人员根据list执行。
5)性能测试
性能测试是通过自动化的测试工具模拟多种正常、峰值以及异常负载条件来对系统的各项性能指标进行测试。测试分为三个大的步骤进行:一、测试前的准备工作,包括确定用户、业务、系统需求,了解被测系统所属类别(如B/S结构),测试环境构成(系统配置基线清单),测试环境网络拓扑图,实际网络带宽情况,测试服务器及测试机配置清单,系统功能流程图及测试时间;二、测试实施,依次为制定测试计划、编写测试方案,设计测试用例,录制测试脚本,模拟测试场景及运行测试;三、测试结尾,依次为分析测试结果及定位瓶颈,编写性能测试报告,做性能测试总结。
10、系统功能测试方法
功能分解
等价类划分
边界值分析
因果图法
等等其他测试方法
软件测试是伴随着软件的产生而产生的。早期的软件开发过程中软件规模都很小、复杂程度低,软件开发的过程混乱无序、相当随意,测试的含义比较狭窄,开发人员将测试等同于“调试”,目的是纠正软件中已经知道的故障,常常由开发人员自己完成这部分的工作。
早期企业对测试的投入极少,测试介入也晚,常常是等到形成代码,产品已经基本完成时才进行测试。到了上世纪80年代初期,软件和IT行业进入了大发展,软件趋向大型化、高复杂度,软件的质量越来越重要。这个时候,一些软件测试的基础理论和实用技术开始形成,并且人们开始为软件开发设计了各种流程和管理方法,软件开发的方式也逐渐由混乱无序的开发过程过渡到结构化的开发过程,以结构化分析与设计、结构化评审、结构化程序设计以及结构化测试为特征。
软件测试主要工作内容是验证(verification)和确认( validation ),下面分别给出其概念:
验证(verification)是保证软件正确地实现了一些特定功能的一系列活动,即保证软件做了你所期望的事情。(Do the right thing)
1.确定软件生存周期中的一个给定阶段的产品是否达到前阶段确立的需求的过程
2.程序正确性的形式证明,即采用形式理论证明程序符号设一计规约规定的过程
3.评市、审查、测试、检查、审计等各类活动,或对某些项处理、服务或文件等是否和规定的需求相一致进行判断和提出报告。
确认(validation)是一系列的活动和过程,目的是想证实在一个给定的外部环境中软件的逻辑正确性。即保证软件以正确的方式来做了这个事件(Do it right)
原创文章,作者:普尔小编,如若转载,请注明出处:http://www.puerpx.cn/pxwd/2536.html