(一)软件测试定义:
经典定义:测试时为了发现错误而执行程序的过程。——Myers,1979
电气电子工程学会(IEEE)定义:使用人工或自动的手段来运行或测量软件系统的过程,以检验软件系统是否满足规定的要求,并找出与预期结果之间的差异。
(二)软件测试分类:
1.按测试阶段来分类:单元测试、集成测试、系统测试、验收测试。
单元测试定义:对软件的最小可测试单元进行检查和验证。(一般开发人员实施)
集成测试定义:单元测试基础上,测试在将所有软件单元按照要求组装成模块、子系统或系统的过程中各部分是否达到或实现相应技术指标及要求的活动。
系统测试定义:将通过集成测试的软件,作为计算机系统一部分,与系统中其他部分结合起来,在实际运行环境下对计算机系统进行的一系列严格有效的测试,以发现软件潜在的问题,保证系统的正常运行。
验收测试定义:即交付测试。针对用户需求、业务流程的正式的测试,确定系统是否满足验收标准,油用户、客户或其他授权机构决定是否接受系统。
验收测试详细分类:①用户验收测试:开发方在产品交付前所做的测试。②运行验收测试:运维的层面看系统是否可以正常运行维护。③合同和规范验收测试:是否合乎政府的法律法规等测试④alpha测试:在开发者提供的场所环境内,用户进行测试⑤Beta测试:在用户提供的场所环境内进行测试。
测试时间:单元测试=》集成测试=》系统测试=》验收测试
2.按测试手段来分类:
按测试对象可见度:黑盒测试、白盒测试、灰盒测试。
系统测试主要用黑盒测试。
黑盒测试主要测试方法:等价类划分法、边界值分析法、错误推测法、因果图法、正交试验分析法、状态迁移图法、流程分析法。
白盒测试主要测试方法:代码检测法、静态结构分析法、静态质量度量法、逻辑覆盖法、基本路径测试法。
按状态:静态测试、动态测试。
静态测试定义:无须执行被测程序,通过评审软件文档或代码,度量程序静态复杂度,检查软件是否符合编程标准。
动态测试定义:通过运行被测程序,检查运行结果与预期结果的差异,并分析运行效率、正确性和健壮性等。
按测试执行方式:手工测试、自动化测试。
手工测试定义:由专门的测试人员从用户视角来验证软件是否满足设计要求的行为。更适合针对深度的测试和强调主观判断的测试。
手工测试包含:众包测试、探索式测试。
自动化测试定义:使用单独的测试工具软件控制测试的自动化执行以及对预期和结果进行自动检查。
自动化测试包含:单元测试、接口测试、性能测试等。
按测试模型分类:瀑布模型、敏捷测试、基于脚本的测试、基于风险的测试、探索式测试等。
3.按测试类型:功能测试、性能测试、部署测试、文档测试、安全测试、兼容性测试、易用性测试、本地化测试、无障碍测试、可靠性测试。
①功能测试:根据产品特性、操作描述和用户方案,测试一个产品的特性和可操作行为以确定他们满足设计需求。
功能测试工具:商用:QTP、silkTest、Rational robot;开源:selenium、Watir、Sikuli。
②性能测试延伸=》负载测试、压力测试、稳定性测试。
性能指标:并发用户数VU(同一时间多少支持用户访问系统)、每秒事务数TPS(每秒处理事务能力)、系统响应时间、设备性能。
性能测试工具:LoadRunner、Silkperformer、Jmeter、WebLoad、Apache Bench、LoadUI
静态性能评估:开发web应用时,基于一系列Web应用页面性能优化的最佳实践对Web应用的页面进行静态分析,并给出评估结果的性能分析方法。
评估标准/工具:YSlow、PageSpeed。
应用性能管理(APM):提供对系统的实时监控以实现性能管理、故障管理的解决方案。(国内比较厉害的:听云)
③安全测试:对软件产品进行测试以确保其符合产品安全需求和质量标准。(防御、面)
渗透测试:通过模拟对软件系统的恶意攻击行为来评估系统安全性的一种测试。(攻击、点)
安全测试须了解OWASP,这个网站帮助很大。
安全测试工具:Appscan、Webbinspect、Nessus、Nump、MetaSploit、WebScarab、Fortify、W3AF。
④兼容性测试:软件本身的兼容、不同平台下的兼容性、软件对运行设备的兼容性、软件互操作性。
浏览器的兼容很重要,一般由内核决定。
⑤文档测试:针对软件产品的交付品,配套的文档类部件的测试。如用户手册、使用说明、用户帮助文档等
文档测试关注要点:完整性、正确性、一致性、易理解性、易浏览性
⑥可靠性测试:软件可靠性测试、硬件可靠性测试。
⑦易用性测试:测试用户使用软件时是否方便,是否能保证用户使用体验的测试类型。
⑧本地化测试:针对软件的本地化版本实施的针对性测试。
主要测试内容:
语言、书写习惯
时区、日期格式、货币
当地风俗、法律法规
政治敏感内容。
⑨部署测试:即安装测试。主要验证系统部署过程,并确保软件经过安装测试后可以正常使用。
主要测试内容:
在不同环境下的部署验证
参照部署文件执行,过程的合理、正确性
基础数据。
⑩无障碍测试:即可访问性测试。指软件提供便于特殊人群使用的功能,包括视障、听障、老年人、身体残疾用户等。
(三)其它测试分类:
1.回归测试
定义:软件功能修改后,对软件进行重新测试以确认修改没有引入新的错误或导致其他部分产生错误。
回归测试重点在关键模块和重点功能组件。
软件研发周期中会进行多次回归测试,且尽量实现自动化。
2.冒烟测试
用于确认代码中的更改会按预期运行,且不会破坏整个版本的稳定性。
3.Monkey测试
即搞怪测试。用一些随机、稀奇古怪的方式来操作软件,以测试系统的健壮性和稳定性。
4.A/B测试
多用于互联网行业,通过为页面提供2个版本给用户使用并记录相关的用户行为数据,来确定更优化设计的一种测试方案。
测试要点:
多个方案并行
每个测试仅改动一个变量
按照某个规则进行优胜劣汰
A/B测试工具:Google Analytics Content Experiments、Visual Website Optimizer
共同学习,写下你的评论
评论加载中...
作者其他优质文章