软件质量的定义:
软件满足规定或者潜在用户需求的能力。也就相当于说是软件符合明确叙述的功能和性能需求、文档中明确描述开发标准以及所有专业开发的软件都应具有的和隐含特征相一致的程度。
软件测试的分类:
按照开发阶段来分:单元测试,集成测试,系统测试,验收测试。
按照测试的实施单位来分:开发方测试,用户测试,第三方测试。
按照测试技术来分:黑盒测试,白盒测试,灰盒测试。
从软件特性和质量目标的角度分为:功能测试,性能测试,接口测试,人机交互测试,安全性测试,强度测试,余量测试,边界测试等多种不同类型的测试。
测试的常用种类:
功能测试:对产品的各个功能进行验证,根据功能测试用例,逐项测试,检测产品是否达到用户功能需求。
性能测试:性能测试是对软件需求规格说明或者设计文档中规定的性能需求逐项进行测试,已验证其性能是否满足要求。
单元测试:是对软件中的基本组成单位进行测试可独立编译或汇编的程序模块,已被测试单位规约为基准,测试方法可以分为:控制流测试,数据流测试,排错测试,分域测试等。单元测试的对象是可独立编译或汇编的程序模块。
集成测试:是在软件系统集成过程中进行的测试,主要目的是检查软件单位之间的接口是否正确。
系统测试:是对已经集成好的软件进行彻底的测试,已验证软件系统的正确性的性能等满足其规约所指定的要求,测试方法很多,主要有功能测试、性能测试、随机测试等。
验收测试:由客户或最终用户执行,旨在向软件的购买者展示该软件系统满足其用户的需求,这是软件在投入使用之前的最后测试。
回归测试:是指修改了旧代码之后,重新进行测试以确认修改没有引入新的错误或导致其他代码发生错误。
Alpha测试:由用户在开发者的场所进行,并且在开发者对用户的“指导”下进行测试,Alpha测试是在受控的环境中进行的。
Beta测试:由软件的最终用户们在一个或多个客房场所进行。与Alpha测试不同,开发者通常在Beta测试的现场,因Beta测试是软件在开发者不能控制的环境中的“真实”应用。
测试用例:是为某个特殊目标而编制的一组特殊输入,执行条件以及预期结果。来测试程序某个路径或验证是否满足特定的需求。
软件测试的原则:
1、测试追溯到用户需求2、尽早不断测试3、测试工作有专业人员来执行4、设计测试用例时,要考虑各种情况(测什么?怎么测?)5、 一定要写缺陷报告6、指定严格 测试计划7、完全测试不可能,测试要终止8、注意回归测试(修改新代码后会不会引入新的问题)9、妥善保存一切测试文档。
软件测试等级的五个确认过程:
1、确定各系统和各分系统的所有潜在危险。2、分析并确定每一种潜在危险的严重等级和发生的可能性。3、确定系统风险指标4、确定软件的控制类别5、确定每个软件的关键等级。
测试可分为静态测试和动态测试(分类依据:看是否执行代码)。
静态测试与动态测试是互补的,静态测试的特点是:不需要执行被测软件,动态测试则需要执行一次或者多次被测软件。
静态测试技术主要包括:文档审查,代码审查,静态分析,代码走查等。
动态测试首先需要设计测试用例,然后一次或者多次执行被测软件,并通过分析软件运行结果与期望结果的差异来分析被测软件是否满足需求。
随机测试:
针对重要功能,新增加的功能,特殊情况,以及之前发现重大bug的模块进行二次测试,也叫探索测试,他可以结合回归测试来使用。