当前课程知识点:软件工程与软件自动化 >  第一章 软件工程基础 >  1.4 亡羊补牢为时不晚 >  授课视频2/2

返回《软件工程与软件自动化》慕课在线视频课程列表

授课视频2/2在线视频

下一节:扩展阅读

返回《软件工程与软件自动化》慕课在线视频列表

授课视频2/2课程教案、知识点、字幕

测试的核心就是捉虫子,虫子太多,很难捉完

编码过程过于随意,导致我们的虫子抓也抓不尽,捉也捉不完

第一点,规范,代码规范

要好好写代码,提高代码编写水平

我们就可以很大程度上减少这个Bug的出现

那有的时候呢,我们在实际开发过程当中

经常会出现Quickly and Ugly 的编码

就是说我任务很着急,明天就deadline了

今天我要交工,我们会出现一个很着急的、很快速的编码

那么这个编码在我们获得了一些时间之后

我们要快速对它进行一个重构和单元测试

来确保我们在这种Quickly and Ugly 的编码过程当中

不会产生更多的Bug

在编码过程当中,我们不喜欢写文档

因为我们觉得写文档对编码是一个干扰

写代码正过瘾呢,让我停下来写段文档

比较难受

但是如果不写文档,代码将来又看不懂

所以说我们比较提倡在你的代码当中

要随时加注释,大量的加注释

然后通过这种自动化的文档生成工具

来让你的代码当中的文档直接抓下来

所以我们在编码的时候,考虑到这种文档

能够有助于我们减少Bug的产生

现在的软件测试已不再是个人的单打独斗

我们说捉Bug的活动已经变得有组织有纪律了

不再是随心所欲了

那么表现为什么呀?有测试组织

有测试组,测试组长,还有测试工程师

这是分级的。然后有测试目的,我们有压力测试,还有那种集成测试

我们有测试计划的,什么时候测

需要哪些人,需要哪些资源。我们说这个测试范围是哪些

有哪些模块,模块之间的接口等等

有一些模拟数据,我们测试的时候不能进入到我们的生产环境

但是我们现在有很多这种工具

能够产生出非常相似的这种数据

然后呢,我们的测试本身,对测试脚本还要维护

这样看来,我们整个软件测试就是一个完整的

新的软件开发项目

在整个软件开发的活动当中,自动化程度最高的

应该说是自动化测试了

那么有的人呢,对自动化测试提出了这样一个比方

很幽默的比方,他说

我提出一个专利,我的这个专利能够自动化地杀死蟑螂

他说了,我的专利分成三部分

第一部分,让蟑螂站在这个砧板上,老老实实别动

第二步,用拍子拍一下,拍死了

第三步,把这个清洗干净

他说我这就是一个自动化地杀蟑专利

他这个幽默想说明什么呀,他想说呀

早期的自动化工具也好,自动化方法也好

它不是一种真正的自动化,比如说

在我们整个这个杀死蟑螂过程当中

核心的问题就是说,你怎么能够保证让这个蟑螂

静止地站在上面不动,让你去拍它

这是问题的关键

这么复杂的问题

这么难的一个问题,我都做到了

下面的这个自动化就没有意义了

这就是自动化杀蟑这个幽默想表达的涵义

就是说主要的工作我都做了,那自动化剩下的是没意义的

所以说,对应到我们CASE工具,

就是自动化工具来说

你看,分析设计出明确的需求规格说明书

然后建立功能点和源代码一个的CASE词典

用各种各样的工具,比如说早期的Rose

画一个类图,把各种方法属性都写好了

然后点生成,就生成了一个代码框架

有类名,有方法名,有参数

然后,函数体是空的

空的代码,这是问题的核心

对这个架子来讲,说我这个类的框子是自动生成的,意义不是很大

它对减少工作量的帮助是有限的

少敲一些字而已,但是核心部分呢,我还要自己写

这是说我们软件自动化,尤其是分析设计自动化

远远不成熟。随着技术的发展

我们在测试自动化方面

已经有了长足的进展

现在我们在测试工具里面有大量的工具

比如说,用于测试管理的,测试管理里面包括流程管理

Bug跟踪 ,就是说测试人员发现了许多Bug,这些Bug有很多状态

比如说open,我发现了。程序员修改玩之后

把它改成“已修改”,fixed

然后呢, 测试人员再确认的时候,发现没有修改对

然后reopen重新打开。也就是说我们的Bug有一个状态的转换

程序员、测试人员、经理

都基于这个Bug跟踪系统来跟踪Bug

那么还有一些测试用例管理呀

各种各样的管理工具,对测试计划,测试脚本进行

维护、更新,用于将来的复用

除了这些测试管理的,还有白盒的、黑盒的、性能的测试工具

这里边呢,有很多测试工具我们可以使用

