[2022软工第二次作业]软件评测——CSDN技能树

项目 内容
这个作业属于哪个课程 2022年北航敏捷软件工程
这个作业的要求在哪里 个人作业-软件案例分析
我在这个课程的目标是 学习到软件工程的方法论,了解整个过程,并进行亲自实践
这个作业在哪个具体方面帮助我实现目标 对软件测试有了更深入的理解

如今,计算机在已经紧密结合在各个领域中,越来越多的同学们需要找到学习计算机知识的途径。本篇博客将对CSDN上的三种技能树进行评测:

  • python技能树
  • c技能树
  • cs技能树

同时将技术树与类似网站进行对比分析优缺点。

调研,评测

基本体验

CSDN有网页端和手机端,这里分别体验了这两个部分。

网页端

首先登录CSDN账户。

网页端由于技能树入口设计太隐蔽,这里选择直接输入路由进入,输入路由bbs.csdn.net/skill/c.
[2022软工第二次作业]软件评测——CSDN技能树_第1张图片
选择想了解的内容,比如运算符与表达式中的“条件运算符”,进入查看具体内容。
[2022软工第二次作业]软件评测——CSDN技能树_第2张图片
在每一个小模块中,包括参考资料、练习题和交流讨论的内容。参考资料由其他博主的博客组成,主要讲解该模块中的各个知识点;练习题是包括该模块内容的练习题。交流讨论则是大家对于练习题的讨论平台。
在这里我们可以查看一下“条件运算符”的习题。
[2022软工第二次作业]软件评测——CSDN技能树_第3张图片
当我们的选择错误时,可以前往在线编辑网站notebook调试代码。
[2022软工第二次作业]软件评测——CSDN技能树_第4张图片
我们可以在交流讨论部分对习题进行讨论。
[2022软工第二次作业]软件评测——CSDN技能树_第5张图片
python技能树和cs技能树的使用情况是类似的。

手机端

首先登录CSDN账户。

手机端的使用方法与电脑端类似,区别一是手机端的入口比较明显,二是不提供代码编辑的界面。
[2022软工第二次作业]软件评测——CSDN技能树_第6张图片

功能性Bug

首先对Bug进行类别定义

星级 具体描述
较小的用户体验问题,可以实现用户功能
⭐⭐ 较大的用户体验问题,可以实现用户功能
⭐⭐⭐ 严重的用户体验问题,用户功能不保证能实现,一定的安全漏洞
⭐⭐⭐⭐ 严重的安全漏洞,用户功能完全不能实现,系统出现较大问题
⭐⭐⭐⭐⭐ 致命性的安全问题,致命性的系统漏洞,用户信息可以被窃取和泄露

参考资料指向博客不存在

  • 测试环境
    • 操作系统:Windows 10(内核版本号:19042.1586)
    • 软件版本:csdn网页版
  • 可复现性
    • 必然可复现的
    • 复现流程
      • 进入C语言技能树
      • 选择数据类型-基本数据类型
      • 点击参考资料第一个(C语言基本数据类型,整型,浮点型,字符类型【 数据类型—基本类型】)
      • 发现显示内容不存在
    • 情况截图
      [2022软工第二次作业]软件评测——CSDN技能树_第7张图片
    • Bug说明:截图中左侧的图片显示查找的内容并不存在
  • Bug分析
    • 从系统功能来说,执行的逻辑并不完整,没有考虑到文章不存在的情况
    • 从安全性来说,没有太多的影响
    • 从用户体验来说,非常影响使用技能树人的感受,因为一篇不存在的文章会给用户带来“我这块知识没学会”的感觉
    • 综合上面三点,该Bug的星级为⭐⭐⭐
    • 修复该Bug,需要技能树在参考资料引用中首先判断引用的文章是否处于可展示状态,若不存在则将不在参考资料引用中的显示。这里需要对数据库后端的逻辑进行鲁棒性修改

Notebook调试代码功能无法使用

  • 测试环境
    • 操作系统:Windows 10(内核版本号:19042.1586)
    • 软件版本:csdn网页版
  • 可复现性
    • 必然可复现的
    • 复现流程
      • 进入CS技能树
      • 选择Git入门-Git简介
      • 点击练习题(Git简介)
      • 选择一个答案
      • 点击前往notebook调试代码
    • 情况截图
      [2022软工第二次作业]软件评测——CSDN技能树_第8张图片
    • Bug说明:截图中图片中间显示该服务已经下线
  • Bug分析
    • 从系统功能来说,执行的逻辑并不完整,没有考虑到Notebook服务下线的可能性
    • 从安全性来说,显示了一个正在维护的功能。对服务器是有一定压力的,如果工作人员还在测试该服务,会对整个服务安全性有影响
    • 从用户体验来说,非常影响使用技能树的感受。当用户完成练习题时发现可以调试代码的功能时是可以带来兴奋感受的,但用户发现该功能并不能用使这种落差感也非常大
    • 综合上面三点,该Bug的星级为⭐⭐⭐⭐
    • 修复该Bug,仅需要在Notebook下线的时候修改前端页面关于Notebook功能的展示。

