1,什么是软件测试
概念:在规定的条件下对程序 进行操作,以发现程序错误,衡量软件质量,并对其是否能满足设计要求进行评估的过程
2,软件测试的分类
按照开发阶段:单元测试,集成测试,系统测试,验收测试
单元测试:是对软件组成进行测试。其目的是为了检测软件基本组成单位的正确性
集成测试:将程序的模块采用适当的集成策略组装起来
系统测试:对整个软件进行系统性测试。其中包括软件所运行的硬软件环境进行测试。时间大部分在系统测试的阶段,包括回归测试和冒烟测试
回归测试:是在开发修改完旧的代码之后。重新进行测试以确定修改没有引入新的错误或其他代码产生错误,自动化回归测试将大幅降低系统测试,维护升级等阶段的成本。在整个软件的过程中占有很大的工作比重,软件开发的各个阶段都会多次回归测试
冒烟测试:目的是为了确认软件的基本功能正常,可以进行后续的测试,冒烟测试一般是开发人员开发完毕后送给测试人员进行测试时,测试人员先进行冒烟,用以保证基本的是正确的,不会影响到后续的测试。
验收测试:他是部署软件之前最后的测试操作,它是技术测试时最后的一个测试,也叫交付测试,验收测试的目的是保证软件准备就绪,按照项目合同,任务书,双方约定的验收依据文档,向软件的购买者展示该软件的原始的需求
按照是否看代码:黑盒测试,白盒测试,灰盒测试
黑盒测试:也叫功能测试,测试中把被测的软件当成一个黑盒子,不管内部的结构是什么,而是关心输入和输出的数据时候正确
白盒测试:也叫基于代码测试,是指研究的源代码和程序结果,接口测试也是一种白盒测试
灰盒测试:是介于白盒测试和黑盒测试之间的一种测试,主要是用于集成测试阶段。不仅关注输入和输出的重要性。同时也关注程序内的情况
按照是否手工执行:手工测试,自动化测试
手工测试:是有人一个个的输入测试用例,然后观察结果,和机器测试相对应,属于比较原始的,需要一个一个步骤进行测试。
手动测试的优缺点:
优点:自动化测试无法替代的探索性测试,发散思维类无既定结果的测试
缺点:执行的效率比较慢。量大易错
按照测试对象划分:性能测试,安全测试,兼容性测试,文档测试,业务测试,界面测试
性能测试:是为了检查系统是否满足需求规格说明书中规定的性能(通常表现为以下几方面)
- 对资源的利用进行精确的度量
- 对执行间隙,日志文件(如报错,中断)
- 响应时间
- 吞吐量
- 辅导存储区(例如缓冲区,工作区的大小)
- 处理精度等进行检测
安全测试:这个领域相对比较独立,需要很多专业知识,例如WEB的安全测试,熟悉各种网络协议,TCP/Http,防火墙,CDN,熟悉各种操作系统的漏洞。熟悉路由器等。从软件来说熟悉各种攻击手段,例如sql注入,Xss,cc攻击等
兼容性测试:是指软件之间能否很好的运作,会不会有影响,软件和硬件之间是否发挥很好的效率工作,会不会影响导致系统的崩溃
文档测试:主要关注点是(术语,正确性,完整性,一致性,完整性,一致性)
业务测试:是测试人员将系统的各个模块串联起来运行,模拟真实用户实际工作流程,满足永续需求定义等功能进行测试的过程
界面测试:也叫UI测试。测试用户界面的功能模块的布局是否合理,整体风格是否一致、各个控件的放置位置是否符合客户的使用习惯,还要测试操作界面操作便捷性、导航简单易懂性、页面元素的可用性,页面元素的可用性、界面中文字是否正确,命名是否统一,页面是否美观、文字、图片组合是否完美。
3,一个项目从开始到结束 软件测试的流程
首先项目进行立项,然后对其项目进行需求分析,分析完以后对其需求评审并将其提交给开发,同时QA(质量保证)团队或者测试团队来编写测试用例,通过产品经理,开发人员和测试人员对测试用例进行评审,评审完以后,测试人员进行冒烟测试,确认完基本功能没有问题以后,将根据用例来进行测试,生成缺陷报告提交给开发,开发修改以后对其进行回归测试,如果还是有缺陷,就重复以上操作,其次对其进行验收测试,最后完成交付