专业的工具大都是商业的工具

公司可能需要花不少的钱来购买

但是对你提高软件质量,提高工作效率是非常有用的

那我们为什么要用测试工具呢

很明显,一个就是提高测试质量

减少重复劳动

实现测试自动化

下面我们来看一看,一些典型的

比较强大的测试工具

Load Runner,这是搞性能测试的

我们在测试的一个集合里面,它可以用一台机器运行这个软件

就可以模拟成千上万个客户端,来对服务器进行测试

可以测试它的Load,它的压力

测试它的性能。这也是一个性能的测试工具

它的主要方法就是模拟用户

每一个用户,或每一组用户都可以执行特定的动作

然后进行对Web服务器的访问或应用服务器的访问

它的测试结果可以收集下来进行分析

最后得一个模拟的结果

Winrunner是另外一个比较有名的功能测试软件

它可以模拟用户的点击操作

特别适合对系统的功能点进行回归的测试

现在我们可以总结一下,提高产品质量是我们软件开发的一个终极目标

为了达到这个目标

捉Bug是我们传统的一个活动

并且这个活动还会持续下去

但它不是一个唯一的提高产品质量的方法

更重要的实际上是需要提高我们的分析水平、设计水平和编码水平

前面我们整个开发活动的水平提高了

我们的代码里面产生的Bug就会减少

提高我们的团队管理水平和协作能力

因为有些Bug呢,本身单元测试没有问题

但是和其他人员协作的时候就会出现问题

比如说它的时序问题。这些问题与沟通有很大的关系

如果沟通不好,可能会造成在集成的时候会出现很多Bug

下一个是提高软件开发过程的开发、管理和优化

这个有点绕嘴。这个过程本身也是需要进行

设计,分析,开发和应用的

原来我们不会做过程管理,过程很混乱。我们开发出一个新的过程

然后对这个过程进行测试,然后应用,然后反馈再修改

这是对过程的一个应用

后面我们有专题要讨论这个过程

最后一块是一个质量保证,在我们的开发过程当中

引入质量保证,就不仅仅是把我们的希望寄托在测试上

从一开始,做需求分析的时候

我们要保证我的分析质量,设计的时候如何保证我们的设计质量

测试的时候保证我们的测试质量等等。这是一个软件质量保证的概念

测试的时候保证我们的测试质量等等。这是一个软件质量保证的概念

后面我们也会有专门的讨论

目前软件的测试越来越独立

有的时候,我们说,甲方乙方,我让你开发软件,给了你钱

最后你测试完了,我们信不着

我们需要第三方的、独立的测试

那么现在,出现了国家级的和省级的软件评测中心

这些评测中心,业务非常广泛

它的这种测试呀,咨询呀、这种监理呀等等

给我们提供了第三方的、公正的、客观的一个评价

这里面有一个是上海市软件评测中心

在进行软件产品登记测试的时候的一个讨论

软件生产公司,软件开发,开发完了

好,我提出申请,把我们的程序提交上去

他们审查合格之后

然后由他出具一个评测证明,说明测试通过

这样的话,这个证明就比较具有权威性,而不是我自己开发,我自己测试

这样的话这个证明就比较具有权威性,而不是我自己开发,我自己测试

这是我们将来软件测评行业进一步发展的一个趋势

好,软件测试就说这么多

软件工程与软件自动化课程列表:

第一章 软件工程基础

-1.1 软件工程的前生今世

--开篇阅读

--授课视频

-第一章 软件工程基础--1.1 软件工程的前生今世

-1.2 万变不离其宗

--授课视频1/3

--授课视频2/3

--授课视频3/3

-第一章 软件工程基础--1.2 万变不离其宗

-1.3 唯一不变的是变化

--授课视频1/3

--授课视频2/3

--授课视频3/3

--外部链接

-第一章 软件工程基础--1.3 唯一不变的是变化

-1.4 亡羊补牢为时不晚

--授课视频1/2

--授课视频2/2

-第一章 软件工程基础--1.4 亡羊补牢为时不晚

-扩展阅读与话题讨论

--扩展阅读

--话题讨论

第二章 敏捷开发

-2.1 方法论来源于恐惧

--授课视频

-第二章 敏捷开发--2.1 方法论来源于恐惧

-2.2 敏捷是什么

--授课视频

-第二章 敏捷开发--2.2 敏捷是什么

-2.3 典型敏捷开发方法

--SCRUM敏捷开发方法

--XP敏捷开发方法

-第二章 敏捷开发--2.3 典型敏捷开发方法

-2.4 敏捷不是万能药

--授课视频

-第二章 敏捷开发--2.4 敏捷不是万能药

-专家谈敏捷

--专家谈敏捷开发方法

-扩展阅读与话题讨论

--外部链接

--话题讨论

