您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 经营企划 > 83软件测试之系统测试
So#ware Tes+ng So#ware Quality AssuranceSystema+c-‐Approach Tes+ng Pan Maolin, School of So#ware, SYSU panml@mail.sysu.edu.cnHDp://ss.sysu.edu.cn/~pml/se307/2012springAgenda• Case Study • Unit & Module tes+ng • Integra+on Tes+ng Strategies • Regression & Smoke Tes+ng • High Level Tes+ng • Func+onal Regression Tes+ng -‐ Example • Test Planning • Oracle Problem • Summary Case studies How to test it ?旅行保温杯 (腾讯测试面试题)智能手机电容屏保护玻璃 (产品元件测试)第一步:标准及相关性调查GB/T 11416-‐2002《日用保温容器》 QB/T 2332-‐1997《不锈钢真空保温容器》 GB 9684-‐1988《不锈钢食具容器卫生标准》 GB/T11681-‐1989《不锈钢食具容器卫生标准的分析方法》相关强!GB 11614-‐1999《浮法玻璃》 GB 15763.2-‐2005《建筑用安全玻璃-‐钢化玻璃》相关弱!Case studies How to test it ?• 2009年第2季度,上海市质量技术监督局对本市生产销售的保温容器产品质量进行了专项监督抽查。 • 标准涉及项目;不锈钢真空保温容器的保温效能、容量、耐冲击、异味、橡胶件的耐热水性、手把的安装牢度、密封性、不锈钢内胆卫生要求(铅、镉)、瓶塞的装配吻合度以及标识项目⋯⋯。 • 本次抽查项目:保温效能、容量、热水泄漏、耐冲击以及标志项目 – 保温效能:核心指标。功能测试(F/P) – 容量:实用指标,容量与口径直接关系效能。实用测试(U) – 热水泄漏:涉及使用安全,并影响使用环境的美观。安全测试(Safety) – 耐冲击:该项目关系产品使用寿命。可靠性测试(R) – 标识:国家标准规定:产品名称、容量、口径、制造厂名和厂址、采用的标准号、使用方法及使用中的注意事项等需明确标注。(S) 测试必须综合考虑目的、成本与效果FURPS+是测试系统化思维框架,包括安全!hDp://zhidao.baidu.com/ques+on/195136271.html,2012.4假设你是驴友,您还需要旅游保温杯产品有哪些特性?Case studies How to test it ?• 没有文字的需求说明书能测试吗? – 能! – 使用FURPS+(Safety & Security)框架去思考 – 调查或体验用户使用中的常见问题(Failures) – 问题分析à 质量场景旅行保温杯 (腾讯测试面试题)智能手机电容屏保护玻璃 (产品元件测试)How to test it ?Case studies How to test it ?• 国家标准主要项目 – 厚度偏差(F) – 机械加工尺寸偏差(供需方自定义)(F) – 弯曲度(F) – 抗冲击(R/U) • 手机用户、手机生产商关注的质量要素 – 划痕数量、深度检测(玻璃磨平工艺)(U) – 耐磨性,硬度(玻璃强化工艺)(R/P) – 丝印对准度,厚度(白色、黑色或彩色印刷)(U) – 色彩纯度(例如:白色一般都篇黄)(U) – 手机玻璃破碎条件与伤害(Safety) – 产品识别与防伪(S) GB 15763.2-‐2005 刚化玻璃标准 hDp://wenku.baidu.com/view/0527583d376baf1ffc4fadf4.html智能手机电容屏保护 玻璃(产品元件测试)Case studies How to test it ?腾讯测试面试题 21、有需求说明或功能说明书吗? 有。⋯⋯ 2、没有!? 啊?⋯⋯,Running ⋯⋯Case studies Mindmap – A power tools for exchanging ideas 场景1:用户正常登陆场景2:用户登陆失败一次失败多次失败场景3:状态、记住密码、自动 登陆、QQ号记忆进行EC或PW组合测试场景4:转入注册、设置、密码键盘、 找回密码等用例场景场景1:用户界面反馈提示合理性场景2:用户界面健壮性非法QQ号低强度密码场景1:典型网络、地区、压力下 平均、最大登陆时间场景1:网络状态检测场景1:多QQ实例登陆场景2:短期内重复登陆单机登陆多机登陆场景1:企业标识、登陆日志、国际化、兼容性用户登陆功能实用性性能可靠性安全性其他红色是模糊的、 大概念类词汇紫色是方法细节Case studies Planning – next jobs?Test Strategy Pyramid自顶向下规划 自下向上执行单元与模块测试实践 1、测试入/出口准则制定 2、测试手段:黑盒/白盒 3、测试工具:自动化 4、测试评估:代码覆盖 5、执行人员:程序员/测试Unit & Module tes+ng Unit Testmodule to be tested test cases results so#ware engineer 标准:1008-‐1987 -‐ IEEE Standard for So#ware Unit Tes+ngUnit & Module tes+ng Unit Test Processmodule to be tested test cases results so#ware engineer 1. 识别测试对象与特性 2. 确定测试方法与准则(ROI) 3. 设计测试数据集 4. 编写单元测试代码 5. 统计、分析测试结果 6. 度量代码覆盖,改进测试用例 Unit & Module tes+ng Unit Test Criterion – Economic–based• 识别测试对象 – 接口方法(是否确定的) – 类/模块 • 用例设计方法与准则选择 – 确定的(determinis+c) • 按基于说明书的方法测试用例 • 选择黑盒/白盒准则 – 不确定的(non-‐determinis+c) • 识别测试动作或数据序列 • 状态模型 • 测试手段选择 – 通过测试(静态数据集) – 异常测试(静态数据集) – 随机测试(动态数据集) module to be tested test cases 红色:都是高成本的测试方法或准则,请慎重选择!接口/功能特性 外部变量/文件 内部静态变量 边界条件 独立测试路径 异常处理Unit & Module tes+ng Unit Test Environment• 驱动(driver) – 测试程序 – 加载Prefix value – 加载测试数据(如xml) – 执行测试 – 卸载测试夹具 – 打印报告 • 桩(stub) – 被测试模块依赖的方法 – 例如:三角形面积计算程序 • 桩:三角形判断程序 int tritype(int a, int b, int c) { if (a=0) return -‐1; else return 1} Module stub stub driver RESULTS test cases 敏捷开发:Stub, Mock对象是最常用实践Unit & Module tes+ng Unit Test -‐ example• 类contains方法的黑盒测试 Class Booklist implementa+on List { Boolean add( Book book); … … Boolean contains(Book book); … … } • 单元测试步骤 – 识别测试对象(确定的测试吗?) • Boolean contains(list, book) – 测试特征 • Characteris+cs numbers of list (0,1,k) • Characteris+cs book (null, book instance, shallow copy of the book, subclass instance) • Characteris+cs result (true, false) • Characteris+cs found at (first, middle, last) 要点:尽可能把问题表示成确定的测试 类测试要考虑equals, instance of等特殊算子。Unit & Module tes+ng Module Test -‐ example• 类BookDAO接口API测试 – Class BookDAO extends com.xxx.persistant.DAO { • void Create(Book book); • void Update(Book book); • void Delete(Book book); // use id only • Book FindBookbyID(string ISBN); • Booklist FindBookbyQuery(string whereClause) • … … – } • 模块测试步骤 – 识别测试对象 • BookDAO类 – 设计方法与准则 • Happy序列:每种方法一次 • 对每个方法输入/功能等价划分,选择合适组合策略,覆盖相关准则 • 异常序列:ID重复、Delete before Update 、… … 测试序列: book = new Book(“__XXX@__”) Create(book) AssertEqual(FindBookbyID(book.id), book) //有BUG //修改book Update(book) AssertEqual(FindBookbyID(book.id), book) AssertEqual(FindBookbyQuery(“ID=id”)[0], book) 需要更强准则的测试吗?如单元测试、随机测试 程序员编写/测试编写哪个成本底?Integra+on Tes+ng Strategies the “big bang” approachOp+ons: • the “big bang” approach • an incremental construc+on strategy Integra+on Tes+ng Strategies Top-‐Down approachto
本文标题:83软件测试之系统测试
链接地址:https://www.777doc.com/doc-5374030 .html