前言
2006年大学毕业至今,在测试行业摸爬滚打也有十年了。
经历过创业综合软件行业、通讯软件行业、视讯软件行业、ERP软件行业,拥有5年以上测试管理经验,3年以上自动化测试经验,2年以上测试培训经验,2年以上敏捷测试经验。
目前主要研究领域:测试人员能力提升、测试技术培训、敏捷测试、自动化测试、新技术研究。
16年7月作为演讲嘉宾参加了TID质量竞争力大会,分享议题有《ERP复杂项目的自动化测试实践分享》、《传统行业如何实现敏捷测试》,都是满满的干货。
近2年总是带新人、做培训、研究自动化测试,虽然做了PPT,但想着还是需要将这些知识都沉淀下来,毕竟每一次带新人、培训、技术研究,也总会有新的想法和收获!
希望能帮助想入行测试的同学们~
----------------------------------------------------------------------------------------------------------------------------------------------------
开篇必须做概念性的介绍,从整体层面去了解软件测试究竟是什么,揭开它神秘的面纱。
- 什么是软件测试?
软件测试,是一种用来促进鉴定软件的正确性、完整性、安全性和质量的过程。(对,它是一个过程:有操作、有识别、有衡量、有评估)
换句话说,软件测试是一种实际输出与预期输出间的审核或者比较过程。
软件测试的经典定义是:在规定的条件下(行业标准、客户要求、研发团队内部因素)对程序进行操作,以发现程序错误,衡量软件质量,并对其是否能满足设计要求进行评估的过程。
可使用人工操作或者软件自动运行的方式来检验它是否满足规定的需求或弄清预期结果与实际结果之间的差别的过程。
- 如何衡量软件的质量?
软件质量:软件与明确的和隐含的定义的需求相一致的程度。通俗点就是,软件符合明确叙述的功能和性能需求、文档中明确描述的开发标准、以及所有专业开发的软件都应具有的和隐含特征相一致的程度。
先来看看影响软件质量的因素:
产品运行:正确性、可靠性、易用性、完整性、效率
产品修改:维护性、灵活性、易测试性
产品转移:可移植性、可操作性、可复用性
满足上面所有影响因素,就能证明软件的质量是好的么?当然。但即使没有满足这些所有因素,在某些特定条件下,也能说明软件的质量是好的。
例如:客户的要求,满足客户对软件质量的要求(如:数据正确;但不要求界面美观),这样的软件交付给客户,客户也认为质量是好的,满足了它实际需要的上线质量标准。
作为测试人员,阶段性的完成测试工作,也需要评定当前软件的质量,以便研发项目组内做相应的决策。
但BUG多的功能或模块就一定意味着质量差么?不一定!要看软件功能或模块的结构、复杂度、优先级、重要性来决定。
例如1:A模块是核心模块,算法复杂,绝对不能出数据问题,哪怕阶段测试发现数据类问题不多,但却影响很大很广(关联影响大),这意味着质量堪忧。团队必须尽快分析根因、制定解决措施,预估风险,控制关联影响问题反复发生。
例如2:B模块是非核心模块,使用频率可能并不高,但阶段测试发现各类问题很多,这也不一定意味质量不好,它的修复优先级可能并不高。团队优先处理类似A模块的问题更重要。
- 软件测试的分类?
1、角度细分:
1)从是否关心软件内部结构和具体实现的角度划分:
a、黑盒测试(现阶段重点关注)
b、白盒测试
c、灰盒测试
2)从是否执行程序的角度:
a、静态测试(文档评审)(现阶段重点关注)
b、动态测试(系统操作)(现阶段重点关注)
2、阶段细分(软件开发过程):
1)单元测试/功能测试(现阶段重点关注)---注:这里先关注功能测试,而非开发类的单元测试
2)集成测试(现阶段重点关注)---注:接口测试、场景测试
3)确认测试
4)系统测试(现阶段重点关注)
5)验收测试
6)回归测试(现阶段重点关注)
7)Alpha测试
8)Beta测试
需要了解每个阶段的测试分别是何时做、范围是什么、侧重点是什么(留给大家思考)
- 软件测试V模型
-------------------------------------------------------------------------------------------------------------------------------------------------
好了,咱们讲求的是精,更多理论、概念性的内容,大家可以多多找度娘了解~我就不当搬运工了,谢谢!