第三章 OO与UML

-3.1 面向对象核心概念和基本特性

--核心概念与基本特性

-第三章 OO与UML--3.1 面向对象核心概念和基本特性

-3.2 面向对象设计基本原则

--面向对象设计基本原则

-第三章 OO与UML--3.2 面向对象设计基本原则

-3.3 通用职责分配模式(GRASP)

--通用职责分配模式

-3.3 通用职责分配模式(GRASP)--作业

-3.4 从重构到模式

--模式和设计模式

-第三章 OO与UML--3.4 从重构到模式

-3.5 使用UML设计面向对象系统

--UML综述

-第三章 OO与UML--3.5 使用UML设计面向对象系统

-3.6 主要UML模型图绘制技巧

--UML用例图

--UML类图

--UML序列图绘制技巧

-第三章 OO与UML--3.6 主要UML模型图绘制技巧

-扩展阅读与话题讨论

--设计模式有毒么?

--话题讨论

第四章 对象模型分析

-4.1 案例简介

--书籍参考

--案例说明

-4.2 对象模型之一

--授课视频1/2

--授课视频2/2

-第四章 对象模型分析--4.2 对象模型之一

-4.3 对象模型之二

--授课视频1/2

--授课视频2/2

-第四章 对象模型分析--4.3 对象模型之二

-4.4 对象模型之交互

--授课视频

-第四章 对象模型分析--4.4 对象模型之交互

-扩展阅读与话题讨论

--图书推荐

--话题讨论

第五章 软件自动化技术

-5.1 软件自动化概述

--软件自动化概述

-第五章 软件自动化技术--5.1 软件自动化概述

-5.2 典型自动化方法和工具

--典型自动化工具视频

-第五章 软件自动化技术--5.2 典型自动化方法和工具

-5.3 文档自动化

--文档自动化视频

-第五章 软件自动化技术--5.3 文档自动化

-5.4 测试自动化

--测试自动化视频

--白盒测试工具VU的示例演示片段(版权属原作者)

--功能和性能自动化测试工具及简单应用演示

-第五章 软件自动化技术--5.4 测试自动化

-专家访谈

--北京理工大学刘辉教授谈软件自动化新进展

-扩展阅读与话题讨论

--各个开发阶段最流行的Java工具汇总

--话题讨论

第六章 CI/CD与DevOps

-6.1 持续集成

--持续集成视频1/2

--持续集成视频2/2

-第六章 CI/CD与DevOps--6.1 持续集成

-6.2 持续交付和部署

--持续交付和持续部署

-第六章 CI/CD与DevOps--6.2 持续交付和部署

-6.3 DevOps

--DevOps授课视频

-第六章 CI/CD与DevOps--6.3 DevOps

-专家访谈

--卓睿科技总架构师带来的精彩访谈

-扩展阅读与话题讨论

--DevOps专题

--话题讨论

第七章 软件质量保证

-7.1 质量和质量保证

--授课视频

-第七章 软件质量保证--7.1 质量和质量保证

-7.2 软件质量模型

--授课视频

-第七章 软件质量保证--7.2 软件质量模型

-7.3 SQA组织与职责

--授课视频

-第七章 软件质量保证--7.3 SQA组织与职责

-7.4 全面软件质量管理

--授课视频

-第七章 软件质量保证--7.4 全面软件质量管理

-专家访谈

--专家访谈

-扩展阅读与话题讨论

--外部链接

--话题讨论

第八章 软件过程改进

-8.1 软件过程综述

--授课视频

-第八章 软件过程改进--8.1 软件过程综述

-8.2 软件过程改进

--授课视频

-第八章 软件过程改进--8.2 软件过程改进

-8.3 能力成熟度模型

--授课视频

-第八章 软件过程改进--8.3 能力成熟度模型

-8.4 过程改进标准框架

--授课视频

-第八章 软件过程改进--8.4 过程改进标准框架

-扩展阅读与话题讨论

--敏捷和CMM矛盾么?

--话题讨论

第九章 软件复用

-9.1软件复用综述

--授课视频

-第九章 软件复用--9.1软件复用综述

-9.2 软件构件技术

--授课视频

-第九章 软件复用--9.2 软件构件技术

-9.3 软件复用实施

--授课视频

-第九章 软件复用--9.3 软件复用实施

-9.4 微服务架构

--授课视频

-第九章 软件复用--9.4 微服务架构

-扩展阅读与话题讨论

--微服务扩展

--话题讨论

文档提交处

-文档提交处--文档提交

授课视频2/2笔记与讨论

也许你还感兴趣的课程:

© 柠檬大学-慕课导航 课程版权归原始院校所有,
本网站仅通过互联网进行慕课课程索引,不提供在线课程学习和视频,请同学们点击报名到课程提供网站进行学习。