首页 » 技术资讯 » 如何实施一个合格的软件工程(测试项目都是函数需求)「软件实施怎么做」

如何实施一个合格的软件工程(测试项目都是函数需求)「软件实施怎么做」

南宫静远 2024-07-23 23:11:43 技术资讯 0

扫一扫用手机浏览

文章目录 [+]

————9102年的喵星人

这里不是以一个老工程师的角度来奉劝如何实施一款可以千经百战的软件项目,而是以一个入行两三年的技术小白收集整理的资料以飨读者。
好的,正式开始。

零 没有明确的需求都是虾扯蛋

如何实施一个合格的软件工程(测试项目都是函数需求) 如何实施一个合格的软件工程(测试项目都是函数需求) 技术资讯
(图片来自网络侵删)

没有做不完的项目,只有写不完的代码。
该有的需求文档一定要有,最好能够让所有人都知道,都重视起来;

一 除了编码还有很多准备工作

如何实施一个合格的软件工程(测试项目都是函数需求) 如何实施一个合格的软件工程(测试项目都是函数需求) 技术资讯
(图片来自网络侵删)

了解项目的前世今生,多口头交流,可以是继续探寻需求的本质,可以是了解项目的方向及架构目标,甚至可以是为了这个项目大家可以付出多少,所有的这些对于软件项目的开发都是有益而无害的,千万不要害怕程序员担心过多,因为对于软件项目实施成功来说,再多的准备工作都是必要的;

二 可以开始写代码了吗

当你历经千辛万苦,从项目经理那撕逼完,再从需求分析师那拿到任务计划后,也许你就马上回去抱着一颗失落的心开始编码了,这不是 一个合格程序员或项目参入者的行动。
此刻最应该做的是马上冷静下来分析自己接下来的工作以及对于项目的理解,还有哪些非软件实施的工作是可以拾遗的。
对于这个项目我该如何更好地投入,对于以后项目的发展我应该如何适应,对于我未来的职业发展这个项目能起到什么作用,想好这些后你就可以开心地开始编码了;

三 测试验证,你的项目bug还可以接受

追求最少的犯错,接受编程上的不完美

后续 持续不断地改吧

需求变了,环境变了,技术框架变了

附属:一些常规的软件开发资料

概要设计阶段:确定模块的功能和模块的接口

?软件项目相关的开发、测试、实施等流程和文档标准,熟练需求文档、设计文档、测试文档编写;

UML设计教程:https://www.cnblogs.com/wj033/p/5861709.html

![嵌入式C测试开发方案.jpg](https://upload-images.jianshu.io/upload_images/2636843-f4a2bf53e7aecea5.jpg?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)

自动化测试可以做一些重复性的测试,保证测试覆盖率,快速执行已经定型的测试用,例验证软件的改动是否会影响已有功能。
比如 LoadRunner 之类……

对于 Qt 开发客户端,尤其是嵌入式和移动应用,个人以为意义不大。
更多的时候需要自己写测试代码来跑,要么自己写,要么基于某个框架写,很少普适的自动化测试框架,你嘛事儿不干就能用的。

所以,楼主选择自己来写,方向没问题。
我自己写过一些测试工具,比如你想测试 Qt 应用的可访问性,就可以模拟按键事件、鼠标事件之类的随机发给应用,类似 Android 的 monkey 。
如果你想测试 Qt 写的服务程序,也可以使用 Qt 本身的框架来进行压力测试、并发性能测试。
根据我有限的经验,我对关键模块都是自己写测试代码来自动测试。

好像《Qt4 GUI programing 》跟郑阿奇的《Qt4编程实践》里面都有测试相关的章节,可以参考下

ps -ef|grep hemodialysis 查找程序PID并想办法通过系统调用重启

测试用例 不完整的参考 https://www.cnblogs.com/fnng/archive/2011/09/10/2173149.html

A/B 测试,简单来说,就是为同一个目标制定两个方案(比如两个页面),让一部分用户使用 A 方案,另一部分用户使用 B 方案,记录下用户的使用情况,看哪个方案更符合设计目标

黑盒:针对系统功能的测试 白盒:测试函数功能,各函数接口

![单元测试.jpg](https://upload-images.jianshu.io/upload_images/2636843-25fecdcb13eb05af.jpg?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)

设计模式

项目管理工具及代码版本控制工具

1.具有识别和控制项目风险能力,有效控制项目开发过程;

2.负责内部项目管理及与外部客户项目需求沟通,有效解决项目开发过程中遇到的质量问题和管理问题

Makefile编写

.LD连接文件 .OBJCOPY将elf可执行程序转换为二进制文件bin

调试

Gprof:应用程序性能分析工具(GNU),编译的时候在每个函数的出入口加入了profiling的代码,运行时统计程序在用户态的 执行信息,可以得到每个函数的调用次数,执行时间,调用关系等信息,简单易懂,适合于查找用户级程序的性能瓶颈,默认情况下linux系统当中都带有这个工具。

使用

①加上 -pg 选项来编译hello.c,如果要得到带注释的源码清单则需要增加 -g 选项

例:gcc -pg -g -o hello hello.c

运行应用程序:

./hello

会在当前目录下产生gmon.out文件;

②用gprof分析gmon.out文件需要把它和产生它的应用程序关联起来:

gprof hello gmon.out -p 得到每个函数占用的执行时间

gprof hello gmon.out -q 得到call graph,包含了每个函数的调用关系,调用次数,执行时间等信息。

gprof hello gmon.out -A 得到一个带注释的“源代码清单”,它会注释源码,指出每个函数的执行次数。
这需要在编译的时候增加 -g选项。

③:gprof –b 二进制程序 gmon.out >report.txt

结果:生成.txt分析文件

## 辅助工具使用

前面所得到的gmon.out并不直观,还得借助外部工具来察看,安装个外部工具

# emerge gprof2dot

使用

$ gprof2dot report.txt > test.dot

$ dot -Tpng -o test.png test.dot

![Gprof参数说明.png](https://upload-images.jianshu.io/upload_images/2636843-f75dd2dbb5088e1c.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)

标签:

相关文章