1、BS和CS架构
1.1 BS:浏览器与服务器结构
优点:客户端无需安装,有web浏览器即可
缺点:在速度和安全性上需要花费巨大的设计成本
1.2 CS:客户机与服务器结构
优点:CS架构的页面样式丰富,本地响应速度块
缺点:用户群固定,维护成本高,开发兼容性不高
2、软件开发的瀑布模型,快速原型模型、螺旋模型、敏捷开发
2.1 瀑布模型
是线性模式的一种,每一个阶段只执行一次。文档驱动
优点:开发的各个阶段比较清晰,当前阶段完成后,只需关注后续阶段
缺点:不适应需求的变化,风险往往延至后期才显露,失去及早纠正的机会、
2.2 快速原型模型
在开发真实系统之前,构造一个原型,在该原型的基础上,逐渐完成整个系统的开发工作
快速原型模型的特点:快速得构建软件的原型,支持用户参与
优缺点:
优点:克服瀑布模型的缺点,减少由于软件需求不明确带来的项目开发风险
缺点:不适合大型系统的开发
2.3 螺旋模型
特点:引进了风险分析活动
优点:螺旋模型很大程度上是一种风险驱动的方法体系
缺点:采用螺旋模型需要具有相当丰富的风险评估经验和专门知识
2.4 敏捷开发
敏捷开发以用户的需求进化为核心,采用迭代、循序渐进的方法进行软件开发。在敏捷开发中,软件项目在构建初期被切分成多个子项目,各个子项目的成果都经过测试,具备可视、可集成和可运行使用的特征。
优点:
1、敏捷开发的高适应性,以人为本的特性。
2、更加的灵活并且更加充分的利用了每个开发者的优势
缺点:
1、由于其项目周期很长,所以很难保证开发的人员不更换,而没有文档就会造成在交接的过程中出现很大的困难。
敏捷开发的示意图:
软件测试分类
按照方法分类:
黑盒测试:看不见内部结构,通常为检查其功能。
白盒测试:看的见内部结构,通常为检测内部代码。
灰盒测试:结合黑盒和白盒测试两种测试。
按照方向分类:
功能测试:对软件的功能进行测试。
性能测试:压力测试,负载测试,并发测试等。
安全测试:对软件的安全进行测试。
按照阶段分类:
单元测试:单元测试是对软件中的最小可验证单元进行检查和验证。
集成测试:集成测试是测试各个单元模块之间的接口
系统测试:系统测试是测试整个系统的功能和性能,比如:功能,性能,安全,兼容性,易用性,稳定性,UI等。
验收测试:系统上线前的最后一个测试阶段。一般由客户和软件开发方的人员共同完成。
按照状态分类:
静态测试:按照白盒测试去测试代码
动态测试:按照黑盒或者灰盒测试
其他:
冒烟测试:大概检测软件具不具备可测试性,目的是确认软件基本功能正常
回归测试:将测试出现的问题反馈之后,对该问题进行重新测试。
3、测试的分类与理解
3.1 V模型
V模型是最具有代表意义的测试模型,最早是由paul Rook在20世纪80年代后期提出,由英国国家计算机中心,文献中发布,旨在改进软件开发的效率和效果
V模型本身是软件开发中瀑布模型的变种,它反映了测试活动与分析和设计的关系
V模型标明了测试过程中本身存在的不同阶段,从左到右,描述了开发过程和测试过程间的阶段对应关系
V模型的优缺点:
优点:测试V模型即包含了底层测试又包含了高层测试
缺点:当需求变更时将会导致返工量非常大,模型灵活性比较低
V模型的示意图:
3.2 W模型
测试伴随着整个软件开发周期,并且测试的对象不仅仅是程序,需求和设计同样要测试
W模型的优缺点:
优点:
1、强调测试伴随着整个软件开发周期,而且测试的对象不仅仅是程序,还包括需求和设计
2、更早地介入测试,能尽早得发现缺陷进行修复
缺点:对于测试技术要求高,实践起来困难
W模型的示意图:
3.3 质量模型
软件质量,就是软件与明确地和隐含地定义的需求相一致的程度。
ISO 9126软件质量模型是评价软件质量的国际标准,这个模型是软件质量标准的核心,对于大部分的软件,都可以考虑从这6个特性和27个子特性去测试、评价一个软件。
测试的理解示意图:
BS和CS架构 软件开发的瀑布模型 快速原型模型 螺旋模型 敏捷开发 软件测试分类 测试的分类和理解