评论区隐藏评论数有误

  • 测试环境
    • 操作系统:HarmonyOS(内核版本号:2.0.0)
    • 软件版本:csdn手机版
  • 可复现性
    • 必然可复现的
    • 复现流程
      • 进入Python技能树
      • 选择预备知识-Python简介
      • 点击参考资料第一个(【技能树】预备知识-Python简介)
      • 进入帖中查看评论,可以看到有帖子显示“展开7条回复”
      • 点击后发现只多了4条回复
      • 情况截图[2022软工第二次作业]软件评测——CSDN技能树_第9张图片
    • Bug说明:截屏左图为点击回复之前的状态,右图为点击回复之后的情况,可以发现是总共7条回复而不是展开7条回复
  • Bug分析
    • 从系统功能来说,执行的逻辑错误
    • 从安全性来说,没有太多的影响
    • 从用户体验来说,基本上没有太大影响,仅仅是能让用户感受到显示的“错误”,完全可以实现用户功能
    • 综合上面三点,该Bug的星级为⭐
    • 修复该Bug,需要后端在计算展开评论数时,减低去已经显示的评论数即可

功能优缺点分析

优点

  • 覆盖的知识点范围非常全面,基本上可以满足用户对于知识的广泛了解
  • 每个小章节都有对应的练习题,可以加深用户对于内容的理解
  • 对于练习题还设置了相应的交流讨论贴,可以便于大家进行答疑解惑

缺点

  • 网页端的入口非常难找到,完全不利于用户的使用
  • 参考资料的质量参差不齐:有些博客的代码都无法通过编译,在C语言技能树中有些C++的博客
  • 练习题数量太少,一般模块只有一到两道练习题
  • 在技能树中没有提供搜索功能
  • 技能树讲解的逻辑有些问题:在Linux入门中先介绍Linux命令最后才介绍Linux的安装

结论

类别 描述 评分(满分 10 分, 良好 6 分, 及格 4 分,聊胜于无 1 分, 很差 -3 分)
核心功能 高质量设计完成了核心功能 4(有广泛的知识内容,但质量参差不齐)
细节 为用户考虑的细节 4(设计时提供了在线代码的功能)
用户体验 当用户完成功能时,不干扰用 6(没有广告弹窗等)
辅助功能 辅助功能比如皮肤 1(没有特殊的其他辅助功能)
差异化功能 软件独特的功能 1(没有独特的功能)
软件的效能 占用内存、启动速度 6(集成在CSDN社区,启动速度较快,内存占用还好)
软件自适应性 在联网/断网、不同屏幕、有无鼠标、不同平台下都可以顺畅操作 6(在手机端和电脑端都可顺利使用)
成长性 记住用户的选择, 适应用户的特点 4(可以记住用户之前答过的问题)
用户控制权 系统状态有反馈,等待时间要合适。关键操作有确认提示,有明确的错误信息 4(等待延时有时较大,关键操作提示还不错)
推广性 是否能被广泛推广 6(基于CSDN平台,用户数量多)

总的来说,我对该项目程度是:一般

用户采访

采访对象

欧阳老师班同学。选择她做为采访对象主要有下面两项考虑:

  • 平时经常使用c语言,需要找到可以完整梳理内容的平台
  • 对学习知识非常渴望

采访内容

  • 使用内容:c语言技能树

  • 项目亮点:根据技能树目录能够比较快地定位我想要查找的知识点,然后能够看到对应汇总的质量相对好的文章,还可以做练习;界面风格比较简洁,各功能划分清晰,比较好上手

  • 项目问题:做题模块,没有答案解析;没有的错题记录

  • 用户体验改进:技能树的展示,有一个路线图来展示用户的学习过程,这样会更清晰,可视化做得好的话也会带来成就感

  • 项目打分(满分100分):80

  • 是否推荐:,一些线上教程/慕课更适合系统学习;技能树知识没有很成体系。

分析

