对青春最好的致敬就是成为最好的自己,成为最好的自己的前提就是不断的学习!
下面是有关软件测试技术相关知识:
1.软件测试定义
冒烟测试:测试软件版本中的主要功能是否能实现。
回归测试:衰竭性测试,为了确保修改或增加的功能对原有功能没有影响。
白盒测试:通过分析组件或系统的内部结构来进行测试,白盒测试用例分析方法主要包括语句覆盖,条件覆盖,分支覆盖,条件/分支覆盖,路径覆盖等;
黑盒测试:基于系统功能或规格说明书来设计或选择设计用例的测试技术,不涉及软件内部结构。黑盒测试也可以基于代码来实现,函数级别黑盒测试。
单元测试:对单个软件组件进行的测试。一般采用软件测试驱动与桩的技术。
集成测试:暴露接口或者组件/系统间交互时存在缺陷的软件测试方法,包括自上而下测试法,自下而上测试法,自上而下和自下而上混合(三明治)测试法。
系统测试:采用各种方法验证软件是否满足产品显性或者隐性需求。
验收测试:由客户/用户或者是运维人员进行确认是否可以接受一个系统的验证性软件测试,包括Alpha测试和Beta测试。
Alpha测试:由客户或者软件测试团队在开发环境或者实际操作环境下进行的测试,是对现货软件进行内部测试的一种方式;
Beta测试:在没有开发工程师的参与下的软件测试,对现货软件进行外部验收测试。
静态测试:对组件或系统进行规格或实现级别的测试,但不执行这个软件。
动态测试:通过运行软件的组件或系统来测试软件。
2.软件工程模型
瀑布模型:计划→需求分析→设计→编码→测试→运行维护。缺点:需求在时刻变化,但模型不可以反复;只有在编码结束阶段,软件测试工程师才可介入进行软件测试,但在项目初期很难提出明确的项目需求。
迭代模型和螺旋模型:从最开始的分析、设计、编码、测试,然后进行下一轮迭代。主要有RUP模型、快速开发模型、敏捷开发等。
3.软件测试模型
V模型:单元测试→编码、集成测试→详细设计、系统测试→概要设计、验收测试→需求。
W模型:主要提倡软件前置测试,及软件测试需贯穿软件测试的始终。
X模型:将软件系统分为若干模块,对每个模块进行单元、集成、以及系统测试,然后再统一对模块进行集成测试。
4.软件测试步骤
测试计划→测试分析→测试设计→测试实施→测试执行→评估出口准则和报告→测试结束
5.软件缺陷管理
缺陷严重等级:blocker(阻碍的)、critical(紧急的)、major(重大的)、normal(普通的)、minor(较小的)、trivial(外观的)、enhancement(改进的)。
缺陷修改优先级:P5,P4,P3,P2,P1。
6.测试用例
测试用例格式
编号“固定的开始字符”+“模块名”+“3位0~9的数字”
前置条件完成此项测试需要达到的前提条件
说明测试项目的描述
7.软件测试类型
功能测试:核实数据接收、处理、检索是否正确。
易用性测试:用户体验性测试,在指定条件下使用时,软件产品被理解、学习、使用和吸引用户的能力。
可靠性测试:对软件成熟度在时间上的统计度量指标进行监控并与既定目标比较。可靠性的三个指标:平均失效时间间隔(MTBF)=平均修复时间(MTTR)+平均失效前时间(MTTF),可靠性指标= MTTR/ MTBF。
性能测试包括:基本性能测试,正常情况下软件的响应速度;负载测试(LOAD测试),通过增加负载来评估组件或系统性能;压力测试:评估系统处于一定的负载下,运行一段时间后,观察系统各项指标是否正常。
安全性测试:功能安全性;信息安全性(与用户接口相关、与文件系统相关、与操作系统相关、与外部软件相关),软件产品保护信息和数据的能力。[黑客侵入、XSS注入、SQL注入]
相容性测试:兼容性测试,软件产品或应用程序在各种指定的目标环境下是否可以正常工作。主要包括硬件、软件、中间件、操作系统、其他。
可移植性测试:第一次建立或者从现有环境移植到另一个环境。包括可安装性测试、适应性测试、可替换性测试。
可维护性测试:软件产品可被修改的能力,包括纠正、改进或者软件对环境、需求和规格说明变化的使用能力。
数据和数据库完整性测试:数据或者数据库进行应该作为一个完整的子系统进行测试。
本地化测试:为各个地方开发软件产品的测试。
文字测试:测试文字是否拼写正确、是否易懂、不存在二义性、没有语法错误;文字与内容是否有出入等。
发布测试:产品在发布前对一些附带产品,如说明书、广告稿等进行测试。
8.软件测试曲线与软件的杀虫剂现象
要避免软件测试不够或者软件测试过度。为避免杀虫剂现象,每次应该轮流测试,最好安排不同的工程师进行不同模块的测试。
9.软件测试的七项基本原则
软件测试显示存在缺陷,但不能证明软件不存在缺陷。
Good enough原则,测试既不要不充分也不要过分。
软件测试尽早介入。
缺陷集群性,即80%的缺陷发生在20%的模块中。
杀虫剂悖论,为克服剂悖论,测试用例需定时评审与修改,需不断增加新的不同的测试用例。
软件测试活动依赖于软件测试背景。
不存在缺陷(有用系统)的谬论,假如系统无法使用或者不满足客户需求,发现和修改缺陷没有意义。
10.验证与确认的区别
验证:通过检查和提供客观证据,来证实指定的需求是否已经满足。
确认:通过检查和提供客观证据,来证实特地的目的功能或应用已经实现。