现在的位置: 首页 > 综合 > 正文

[转载]关于软件测试的未来的几点预测

2013年11月10日 ⁄ 综合 ⁄ 共 5113字 ⁄ 字号 评论关闭
orlog 发表于 2005-1-5 15:52:24
关于软件测试的未来的几点预测

废话少说, 想想业界的软件测试的现状吧! 我的第一个预测便是: 未来的软件测试一定和如今有很大的不同, ------ 原因很简单: 现在, 软件测试在很大程度上可以说是陷入了一种困境: 普遍存在的测试人员的各种抱怨, 普遍存在的紧张的测试和开发人员之间的关系, 而测试本身在项目进程中介入得太迟, 作用不大, 收效甚小. 如果我们真正想关心软件产品的质量, 我们就该重新思考一下测试的方法和质量了.
甚至可以说, 如果我们采取更好的测试方法, 给他们以更好的培训和更大的尊重, 我们的软件产业将为之改观. 进一步说, 可执行的需求规格, 基于模型的测试脚本的生成, Bug预防和系统模拟, 这些技术将在软件的大舞台上发挥更大的作用.
在未来的几年, 关于软件测试我们可预测以下几点内容, 其中有些正在成为现实.

测试人员, 需求分析师和开发人员在工作中通力合作
测试人员协助需求分析师
测试人员甚至在需求制定的过程中就介入进来, 对需求加以理解和评审. 介入得越早, 就越早暴露那些需求上的一致性,完整性以及不确定性的问题, 此时发现问题比后来发现代价小得多.
需求分析师协助测试人员
测试小组建立模型, 生成待测程序的逻辑行为, 需求分析师则对这些模型进行评审, 以确保模型全面覆盖了程序的全部功能, 评审后的测试模型则成为’可执行的需求规格’.
测试人员协助开发人员
基于清晰明了的需求, 开发人员就能够对自己的代码到底要完成什么功能有更透彻的理解. 在程序正式提交测试人员之前, 测试人员可向开发人员提供轻量级的测试模型, 以便他们自己运行, 以期Bug在更早的时间发现.
开发人员协助测试人员
开发人员在他们的代码中加入充分的标识, 以便这些标识被自动测试工具捕捉, 这样就增强了程序的可测性, 出现的Bug也更容易被捕捉和调试.
测试人员之间的帮助
因为不同程序和不同模块的测试脚本以一种高级语言加以模型化, 不同的测试人员就能相互评审测试模型, 相互提高, 这样就更有利于测试精英的产生.

更为先进的测试方法和测试度量
Bug预防和早期发现
未来, 我们强调的是所发布的产品的总体质量, 而不是自始至终你发现了多少Bug, 因此我们将更重视Bug预防措施, Bug侦测和静态分析工具.
软件测试中的模拟工具
模拟工具将变得非常普遍, 是我们极容易模拟真正的计算机环境, 以期在开发过程的早期就能够发现程序中的异常和路径错误. 当代码稳定以后, 在对这种模拟是否精确进行进一步的验证.
及时型(Just-in-time)测试案例
Massive test case management systems are a thing of the past. Most tests are generated on the fly. Test cases are no longer stored away like rotting inventory, so it is easy to keep tests up to date.
那种管理大量的测试案例的系统即将成为过去. 更多的测试将实时地进行.
Positive Metrics
Misleading metrics, such as bug counts and test case counts, are dead. Useful metrics, such as spec coverage, model coverage, and code coverage, drive the projects.

Fewer Testers, Better Testers
Machines now perform much of the mundane work that testers previously did creating tests. Teams require fewer testers, and the testers who remain are more highly trained. Their work is more interesting to them because they are focused on bigger issues in their tests rather than slogging through grunt work.

More Tests, Better Tests
Testers can now generate millions of tests on any day, so the challenge becomes how to run the most useful tests first. Combinatorial tools allow testers to prioritize their testing and aim their test runs at the areas most likely to have significant bugs.

Roles Will Change for Testers

Distinctions Blur in Testing
Work in the testing field blurs the line between people who only specialize in hands-on testing and those who only create test tools. A new specialty emerges that encompasses both "testers who like to break things via programs" and "programmers who like to create programs that break things" – people in newsgroups debate endlessly about what to call the new specialty.

Boundaries Blur Between Testing and Development
Testers and developers work in tandem to produce testable, high-quality code. Testers help iron out spec issues to make the developer's job easier, and developers create cleaner, more testable code to make the tester's job easier.

Feedback from Customers Becomes Integrated with Testing
The quality of deliverables becomes higher. Testers routinely conduct root cause analyses. We ask questions such as "How did we miss this bug?" and "How can we prevent this type of bug in the future?" We work to delight our customers.

New Challenges Emerge
The sophisticated and interconnected environment of the computing world guarantees that new problems such as security testing continue to keep testers running hard. This is OK—testers find these challenges invigorating.

Testers Get Respect
Testers are no longer called in at the last moment to "pound on the product." They provide a visible, vital, value-added service throughout the software development process. People realize that testing can be rewarding, interesting, and even fun.

Testing Gets Trendy
Software testers start to hold their heads high. And, because breaking stuff is at least as much fun as building it, people begin to rotate between positions in development and testing. Everyone learns more about what makes good code.

Adrenaline Junkies Move On
The new process works so well that spec writers, developers, and testers end up having lives. This is disconcerting to some who were raised in the adrenaline-charged world of late-night, last-minute, firefighting sessions. These people gravitate to companies that remain out of control.

Elvis Presley Is Discovered Working as a Software Tester
The giveaway is his conference paper titled “Software Quality: It’s Now or Never”.

Prepare for the future today

Whether or not my predictions come true, the future is on its way. Here are five ideas for how you can prepare to meet it:
1. Get Actively Dissatisfied
Don't accept the current state of testing. Look around and think, "What are we doing that makes no sense?"

2. Push the Envelope
Figure out how to test better and share that knowledge. Overall quality will improve only if everyone seeks to make the code they are working on the best it can be.

3. Learn More about Testing
At this moment, the industry is exploding with innovative software testing ideas. Go to conferences, join mailing lists, and scour the Web to see what is happening on the cutting edge of testing.

4. Learn More about Development
Take a programming class. Even if you don't plan to write significant amounts of code, view the class as a reconnaissance flight over bug territory.

5. Change the World!
As PC pioneer Alan Kay said: "The best way to predict the future is to invent it."

For more info:

On executable specs: “Executable Specifications: Creating Testable, Enforceable Designs”

On model-based testing: “Intelligent Test Automation”

On system simulation: “Software’s Invisible Users”

About the Author Harry Robinson is Test Architect for Microsoft's Enterprise Management Division. In addition to his day job, he teaches classes on advanced software test automation and is a driving force behind Microsoft's model-based testing initiative. He has been at Microsoft for five years and has a Bachelors and Masters in Electrical Engineering. You can reach him at harryr@microsoft.com. Back to Top

抱歉!评论已关闭.