20171128-构建之法:现代软件工程-阅读笔记

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了20171128-构建之法:现代软件工程-阅读笔记相关的知识,希望对你有一定的参考价值。

第十三章-软件测试

  基本名词解释及分类:

    Bug:软件的缺陷;

    Test Case:测试用例;

    Test Suite:测试用例集;

  Bug可分解为:症状【Symptom】:即从用户的角度看,软件出了什么问题;

          程序错误【Fault】:即从代码的角度看,代码的什么错误导致了软件的问题;

          根本原因【Root Cause】:错误根源,即导致代码错误的根本原因;

  按测试设计的方法分类:

    黑箱【Black Box】:指的是在设计测试的过程中,把软件系统当作一个“黑箱”,无法了解或使用系统的内部结构及知识;

    白箱【White Box】:指的是在设计测试的过程中,设计者可以“看到”软件系统的内部结构,并使用软件的内部结构和知识来选择测试数据及具体的测试方法;

  按测试的目的分类:

    功能测试:

      Unit Test:单元测试----在最基本的功能 / 参数上验证程序的正确性;

      Functional Test:功能测试----验证模块的功能;

      Integration Test:集成测试----验证几个互相有依赖关系的模块的功能;

      Scenario Test:场景测试----验证几个模块能否完成一个用户场景;

      System Test:系统测试----对于整个系统功能的测试;

      Alpha / Beta Test:外部软件测试人员(Alpha / Beta测试员)在实际用户环境中对软件进行全面的测试;

    非功能测试【Non-functional Requirement】(服务质量需求【Quality of Service Requirement】):

      Stress / Load Test:眼力测试----测试软件在负载情况下能否正常工作;

      Performance Test:效能测试----测试软件的效能;

      Accessibility Test:可访问性测试----测试软件是否向残疾用户提供了足够的辅助功能;

      Lcalization / Globalization Test:本地化 / 全球化测试;

      Compatibility Test:兼容性测试;

      Configuration Test:配置测试----测试软件在各种配置下能否正常工作;

      Usability Test:易用性测试----测试软件是否好用;

      Security Test:软件安全性测试;

  按测试的时机和作用分类:

    测试“烽火台”、不同的测试方法;

  各种测试方法:

    1.单元测试和代码覆盖率测试;

    2.构建验证测试【Build Verification Test, BVT】:基本功能能否使用;

    3.验收测试【Acceptance Test】;

    4.“探索式”的测试【Ad hoc Test】;

    5.回归测试【Regression Test】:验证修复的Bug有没有再次出现;

    6.场景 / 集成 / 系统测试:各模块连接是否正常;

    7.伙伴测试【Buddy Test】;

    8.效能测试【Performance Test】:软件在设计负载内能否提供令用户满意的服务质量;

      涉及两个概念:1.设计负载;2.令用户满意的服务质量;

      现实的环境两方面:1.现实的静态数据;2.现实的动态数据;

    9.压力测试:增加负载的两个方面----1.沿着用户轴延长;2.沿着时间轴延长

    10.内部 / 外部公开测试;

    11.易用性测试;

    12.“小强”大扫荡【Bug Bash】;

 

第十四章   质量保障

1. 软件的质量

           定义: 软件产品在规定条件下满足规定和隐含需求的能力(Capability of software product to satisfy stated and implied needs under specified condition)   或

                       软件产品满足既定需求的程度;然而,质量取决于那些既定的需求准确地代表利益相关者的需求、欲望和期望的程度。(The degree to which a software        product meets established requirements;however,quality depends upon the degree to which those established requirements accurately represent        stakeholder needs,wants,and expectations)

                  软件质量=程序质量+软件工程质量

2. 程序的质量

            体现 : 软件外在功能的质量

3. 软件工程的质量

            体现: 1.软件开发过程的可见性(Visibility)

                        2.软件开发过程的风险控制(Risk Manangement)

                        3.软件内部模块,项目中间阶段的交付质量,项目管理工具的因素

                        4.软件开发成本的控制(Cost Control)

                        5.内部质量指标的完成情况(Internal Benchmarks)

4.软件工程的质量衡量

           CMMI(Capacity Maturity Model Integrated,能力成熟度模型集成)

           CMMI实施方法:1.连续式:主要是衡量一个企业在某一项目的管理能力。

                                       2.阶段式:主要是衡量一个企业的成熟度。

5.质量的成本

            1.预防(Prevention)

            2.评审(Appraisal)

            3.内部故障(Internal Failure)

            4.外部故障(External Failure)

            5.流程分析改进(Process Enhancement)

            6.提高职业技能(Enhance Professional Skills)

            7.投资软件工具(Invest in Software Tools)

以上是关于20171128-构建之法:现代软件工程-阅读笔记的主要内容,如果未能解决你的问题,请参考以下文章

《20171030-构建之法:现代软件工程-阅读笔记》

《2017 0907-构建之法:现代软件工程-阅读笔记》

20170930-构建之法:现代软件工程-阅读笔记

《构建之法:现代软件工程-阅读笔记》

《20170914-构建之法:现代软件工程-阅读笔记1》

《20170906-构建之法:现代软件工程-阅读笔记》