(1)软件测试员的目的:尽可能早的找到软件缺陷,确保得以修复。
(2)软件开发生命周期模型:
大爆炸模型:计划,进度,正规开发 过程均没有,只是简单。
边写边改模型 :程序员和测试员循环往复的修改,没有真正的退出标准。
瀑布模型:非常强调产品的定义,各个步骤相互独立,无法回溯。
螺旋模型:不必一开始详细定义所有细节,测试员很早就参与开发过程,应用广泛,手段有效。
(3)黑盒测试:功能测试,主要检测软件的每一个功能是否能够正常使用。在测试过程中,将程序看成不能打开的黑盒子,不考虑程序内部结构和特性的基础上通过程序接口进行测试,检查程序功能是否按照设计需求以及说明书的规定能够正常打开使用。
白盒测试:结构测试,主要用于检测软件编码过程中的错误。程序员的编程经验、对编程软件的掌握程度、工作状态等因素都会影响到编程质量,导致代码错误。
静态测试:就是不实际运行被测软件,而只是静态地检查程序代码、界面或文档中可能存在的错误的过程。
动态测试:实际运行被测程序,输入相应的测试数据,检查实际输出结果和预期结果是否相符的过程,所以判断一个测试属于动态测试还是静态的,唯一的标准就是看是否运行程序。
(4)静态黑盒:测试产品说明书
**动态黑盒:**测试软件
**静态白盒:**检查程序代码
**动态白盒:**不仅仅查看代码的运行情况,还包括直接测试和控制软件,直接测试底层函数,过程,子程序和库。以完整程序的方式从顶层测试软件,但是根据对软件运行的了解调整测试用例从软件读取变量和状态信息的访问权 ,确定测试和预期结果是否相符。估算执行测试时“命中”的代码量和具体的代码,然后进行调试,去掉多于的测试用例,补充遗漏的用例。
动态白盒测试的目标是寻找软件缺陷,调试的目的是修复缺陷。
(5)四个阶段:单元测试,集成测试,系统测试,验收测试。
(6)强度由低到高:语句覆盖、判定覆盖、条件覆盖、判定条件覆盖、条件组合覆盖、路径覆盖。
①语句覆盖:就是设计若干个测试用例,运行被测程序,使得每一可执行语句至少执行一次。
②判定覆盖:使设计的测试用例保证程序中每个判断的每个取值分支至少经历一次。
③条件覆盖:条件覆盖是指选择足够的测试用例,使得运行这些测试用例时,判定中每个条件的所有可能结果至少出现一次,但未必能覆盖全部分支
④判定条件覆盖:判定-条件覆盖就是设计足够的测试用例,使得判断中每个条件的所有可能取值至少执行一次,同时每个判断的所有可能判断结果至少执行,即要求各个判断的所有可能的条件取值组合至少执行一次。
⑤条件组合覆盖:在白盒测试法中,选择足够的测试用例,使所有判定中各条件判断结果的所有组合至少出现一次,满足这种覆盖标准成为条件组合覆盖。
⑥路径覆盖:是每条可能执行到的路径至少执行一次。
(7)测试文档:《需求说明书》《测试规格》《测试计划说明书》《测试用例》《测试报告》
根据规范化文档能够进行记载并传授经验,也有助于指导他人。另一方面是为了后期软件维护的顺利进行。
(8)网络测试的概念:是指以科学的方法,通过测量手段/工具,取得网络产品或正在运行的网络的性能参数和服务质量参数,这些参数包括可用性,差错率,吞吐量,时延,丢包率,建立连接时间,故障检测和改正时间等
(9)网络测试可分为四类:一致性测试,功能测试,性能测试和被动测试。
一致性测试检验被测设备相关协议的实现是否遵守了协议规范。只有遵循相同网络协议的设备之间才能实现互操作和互兼容。主要参考协议规范中的相关约束,在RFC文档中经常会出现Must,May这样的关键字,需要摘录出来,进程具体测试用例,验证DUT在这种条件下协议处理的正确性。
功能测试分积极测试和消极测试,积极测试是积极地发现网络设备中的问题,来帮助生产商发现问题。消极测试通过引入损伤的方式给稳定的设备或网络造成伤害,以测试对于灾难的抵抗能力。
性能测试分为性能试验测试,负载测试和压力测试。性能试验测试用于验证没有负载或者低负载情况下的主要参数,主要用户基本功能的验证,比如验证网络设备的基本妆发及可用性测试。负载测试用于确定在各种负载下系统的性能,目标是测试当负载增加时某系统各项性能指标的变化,