软件测试
1、定义:在规定条件下,对软件进行操作,以发现软件中存在的错误,并对软件质量进行评估。
2、目的:发现软件的缺陷与错误,(对软件质量进行度量和评估)提高软件质量。
3、原则:1、所有的软件测试都应该追溯到用户的需求;
2、应当把“尽早地和不断的进行软件测试”当作座右铭;
3、完全测试是不可能的,测试需要终止;
4、测试无法显示软件存在的缺陷;
5、充分注意到软件测试中的群集现象;
6、程序员应当避免检查自己的程序(测试人员应该避免执行自己的测试用例);
7、尽量避免测试的随意性。
4、对象:不仅仅是程序测试,软件测试贯穿整个软件生命周期。
5、风险:进度风险、质量风险、人员风险、变更风险和成本风险等。
6、软件测试工程师的职责:编写测试计划、编写测试用例、配置测试环境、执行测试用例、发现提交缺陷、编写测试报告以及完成测试相关的其他任务。
PS:软件包括程序、数据和文档(需求分析文档、概要设计文档、详细设计文档和程序编码等各个阶段产生的文档)。
软件质量
1、定义:(事务、产品或工作的优劣程度)软件特性的总和。软件满足规定和潜在用户需求的能力。
2、价值:取决于其应用场景的重要程度以及该应用场景对于软件产品的依赖程度。
3、特性:(软件的六大特性)功能性、可靠性、易用性、效率、维护性和可移植性。
测试类型
一、按阶段划分
1、单元测试:对软件的最小可测单元进行检查和验证。
2、集成测试:在单元测试的基础上,将所有模块按照设计要求组装成子系统或系统。
3、系统测试:是针对整个产品系统进行的测试。验证系统是否满足需求规格的定义,找出与需求规格不符或与之矛盾的地方,从而提出更加完善的方案。
4、验收测试:确定产品是否能够满足合同或者用户所规定需求的测试。
α(alpha)测试,软件开发公司内部人员模拟各类用户行为对产品测试。
β(beta)测试,软件开发公司组织个方面的典型客户在日常工作中实际使用,并要求用户报告异常情况,提出改进意见,然后进行完善。
正式验收测试,有正规的测试过程。
二、按是否运行程序划分
1、静态测试:不运行被测试的软件,只是静态的检查代码,界面或者文档。
2、动态测试:实际运行被测试的软件,输入相应的测试数据,检查结果和预期结果是否一致的过程。
三、按是否查看代码划分
1、白盒测试:结构测试,着重于程序内部的结构和算法,不关心功能和性能指标。
2、黑盒测试:不管内部逻辑和特性,依据需求规格说明书,检查程序的功能是否符合功能说明。
四、其他划分
1、冒烟测试:对象每一个新编译的需要正式测试的版本,确认软件基本功能正常。
2、回归测试:是指修改旧代码后,重复执行上一个软件版本中使用过的测试用例。
3、随机测试:测试数据是随机的,作为其他测试的补充。
4、敏捷测试:边开发边测试。
软件测试的流程:
1、测试需求分析
2、编写测试计划
3、编写测试方案
4、设计测试用例
5、执行测试用例
6、提交、跟踪bug
7、编写测试报告
测试需求:
一、特征:1、制定的测试需求必须是可以核实的
2、说明系统应该要做什么,不应该做什么
3、不涉及具体的测试数据
二、需求来自哪里:1、业务需求
2、PRD需求规格说明书
3、MRD市场需求文档
4、技术设计方案
测试计划:
1、定义:测试计划是描述所有要完成的测试工作。包括:项目的背景、目标、范围、方式、资源、进度安排、测试组织、测试执行进入与退出的标准、测试计划的审批和变更方式、测试风险等。
2、“5W”规则:why,为什么要进行这些测试;
what,测试哪些方面,不同阶段的工作内容;
where,相应的文档,缺陷的存放位置,测试环境等;
when,测试不同阶段的起止时间;
who,项目有关人员组成,安排哪些测试人员进行测试。
3、测试启动条件:是在项目启动,需求分析开始时随之启动。
4、测试结束条件:需求全部覆盖,测试用例全部执行,bug无遗留,达到预定质量目标。
测试用例:
1、基本要素:编号、标题、重要级别、预置条件、数据输入、操作步骤、预期结果、执行人、实际结果、备注。
2、常用设计方法:等价类划分法、边界值分析法、场景法、错误推测法、因果图判定法、正交实验法等。
性能测试:
一、性能测试指标:事务Transaction、响应时间Response Time、点击率Hit Rate、吞吐量Throughput、并发用户Concurrent Users、资源利用率Resource utilization等。
二、性能测试实施过程:1、了解被测试项目的性能测试需求;
2、分析被测试项目的性能测试需求;
3、编写性能测试计划和测试用例;
4、编写程序(脚本维护);
5、执行程序(执行脚本);
6、分析结果;
7、性能调优。
缺陷的管理:
1、基本要素:缺陷ID、缺陷标题、测试环境、缺陷发现的日期和时间、缺陷的优先级、缺陷的严重等级、缺陷提交、缺陷的严重等级、测试类型、发现缺陷的软件版本、缺陷复现步骤、期望结果、实际结果、附件。