January/February 2018 issue of acmqueue

The January/February issue of acmqueue is out now

Quality Assurance

  Download PDF version of this article PDF

ITEM not available


Originally published in Queue vol. 9, no. 8
see this item in the ACM Digital Library



Robert Guo - MongoDB's JavaScript Fuzzer
The fuzzer is for those edge cases that your testing didn't catch.

Robert V. Binder, Bruno Legeard, Anne Kramer - Model-based Testing: Where Does It Stand?
MBT has positive effects on efficiency and effectiveness, even if it only partially fulfills high expectations.

Terry Coatta, Michael Donat, Jafar Husain - Automated QA Testing at EA: Driven by Events
A discussion with Michael Donat, Jafar Husain, and Terry Coatta

James Roche - Adopting DevOps Practices in Quality Assurance
Merging the art and science of software development


(newest first)

George Romanski | Tue, 06 Sep 2011 16:43:29 UTC

For the Reverse Engineering Research report, our definition of Reverse Engineering is:

The use of one or more development processes which result in representations of the software for the target computer environment, and these processes are analytical techniques using information from a representation at a level closer to the target computer environment to produce representations at a more abstract level.

The key words are information-flow, development-process, and levels of abstraction. Note that if your development process is not well controlled, it may be difficult to tell if Reverse Engineering is used or not.

-- George

B. Scott Andersen | Thu, 01 Sep 2011 18:27:31 UTC

If working though a waterfall process from requirements, to designs, to code is "forward engineering" then "reverse engineering" is going backwards through that chain. Typically, the code has already been developed but the other artifacts have not. So, using the code and any other materials that might be at hand (such as industry standards for protocols, for examples, or user manuals that describe APIs for a software product, or anything else that is helpful) designs and requirements can be created.

This is "backwards" from the typical way people think about software engineering: doing requirements and designs first--which is why it is called "reverse engineering".

-- Scott

Poul-Henning Kamp | Wed, 31 Aug 2011 13:15:53 UTC

It is a bit unclear to me what the term "reverse-engineering" covers in this article. Is it considered "reverse engineering" to read the source-code of a library function, to figure out some aspect of its behaviour, if the documentation does not answer the question ?

Leave this field empty

Post a Comment:

© 2018 ACM, Inc. All Rights Reserved.