一、 软件开发阶段 1、 需求分析:由需求分析师完成,编写需求说明书 2、 概要设计和详细设计;由系统架构师(分析师)完成,编写概要说明书和详细说明书 3、 编码:由程序员完成,形成程序 说明:需求阶段引入的bug最多,其次是设计阶段,在编成阶段引入的bug最少——要重点关注前面需求和设计的测试,测试工作应该从开发开始阶段介入 二、 测试阶段划分 1、 单元测试—A、是最小的测试单位,一般就是一个功能模块(或函数),依据是详细的设计文档 B、单元测试以黑盒(功能)测试为主,重点模块可以结合白盒测试(检查代码) C、单元测试可能要求测试员编写驱动模块和桩模块的上一级模块(被测模块的哪个模块) 桩模块:模拟北侧模块的下一级模块(被测模块调用的那个模块) D、实际工作中,单元测试往往由程序员自己完成—节约成本、不严格 2、 集成测试 A、 软件每增加一些功能,形成一个心得内部版本,对其进行测试,——集成测试 B、 在拿到一个测试本的时,一般先做一个“冒烟测试”;使用较少的人(1-3经验更丰富)、较少的时间(0.5-2天)对软件的核心功能进行测试(不用对照用例)如果软件核心功能没有问题,就让全组投入全面测试,如果问题较多,版本不稳定,打回开发组 C、 集成测试也是以黑盒测试为主,很少采用白盒测试,依据概要设计文档 D、 集成测试(新的内部测试版本)的基本思路: —首先冒烟测试(可能省略),该版本是否接受 —返测:对以前的bug,要求该版本解决的,检查是否解决 —回归测试(可能没有)对上一个版本中的所有功能再次测试一遍——验证修改代码或新加了功能,以前的躬耕是否还正常-对该版本新加的功能进行测试(有些版本可能只是修复以前的bug,没有新功能) 接口测试:把不同的系统组建、子系统合并在一起,测试各个子系统相互调用的正确性、数据传输的正确性 如:某个公司的网银支付,该公司的页面嵌入某银行的代码,点击银行支付,就会跳转到银行负责的页面 3、 系统测试 A、 整个系统全部完成,做的一个完整的测试过程 B、 依据是需求文档 C、 系统测试全部为黑盒测试 4、验收测试(unt user acceptance testing 用户接受度测试) A、Alpha 测试:有最终用户参与对软件进行检查(一般由开发团队替代用户完成) B、beta测试:在用户实际环境中,由最终用户对软件进行检查 对于公共类软件(操作系统、游戏、输入法),一般把软件免费发放给最终用户,通过用户的使用手机问题bug——公测版本 验收测试严格来讲由最终用户完成,所以不用使用用例 补充说明 在系统测试之前,可能会有一个“确认测试”,主要确认; (1) 确认软件能否进入全面的系统测试阶段——大的冒烟测试 (2) 确认所需要的文档是否齐全(尤其是交给用户的文档、参与认证的文档)——文档测试 二、软件测试模型 1、软件测试模型表达的是测试阶段和开发阶段的对应关系 2、V模型 file:///C:/Users/ADMINI~1/AppData/Local/Temp/ksohtml/wpsA718.tmp.jpg (1) 会画 (2) 优点 A、 开发和测试阶段划分明确,对应关系明确 B、 测试阶段既包含单元测试(专业级)又包含验收测试(用户级) (3) 缺点 容易理解成测试工作只是开发完成的收尾工作 (4) 深入的了解 A、 在开发每个阶段完成后,需要进行文档测试,——测试贯穿在整个开发周期 B、 测试人员根据需求文档、开发文档编写每个测试阶段的测试计划、测试用例等,指导工作 3、W模型(了解) file:///C:/Users/ADMINI~1/AppData/Local/Temp/ksohtml/wpsA729.tmp.jpg (1) 看成双V模型,第一个V是开发活动,第二个V是测试活动 (2) 加入了文档测试内容 四、软件测试分类 1、按照测试技术 ●盒测试(功能测试) A、 任何软件、任何阶段都必须以黑和测试为主 B、 做黑盒测试只要熟悉软件需求,怎么使用就可以测试 C、 7种用例方法是黑盒方法使用于任何阶段 ●白盒测试(逻辑结构测试) A、检查代码逻辑功能检查程序的正确性,要求必须要看懂代码 B、白盒测试一定是在黑盒测试基础上完成,一般只对核心模块或风险较大模块 C、白盒测试成本高,效率低,所以现在基本不会在项目当中大面积使用 D、需要写白盒测试用例 ●灰盒测试 结合黑盒和白盒的要素 2、按是否需要运行代码划分 ●静态测试: 界面测试、文档测试、静态代码测试 ●动态测试:使序运行起来进行的测试(功能/黑盒测试一般都是动态测试) 说明: 静态代码测试与白盒测试的区别: 白盒测试主要关注代码的逻辑功能,测试者必须懂代码,要求写用例 静态代码测试主要关注代码的规范性、标准性,测试者可以不懂代码,不用用例 只要参考代码审查单,在实际工作中,经常结合两者,乘坐“静态白盒测试” 3、按软件特性分类 (1)功能测试:何软件必须要做的 (2)性能测试:主要针对分布式软件(B/S 、C/S)必须使用工具,模拟很多用户同时访问的时候,系统操作,响应速度 4、其他 (1)返测和回归测试 返测:针对于程序员修改的bug,进行的测试,验证该bug是否修复 回归测试:对一个版本中的所有功能在完全测试一次,验证新版本中所有功能是否正常(重复性很强,可宜采用功能自动化工具) (3) 随机测试(猴子测试) 一般在测试用例执行完,可以随意的补充测试 |