欢迎来到淘文阁 - 分享文档赚钱的网站! | 帮助中心 好文档才是您的得力助手!
淘文阁 - 分享文档赚钱的网站
全部分类
  • 研究报告>
  • 管理文献>
  • 标准材料>
  • 技术资料>
  • 教育专区>
  • 应用文书>
  • 生活休闲>
  • 考试试题>
  • pptx模板>
  • 工商注册>
  • 期刊短文>
  • 图片设计>
  • ImageVerifierCode 换一换

    (1.5)--第5章 软件实现软件工程过程.ppt

    • 资源ID:96649954       资源大小:801.64KB        全文页数:46页
    • 资源格式: PPT        下载积分:20金币
    快捷下载 游客一键下载
    会员登录下载
    微信登录下载
    三方登录下载: 微信开放平台登录   QQ登录  
    二维码
    微信扫一扫登录
    下载资源需要20金币
    邮箱/手机:
    温馨提示:
    快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。
    如填写123,账号就是123,密码也是123。
    支付方式: 支付宝    微信支付   
    验证码:   换一换

     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    (1.5)--第5章 软件实现软件工程过程.ppt

    第五章:软件实现编码阶段的任务按照软件设计说明书的要求,从函数库、类库、构件库中挑选有关的部件,遵照程序设计规范,用面向对象(结构化)的语言,采用软件架构技术,将这些部件组装在一起,分别实现各模块的功能,从而实现需求规格说明书中规定的功能、性能、接口、界面要求等。软件的复用什么是复用?所谓复用,就是利用某些先前开发的,对建立新软件系统有用的软件元素来生产新系统的活动。复用的目的是想放弃那种原始的一切从头开始的软件开发方式。利用复用,由共用的可复用构件来组建新的系统。复用有什么好处?缩短开发时间、降低开发成本提高软件的可靠性提高软件的标准化程度软件的复用(续)可复用的软件元素领域知识项目计划成本估算体系结构需求用户界面源程序代码和文档程序设计规范源程序的文档化标识符的命名:应当选择精炼、意义明确的名字。常用命名方法如驼峰命名法:studentName适当的注释:夹在程序中的注释是程序员与日后的程序读者之间通信的重要手段。程序的视觉组织:利用缩进使程序层次清晰。数据说明的规范化数据说明的次序应当规范化:如按照数据类型或数据结构确定固定的说明次序。当多个变量名在一个说明语句中说明时,应当对这些变量按字母的顺序排列。如果设计了一个复杂的数据结构,应当使用注释来说明在程序实现时这个数据结构的固有特点。程序设计规范(续)语句构造的结构化不要为了节省空间把多个语句写在一行内。避免复杂的条件测试。对于多分支语句,尽量把出现可能性大的情况放在前面,把较少出现的分支放在后面,这样可以加快运算时间。避免大量使用循环嵌套语句和条件嵌套语句。利用括号使逻辑表达式和算术表达式的运算次序清晰直观。等等程序设计规范(续)输入输出设计合理对输入数据加校验,可以避免用户误输入。检查输入项的各种重要组合的合理性。提示输入的请求,并简明的说明可用的选择和边界数值。批数据输入时,使用输入结束标志,而不要由用户指定输入数据数目。输出加注解,可以设计报表格式进行输出。编码阶段输出的文档源程序清单用户使用手册用户安装手册系统管理员手册代码评审代码评审,是指通过阅读代码来检查源代码与编码标准的符合性以及代码质量的活动。代码评审的好处提高代码质量,符合编程规范;及早发现潜在缺陷,降低事故成本;评审的过程也是重新梳理思路的过程,评审双方都加深了对系统的理解,促进团队沟通、促进知识共享、共同提高。代码评审(续)代码评审的主要内容编码规范问题:是否按照程序设计规范书写代码;代码结构问题:重复代码、巨大的方法和类等;工具、框架使用不当;实现问题:错误验证、异常处理、事务划分、线程、性能、安全、实现过于复杂、代码可读性不佳、扩展性不好等。代码评审(续)代码评审的选择:系统关键模块;业务较复杂的模块;缺陷率较高的模块。代码评审的主要形式交叉评审代码走查:团队成员互相检查代码,参与者可以是任意两个组员,或开发组长分别与每个组员结对进行。代码作者讲解如何以及为何这样实现、评审者提出问题和建议;每次评审不要贪多,经验表明,一次评审超过400行代码时,能发现缺陷数显著降低。会审:以项目为单位,召开专门的代码评审会议。参与者:包括项目组全体成员,也可以邀请其它组的开发人员参加。静态代码检查工具FindBugs(http:/ 是由马里兰大学提供的一款开源的、使用范围最广泛的 Java 静态代码分析工具。FindBugs 通过检查类文件或 JAR 文件与一组缺陷模式进行对比从而发现代码缺陷,完成静态代码分析。FindBugs 既提供可视化 UI 界面,同时也可以作为 Eclipse/MyEclipse 插件使用。静态代码检查工具阿里巴巴Java开发代码检测IDE插件该插件是针对阿里巴巴 Java 开发规约的一个延伸,阿里巴巴 Java 开发规约是阿里内部Java工程师所遵循的开发规范,涵盖编程规约、异常日志、单元测试、安全规约、MySQL数据库、工程规约、设计规约等。CheckStyle插件:Eclipse内嵌插件CheckStyle检验的主要内容:Javadoc注释,命名约定,标题,import语句,体积大小,空白,修饰等,主要是用来提高代码可读性,提高项目的质量,易于维护。什么是软件测试?IEEE对软件测试定义为:使用技术手段运行或检测软件系统的过程,目的在于检验是否满足规定的需求或搞清预期结果与实际结果之间的差别。软件测试的输入:软件需求规格说明书、概要设计、详细设计说明书测试的对象:可执行代码。测试计划:描述如何进行软件测试,包括测试的目的、步骤、采取的方法或技术及具体的测试用例。软件测试的目的Grenford J.Myers在软件测试技巧一书中指出软件测试有如下三个目的:测试是为了发现程序中的错误而执行程序的过程好的测试方案很可能使测试发现尚未发现的错误成功的测试是发现了尚未发现的错误的测试软件测试的目的就是尽可能多的找到软件中的错误,而不是证明软件的正确软件测试的目的就是尽可能多的找到软件中的错误,而不是证明软件的正确软件测试的准则在进行软件测试时,必须遵守如下准则:所有测试都可以追溯到用户需求制定测试计划应该在测试工作开始前的较长时间内进行测试中发现的80%的错误可能来自于20%的程序代码测试应从“小规模”开始,逐步转向“大规模”穷举所有测试用例是不可能的为了达到最有效的测试,应由独立的第三方来承担测试任务。什么是测试用例?测试用例是一组条件或变量,测试者根据它来确定应用软件或软件系统是否正确工作。测试用例通常包括以下描述信息:用例ID;用例名称;测试目的;测试级别;测试环境;前置条件;测试数据;测试步骤;预期结果;设计人员。软件测试的步骤大型软件系统的测试过程一般由单元测试、集成测试、确认测试、系统测试以及验收测试等五个步骤组成。单元测试软件的单元测试也称为模块测试,是对功能独立运行的程序模块的检测。目的是发现各模块内部可能存在的各种问题,保证功能和性能等方面达到设计要求。软件单元测试的主要内容:单元模块的功能测试单元模块的接口测试局部数据结构完整性测试容错测试边界测试重要的执行路径测试单元测试(续)所谓回归测试是指,修改了旧代码后,为保证其修改正确性,需要重新使用原有测试用例执行的测试。以确认修改没有引入新的错误或导致其他代码产生错误。单元测试工作的输入为:“程序源代码”和“软件详细设计说明书”单元测试结束的输出为:“程序单元测试记录”等集成测试集成测试也叫组装测试或联合测试。在单元测试的基础上,将所有模块按照设计要求组装成为子系统或系统,进行集成测试。集成测试的方式一次性集成增殖式集成集成测试(续)增殖式集成1.自顶向下增殖测试从主控模块开始,沿着软件的控制层次结构,以深度优先或广度优先的策略,把模块一一集成在一起。深度优先的集成顺序为M1、M2、M5、M9、M3、M6、M7、M4和M8;广度优先的集成顺序为:M1、M2、M3、M4、M5、M6、M7、M8和M9集成测试(续)增殖式集成1.自顶向下增殖测试自顶向下集成测试的具体步骤用主控模块作为测试驱动模块,其直接下属模块用桩模块来代替进行测试;依据所选的集成策略,每次用实际模块代替下属的桩模块;在集成每个实际模块时都要进行测试;可以进行回归测试,以保证不引入新的错误。从第二步开始,循环执行上述步骤,直至整个软件结构构造完毕。集成测试(续)增殖式集成2.自底向上增殖测试自底向上集成测试的具体步骤把低层模块组合成实现某个特定子功能的模块群;开发一个测试驱动模块,控制测试数据的输入和测试结果的输出;对每个模块群进行测试;去掉测试使用的驱动模块,沿着软件结构自底向上移动,把模块群与较高层模块组合成实现更大功能的新模块群。从第一步开始循环执行上述各步骤,直至整个软件结构构造完毕。集成测试(续)增殖式集成以上两种增殖式集成方式的优缺点:自顶向下集成测试的优点是可较早发现主要控制方面的问题;自顶向下集成测试的缺点是需要建立桩模块。自底向上集成测试的优点是不需要桩模块;涉及到复杂算法及输入输出模块先组装和测试,有利于尽早解决最易出问题的部分;多个模块并行测试效率高。自底向上集成测试的缺点是“程序直到最后一个模块加上后才形成一个实体”,在组装和测试过程中,主要的控制最后才可遇到。集成测试(续)3.混合增殖式测试常将上述两种方式结合组装和测试,上层模块用自顶向下集成方法,下层模块用自底向上集成方法。混和使用两种策略更为有效。集成测试(续)集成测试的任务检查各模块连接时,经过模块接口的数据丢失情况;检测某一模块的功能对另一个模块的功能的不利影响;检测各模块或子系统功能的组合,是否达到预期设计的集成子系统/系统功能情况;检查全局数据结构是否有问题;评估单个模块的错误对数据库的影响。集成测试通常由专门的测试人员负责,并对测试结果详细记录和分析,完成测试文档。集成测试输入:“集成测试计划”,“概要设计说明书”集成测试输出:集成测试分析报告确认测试确认测试主要包括软件有效性测试及配置复查,目的是验证目标系统的功能需求和性能需求及其它特性需求是否与软件的需求一致。配置复查:包括开发文档、用户文档及支持环境等配置项的复查。确认测试输入:各种配置项确认测试输出:确认测试分析报告系统测试系统测试是把已确认的软件系统移植到实际运行环境中,与其它系统元素(如硬件、数据库、其他软件系统等)组合在一起,按照系统的功能和性能需求进行的测试。有时确认测试可以与系统测试进行合并。系统测试(续)系统测试与确认测试的主要内容功能测试:就是对产品的各功能进行验证,逐项测试,检查产品是否达到用户要求的功能。压力测试:是在系统资源匮乏的条件下进行测试。目的是预先分析出目标系统可承受的并发用户极限值和性能瓶颈,以便优化程序。性能测试:验证目标系统是否达到用户提出的性能指标,同时发现目标系统中存在的性能瓶颈,起到优化系统的目的。用户界面测试:测试用户界面的风格是否满足用户要求,文字是否正确,页面是否美观,文字、图片组合是否完美,操作是否友好等等。兼容性测试:测试目标系统在特定的硬件平台上、不同的操作系统平台上、不同的应用软件之间、不同的网络等环境下是否能够很友好地运行的测试。系统测试(续)系统测试、确认测试的输入:“软件需求规格说明书”系统测试、确认测试的输出:测试分析报告验收测试以用户为主的测试,软件开发人员和质量保证人员参加,由用户设计测试用例。不是对系统进行全覆盖测试,而是对核心业务流程进行测试。Alpha测试与Beta测试如何进行软件测试?1.功能测试测试技术-黑盒测试等价类划分等价类划分是在分析需求规格说明的基础上,将程序所有可能的输入数据分成若干个等价区域,从中选取一个代表性的数据作为测试用例。边界值分析大量测试经验发现,程序的很多错误发生在输入或输出范围的边界上。错误推测法在测试程序时,人们可能根据经验或直觉推测程序中可能存在的各种错误,从而有针对性地编写检查这些错误的测试用例。如何进行软件测试?(续)1.功能测试测试用例输入:已注册的用户名和正确的密码输出:登录成功输入:已注册的用户名和不正确的密码输出:登录失败,提示“密码错误”输入:未注册的用户名和任意密码输出:登录失败,提示“用户名没有注册”输入:用户名和密码两者都为空输出:登录失败,提示“用户名及密码为空”输入:用户名和密码一个为空输出:登录失败,提示“用户名(密码)为空”用户名和密码是否大小写敏感如何进行软件测试?(续)1.功能测试测试用例输入框是否支持复制和粘贴密码是否以“*”等样式显示输入密码时,大写键盘开启时要有提示信息是否根据设计要求限制用户名和密码长度k测试自动登录功能l测试记住密码的功能m找回密码功能是否可用如何进行软件测试?(续)2.性能测试单用户登录的响应时间是否小于3秒高并发场景下用户登录的响应时间是否小于5秒高并发场景下服务端的监控指标是否符合预期如何进行软件测试?(续)3.安全性测试用户密码后台存储是否加密用户密码在网络传输过程中是否加密不登录的情况下,在浏览器中直接输入登录后的URL地址,验证是否会重新定向到用户登录界面用户名和密码的输入框中分别输入典型的“SQL注入攻击”字符串,验证系统的返回页面连续多次登录失败情况下,系统是否会阻止后续的尝试以应对暴力破解同一用户先后在多台终端的浏览器上登录,验证登录是否具有互斥性如何进行软件测试?(续)4.兼容性测试不同浏览器下,验证登录页面的显示以及功能正确性相同浏览器的不同版本下,验证登录页面的显示以及功能正确性不同移动设备终端的不同浏览器下,验证登录页面的显示以及功能正确性如何进行软件测试?(续)5.界面测试布局是否合理,组件是否对齐,高度是否符合要求布局美感,是否符合人的审美标注界面中文字简洁易懂,无错别字快捷键的使用是否正常,比如上下左右键输入用户名,密码后,回车是否可以登录输入框是否能用Tab切换JUnit-Java语言的单元测试框架JUnit的安装JUint的方法JUnit注释说明Test被注解的方法是一个测试方法。BeforeAll被注解的(静态)方法将在当前类中的所有 Test 方法前执行一次。BeforeEach被注解的方法将在当前类中的每个 Test 方法前执行。AfterEach被注解的方法将在当前类中的每个 Test 方法后执行。AfterAll被注解的(静态)方法将在当前类中的所有 Test 方法后执行一次。Disabled被注解的方法不会执行(将被跳过),但会报告为已执行。JUnit-Java语言的单元测试框架(续)JUnit中的断言断言(assertion)是org.junit.jupiter.api.Assertions类上的众多静态方法之一。断言用于测试一个条件,该条件必须计算为true,测试才能继续执行断言方法说明assertEquals(expected,actual)如果 expected 不等于 actual,则断言失败。assertArrayEquals(expected,actual)如果 数组expected的值 不等于 数组actual的值,则断言失败。assertFalse(booleanExpression)如果 booleanExpression 不是 false,则断言失败。assertNull(actual)如果 actual 不是 null,则断言失败。assertNotNull(actual)如果 actual 是 null,则断言失败。assertTrue(booleanExpression)如果 booleanExpression 不是 true,则断言失败。GUI自动化测试-Macaca测试什么是Macaca?Macaca阿里开源的基于Node.js开发的一套基于WebDriver标准协议的自动化解决方案,旨在解决跨平台、跨终端的UI自动化测试的问题,可以降低自动化测试的上手门坎。特点:多端支持多语言栈支持图片来自https:/macacajs.github.io/zh/guide/GUI自动化测试-Macaca测试(续)配置Macaca开发环境1.安装JDK2.安装node.js3.安装cpnm4.安装Macaca5.安装驱动6.环境检查GUI自动化测试-Macaca测试(续)测试工程1.测试需求:web项目,访问登录页面index.jsp,checkUser.jsp页面进行身份验证:登录成功,进入success.jsp页面;登录失败,进入fail.jsp页面。2.手工操作验证步骤3.编写测试程序4.运行测试程序性能测试工具-JMeterApache JMeter是一个java桌面应用程序。小巧轻便且免费,成为主流的性能测试工具。下载JMeterhttp:/jmeter.apache.org/download_jmeter.cgi解压缩JMeter运行JMeter性能测试工具-JMeter(续)测试实例添加虚拟用户Add/Threads(Users)/ThreadGroup添加被测页面Add/sampler/httprequest添加结果树Add/listener/viewresulttree添加汇总报告add/listener/summaryreport

    注意事项

    本文((1.5)--第5章 软件实现软件工程过程.ppt)为本站会员(刘静)主动上传,淘文阁 - 分享文档赚钱的网站仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知淘文阁 - 分享文档赚钱的网站(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    关于淘文阁 - 版权申诉 - 用户使用规则 - 积分规则 - 联系我们

    本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

    工信部备案号:黑ICP备15003705号 © 2020-2023 www.taowenge.com 淘文阁 

    收起
    展开