软件测试?
发现程序中的侧屋执行程序工程
目的:不仅是找出错误,还要分析错误产生原因和错误分布。检查开发如阿健过程出现的bug,使开发人员及时修改。测试只能说明软件中存在错误
目标:尽可能发现多的错误。一个好的测试案例是指很可能找到迄今为止尚未发现的错误的用
一个成功的测试是指揭示了迄今为止尚未发现的错误的测试。
软件测试原则
尽早发现错误;测试用例=输入数据+预期结果;程序员避免检查自己的程序;设计测试用例:合理+不合理的输入;
软件测试的原则:
充分注意测试中的群集现象。
严格执行测试计划,排除测试的随意性。
应当对每一个测试结果做全面检查。
妥善保存测试计划,测试用例,出错统计和最终分析报告,为维护提供方便。
测试工作流程
- 产品完成需求文档,完成文档评审
- 开始编写测试用例:测试功能点来源需求文档,从产品需求文档中提炼。
- 设计测试用例和产品开发并行。案例编写后评审案例,补充一楼测试点
- 执行测试,记录案例执行情况
- 填写测试报告
测试工程师:
指定测试计划,执行测试;编写用例;搭建测试环境
软件分类 4类
贴近电脑硬件的软件--固件
系统软件:操作系统,编译器软件
支持软件:数据库,软件评测工具,软件开发工具等
应用软件
测试主要方面
软件测试对象:软件定义和开发期间产物
软件测试方法
黑盒和白盒测试
白盒测试用例设计的关键是以较少的用例覆盖尽可能多的内部程序逻辑结果
黑盒法用例设计的关键同样也是以较少的用例覆盖模块输出和输入接口。不可能做到完全测试,
以最少的用例在合理的时间内发现最多的问题
测试结束标准:
用例全部执行,覆盖率达到标准,缺陷率达到标准,其他指标达到标准
软件测试三步骤
单元测试/模块测试;集成测试;系统测试
面向对象设计的测试:需要追溯到内部设计,再到功能测试,最后是需求测试
四步骤:单元测试,集成测试,确认测试,系统测试
软件错误原因
交流不够、交流上有误解或者根本不进行交流
软件复杂性
程序设计错误
需求变化
时间压力
代码文档贫乏
软件开发工具
CS模式
cs模式优点:
由于客户端实现与服务器的直接相连,没有中间环节,因此响应速度快。
操作界面漂亮、形式多样,可以充分满足客户自身的个性化要求。
CS结构的管理信息系统具有较强的事务处理能力,能实现复杂的业务流程。
CS模式缺点:
1)需要专门的客户端安装程序,分布功能弱,针对点多面广且不具备网络条件的用户
群体,不能够实现快速部署安装和配置。
2)兼容性差,对于不同的开发工具,具有较大的局限性。若采用不同工具,需要重新改写程序。
3)开发成本较高,需要具有一定专业水准的技术人员才能完成。
BS模式
优点:
1.具有分布性特点,可以随时随地进行查询、浏览等业务处理。
2.业务扩展简单方便,通过增加网页即可增加服务器功能。
3.维护简单方便,只需要改变网页,即可实现所有用户的同步更新。
4.开发简单,共享性强。
B/S模式的缺点
1.个性化特点明显降低,无法实现具有个性化的功能要求。
2.操作是以鼠标为最基本的操作方式,无法满足快速操作的要求。
3.页面动态刷新,响应速度明显降低。
4.无法实现分页显示,给数据库访问造成较大的压力。
5.功能弱化,难以实现传统模式下的特殊功能要求。
测试结束标准
第一类标准:测试超过了预定时间
第二类标准:执行了所有的测试用例,但并没有发现故障,则停止测试。
第三类标准:使用特定的测试用例设计方案作为判断测试停止的基础。
第四类标准:正面指出停止测试的具体要求
第五类标准:根据单位时间内查出故障的数量决定是否停止测试。
开发和测试
开发和测试是一个有机整体,产品发布前,开发测试是循环的。
测试过程
指定系统测试计划
编写系统测试用例
执行系统测试用例
跟踪管理缺陷
总结测试
质量八大特性
功能性、可靠性、性能、安全性、实用性、维护性、一致性、重用性
CMM--能力成熟度模型
初始级:过程无序
管理级:过程得到管理和计划
已定义级:建立并标准化组织过程
定量管理级:过程有量化的管理
优化级::追求不断创新
负载测试、压力测试、容量测试和强度测试
负载测试:在一定的工作负荷下,系统的负荷及响应时间。通过逐步增加系统负载,最终确定在满足性能指标的情况下,系统能承受的最大负载量的测试。
强度测试:又称疲劳强度测试,在系统稳定运行的情况下能够支持的最大并发用户数,持续执行一段时间业务,通过综合分析,确定系统处理最大工作量强度性能的过程。
容量测试:容量测试目的是通过测试预先分析出反映软件系统应用特征的某项指标的极限值(如最大并发用户数、数据库记录数等),系统在其极限值状态下没有出现任何软件故障或还能保持主要功能正常运行。目的是使系统承受超额的数据容量来发现它是否能够正确处理。容量测试是面向数据的,并且目的是显示系统可以处理目标内确定的数据容量。
压力测试:通过逐步增加系统负载,最终确定在什么负载条件下系统性能将处于崩溃状态,以此获得系统能提供的最大服务级别的测试。
兼容性测试
细分兼容性测试:网络兼容,平台兼容,数据库兼容,数据格式兼容
桩模块:被测模块调用模块
驱动模块调用被测模块
测试基本素质要求
细心:不遗漏测试点
善于怀疑
追根究底精神:对于不好复现的bug
考虑问题要周到
有良好沟通能力
软件开发过程常见问题
需求说明查
不切实际的时间表
测试不充分
不断增加功能
交流问题
软件安全性测试
用户认证机制:数字证书等
加密机制
安全防护策略:安全日志,入侵检测,隔离防护,漏洞扫描
数据备份和回复:存储设备,存储优化,设备保护,存储管理
防病毒系统
BUG级别
web测试和APP测试不同点
场景题目
书写软件测试用例
web服务器评价指标
测试流程
开发说不是bug
测试时间不够
- 和客户沟通本次发布的版本什么是最重要的,什么是次要的,使用优先级来对整体的测试进行筛选
- 不可避免地不能完整--加班