使用此服务的所有功能,估计这个软件/网站/服务做到这个程度大约需要多少时间(团队人数6人左右,计算机大学毕业生,并有专业UI支持)

大约需要14周,下面是各周开发工作内容:

周次 任务
1 明确各人分工,调研相关产品,收集专业知识
2~3 讨论软件需求,撰写相应文档,进行相关技术培训
3~7 开发人员进行软件主体的开发,测试人员在开发中帮助测试Bug
8 发布alpha版,收集测试版用户需求,团队对开发过程进行反思分析
9~12 开发人员进行beta版的开发,测试人员在开发中帮助测试Bug
13 发布Beta版,收集用户需求和反馈
14 软件正式上线,运维人员开始工作

分析这个软件目前的优劣(和类似软件相比),这个产品的质量在同类产品中估计名列第几?

相关产品

通过在互联网上搜索,找到了菜鸟教程、W3school、C语言中文网、C语言网这些教程网站。在手机APP端找到了C语言教程、Python教程这两款APP

软件比较

CSDN技能树,相比于其他同类型软件,最大的优势在于依托于CSDN这个程序员大平台,潜在用户量非常大。

在网页端,相比于W3school和C语言中文网、C语言网,它里面的知识覆盖面积更广,而且提供了评论区的方式方便大家讨论问题。和菜鸟教程相比,做的比较好的是它提供了知识的整合(CS技能树),这样让用户能更清楚自己需要学习什么类型的知识。

在APP端,CSDN技能树也比C语言教程和Python教程这两款软件更加干净,没有广告和其他弹窗。更重要的是,CSDN技能树的内容是全部可查看的,而剩余两款软件是类似于闯关式教学,虽然一定程度能提供用户的学习热情度,但对于想跳着了解内容的同学们是非常不友好的。

它的不足点也非常多。CSDN技能树中有相当多的内容是筛选自用户博客的,这些博客内容良莠不齐,有些代码甚至无法通过编译。还有在C技能树中包括C++的内容,非常使人迷茫。在知识中没有提供代码编辑的功能,这点相比于其他软件来说是更加对新手不友好,大家在学习新知识的过程中,一般都属于做中学的状态。在手机端APP的整体UI风格没有其他两款产品做的好,比较单调古板。

结论

总的来说,CSDN在网页端排名第2,在手机端排名第2.

从各方面的问题,推理出这个软件团队在软件工程方面可以提高的一个重要方面(具体建议)

通过分析技能团队对自己产品的期待,我认为技能团队需要在需求分析中考虑更加完善。比如技能树希望帮助用户成长,像用户提供大量的基础高质量博客,那么就需要考虑如何保证博客的质量呢?一方面可以如技能团队所说通过用户的反馈来筛选内容,另一方面技能团队应该设置类似于博客评审的机制,进一步提高代码的质量,这一点在分析需求时就需要做到。

你在第一部分发现的bug,为何软件团队不能在发布前修复?他们是不知道,还是有意不修复?你觉得是什么原因?

比如第一部分中的“参考资料指向博客不存在”,我认为是软件团队具体的设计质量不高。在他们设计技能树之初没有考虑到展示博客内容不存在的情况,在测试中也没有测试相关的情况。

建议和规划

市场概况

市场有多大

Python是当下非常适用的编程语言,有大量的非程序员(以大学生、博士生和硕士生为主)需要学习相关技能。根据不完全统计,截至2021年,全国高等教育在学总规模达到3833万人。
同时程序员们也需要平台学习相关知识。根据工信部统计,截至2020年,我国软件业从业平均人数 698 万人。

直接用户和间接用户

并不是所有的CSDN社区用户都会使用技能树,因此比较难以得到直接用户的准确数量。根据技能树中各模块的介绍部分浏览量,使用技能树的直接用户应该不超过10万。
间接用户包括所有的在校大学生、CSDN的使用者。

市场现状

目前市场上有什么样的产品了

目前市场上类似的产品包括教程类和题库类。
教程类产品中,在网页端包括菜鸟教程、W3school、C语言中文网、C语言网这些网站。在手机APP包括C语言教程、Python教程这两款APP。
题库类产品中,网页端和手机APP都有计蒜客、leetcode、牛客。

上述产品的定位、优势与劣势在哪里

教程类产品

