之前对于编程的学习及联系主要分为两种:学习某种编程语言的特性;联系某些算法或按某种模式处理数据。
前者例如学习C语言,这是学习编程语言的基础,不是软件工程。 后者例如学习数据结构与算法,也是完成单一目的的训练,不是软件工程。 那么什么样的练习才算是符合软件工程要求的训练呢?一是复杂性;二是易变性。这是有价值的软件工程必须触及的两个元素。对处理数据而言:由小数值的数拓展到大数即为复杂性;需求可变化即为易变性。
1.单元测试:单元测试(unit testing),是指对软件中的最小可测试单元进行检查和验证。对于单元测试中单元的含义,一般来说,要根据实际情况去判定其具体含义,如C语言中单元指一个函数,Java里单元指一个类,图形化的软件中可以指一个窗口或一个菜单等。总的来说,单元就是人为规定的最小的被测功能模块。单元测试是在软件开发过程中要进行的最低级别的测试活动,软件的独立单元将在与程序的其他部分相隔离的情况下进行测试。
一个典型的软件开发项目,通常包括需求定义与分析、设计、实现、测试、交付与维护几个部分,测试人员在各个环节中也起着不同的作用:
了解客户的真实需求,是一个项目的开始,它定义了整个软件产品的方向。
需求定义与分析环节的主导人通常是项目经理,同时会邀请开发代表、测试代表共同参与需求分析的各类会议,一起评估项目的可行性,期间需要完成对需求进行分解、输出需求细化文档、定义最后验收的标准等工作。
测试代表在这个环节需要给出对项目可测试性的评估。
二、设计
获得最终细化后的需求后,需要对整个软件的架构进行设计。
设计环节的主导人通常是具有一定资历的开发专家,也就是我们常说的架构师,他们需要站在足够的高度,对产品的开发框架进行设计,确认开发各类规范、技术标准等。
测试架构师在这个环节需要结合开发的语言、项目的特点,搭建相应的测试框架,为后续的测试进行准备。
三、实现
整体开发框架设计完成后,进入开发实现的环节。
实现环节的主导人通常是软件开发工程师,他们需要参照分解后的需求,以模块划分的方式进行开发,最后再把各个单元整合成一个系统。
测试开发工程师在这个环节要提出一些常见的边界、非法参数可能导致的程序异常问题,确保开发同事提前做好防护,同时解决开发同事在执行单元测试中遇到的各类问题。
四、测试
在功能开发完成,开发同事也完成功能自验后,会交给测试工程师进行进一步的验证。
测试环节的主导人通常是测试工程师,他们需要依照项目进度安排,制定合理的测试计划,去开展相应的测试工作。
测试工程师在这个环节需要设计相应的测试用例,尽可能地去覆盖产品的各类使用场景,发现软件潜在的缺陷,从更加专业的角度去把控软件的质量。
五、交付与维护
在测试完成后,软件开发人员也对一些严重程度较高的缺陷完成修复后,进入最后的交付与维护阶段。
交付与维护的主导人通常是运维人员,他们需要提供产品安装、产品使用、产品售后支持等一系列工作。
2.个人开发流程:个人软件过程(Personal Software Process,PSP)是一种可用于控制、管理和改进个人工作方式的自我持续改进过程,是一个包括软件开发表格、指南和规程的结构化框架。PSP与具体的技术(程序设计语言、工具或者设计方法)相对独立,其原则能够应用到几乎任何的软件工程任务之中。PSP能够说明个体软件过程的原则; 帮助软件工程师作出准确的计划;确定软件工程师为改善产品质量要采取的步骤;建立度量个体软件过程改善的基准;确定过程的改变对软件工程师能力的影响。
综上,在掌握个人技术与流程后,开展一些具有复杂度和易变性的真正意义上的软件工程个人开发,才能使大家成长为一个真正的软件工程师。
标签:工程师,认识,流程,环节,开发,软件工程,测试,软件 From: https://www.cnblogs.com/guoweizhe/p/17201237.html