什么是软件测试?
在规定的条件下对程序进行操作,以发现程序错误,衡量软件质量,并对其是否能满足设计要求进行评估的过程。
软件测试的分类
(1). 按照测试的方式分:静态测试、动态测试
静态测试:不执行被测对象程序的代码。即通过阅读程序代码、文档资料等,检查代码是否符合规范。
动态测试:执行被测对象的程序代码。可以分为黑盒测试和白盒测试。
(2). 按照测试方法的分:黑盒测试、白盒测试
黑盒测试:看不见软件的内部结构。
白盒测试:看得见软件的内部结构。
(3). 按照测试的阶段分:单元测试、集成测试、系统测试、验收测试
(4). 按照测试的类型分:功能测试、性能测试、兼容性测试、安全测试、界面测试、安装测试、文档测试等
软件测试的流程
制定测试计划——>测试的设计——>测试的执行——>测试的分析与总结
几种重要测试的介绍
1.功能测试
对产品的各功能进行验证,根据功能测试用例,逐项测试,检查产品是否达到用户要求的功能
2.性能测试
对系统的各项性能指标进行测试,其中的性能指标包括:响应时间、并发用户数、吞吐量、资源利用率。
常见的性能测试有负载测试、压力测试等
负载测试:通过逐步增加系统的负载,测试系统性能的变化,并最终确定在满足性能指标的情况下,系统所能承受的最大负载量的测试。
压力测试:通过逐步增加系统的负载,测试系统性能的变化,并最终确定在什么负载条件下系统性能处于失效状态。
3.冒烟测试
一般不用参照测试用例的一个随机测试的过程,通常针对核心业务模块进行。如果一个新编译的软件版本未通过冒烟测试,那么就不会进入正式测试阶段。
4.回归测试
软件系统被修改或扩充后重新进行的测试,是为了保证对软件所做的修改没有引入新的缺陷。
5.安全测试
SQL注入:在输入的字符串中注入了SQL语句,若设计不良的软件忽略了检查,这些注入的指令就会被数据库服务器误认为是正常的SQL指令而执行,从而造成数据的泄露或者数据的破坏。
跨站脚本漏洞:恶意用户将恶意脚本代码注入到网页中,其他用户观看网页时,恶意脚本就会执行。
6.自动化测试
概念
把以人为驱动的测试行为转化为机器执行的一种过程。
优点
提高测试的效率,比如利用一些自动化测试工具来完成一些大量的重复测试,例如回归测试。
执行一些手工测试困难或者无法进行的测试,比如多用户并发的情况。
缺点
不能取代手工测试,因为一些需要人脑进行判断的测试无法用自动化测试来进行。
脚本维护成本高。
常见的自动化测试工具
QTP(Quick Test Professional):QTP提供符合所有主要应用软件环境的功能测试和回归测试的自动化。采用关键字驱动的理念以简化测试用例的创建和维护。它让用户可以直接录制屏幕上的操作流程,自动生成功能测试或者回归测试用例。
LoadRunner:是一种负载测试工具。通过以模拟上千万用户实施并发负载及实时性能监测的方式来确认和查找问题。
测试用例的设计
黑盒测试测试用例的设计
方法主要有:语句覆盖、判断覆盖、条件覆盖、判断\条件覆盖、条件组合覆盖、路径覆盖。
白盒测试测试用例的设计
方法主要有:等价类划分、边界值分析、错误推测、因果图。