教程类网站的定位都是提供一个新手教程,从零入门一个语言。
各个软件都有自己的优势。菜鸟教程是内容广泛,提供讨论区包含各种大佬分享的心得,并且口碑在程序员中非常不错。W3school则专注于网页技术,内容深度比较高。其他两个网站则比较一般。网页端都提供了线上的代码编辑。App端C语言教程和Python教程则都是以闯关模式提供的教程,可以增加一定的趣味性。
各个软件也都有自己的劣势。菜鸟教程并不存在社区的概念,所有人都仅仅需要输入邮箱和账户即可发言。其他三个网站则知识范围广度没有特别大。App端的两个程序引入了复杂的积分制度,而且在使用过程中有很多广告弹窗,使用体验并没有特别好。

题库类产品

题库里产品篇定位是提供一个刷题的题库,用户可以通过在刷题的过程中理解知识点。
leetcode、牛客和计蒜客都包含了自己的一个社区。leetcode包含了大量求职招聘的相关经验,计蒜客则包含了学习课程和算法竞赛题库,牛客则兼具这两者的内容,打造一个大型社区。

上述产品之间呈现什么样的关系,哪些为竞品关系?以及竞争中的各方态势如何

教程类产品互相为竞争关系,其中菜鸟教程由于口碑好而且知识广泛在所有的产品中处于优势。
题库类产品互相也是竞争关系,其中leetcode由于大量希望入职的用户使用而处于优势。
题库类和教程类的软件直接基本没有竞争关系。

市场与产品生态

这个产品的核心用户群是什么样的人?典型用户是什么样的?学历,年龄,专业,爱好,收入,表面需求,潜在需求都是什么

技能树的核心用户群,包括以下两类:

  • 18~30岁之间,大学生、硕士生、博士生等非计算机专业的用户,在平时的专业学习和研究中需要用到python,需要找地方学习
  • 18~35岁之间的典型程序员,在平时工作中遇到新的技术需要快速学习,同时需要能记录自己技能树的成长

在这种情况下,用户的潜在需求包括下面几点:

  • 在技能树中能快速定位特定内容(比如实现查找功能)
  • 可以记录自己的学习历史
  • 可以在做中学,提供在线的编辑器和运行环境

产品的用户群体之间是否存在一定的关系?是否有利用其相互作用二次构成特定用户生态的可能性

产品的用户之间一个共同特定是“渴望学习”,希望不断提升自己。基于CSDN的环境下,可以搭建一个大型的学习环境平台。用户在平台上分享技能博客,不断“种植”这些技能树,提升树的内容广度和质量。

产品规划

你要在当前软件的基础上设计什么样的新功能?为何要做这个功能,而不是其他功能?为什么用户会用你的产品/功能?你的创新在哪里

我会添加的功能:提供技能树的搜索功能,可以支持搜索标题和内容,优化搜索的相关度。

  • Need 需求
    • 当前技能树包括大量知识点,用户有时学习是目的性的,因此需要搜索相关的知识点。
  • Approach 方法
    • 可以借鉴搜索引擎的方法,对数据库中的标题和正文内容进行快速对比和相似度计算,从高到低推荐到用户界面中。
  • Benefit 好处
    • 用户可以方面查找特定内容,增加用户之间的口碑
  • Competitors 竞争
    • 菜鸟教程提供了内容搜索,但是推荐引擎的相关度并不是特别相似
    • 其他软件没有提供搜索
  • Delivery 推广
    • 通过增加搜索,可以增加软件的可用性,增加用户量,进而对软件有效进行推广

如果你是项目经理,可以招聘6个人,并且有4个月的时间,你认为应该如何配置角色(开发,测试,美工等等) 才能在第16周如期发布软件的改进版本,并取得预想中的成绩,请为你的团队设计16个周期每周的详细规划

分工

开发:2人
测试:2人
美工:2人

详细规划

  • 第一周到第二周,根据团队每个人的技术栈进行分工。同时开始调研市场上其他同类产品,学习开发、测试和美工等专业知识
  • 第三到第四周讨论软件需求,开始撰写需求文档,团队之间进行相关技能的培训,讨论需要的前端美工设计
  • 第五到第八周开发人员开始进行软件主体的开发,测试人员需要在开发过程中对软件Bug进行反馈,美工人员开始进行美工设计
  • 第九周发布alpha版,大量收集用户对于软件的反馈需求,同时团队开会进行开发过程反思分析
  • 第十周到十四周,结合用户需求,开发人员进行Beta版的迭代开发,测试人员需要在开发过程中对软件Bug进行反馈,美工人员优化美工设计
  • 第十五周发布Beta版,收集用户需求和反馈
  • 第十六周软件正式上线

你可能感兴趣的:(软件工程,功能测试)