Industry News, Trends and Technology, and Standards Updates

Cimetrix Book Club: "The Art of Unit Testing"

Posted by Westley Kirkham; QE Engineer on Oct 27, 2020 10:56:00 AM

Cimetrix-book-club-1Today’s blog posting highlights the latest and most recent activity with the Cimetrix Book Club. Our employees constantly strive to develop their skills, share information, and keep up to date with the industry. Part of this effort includes an employee book club that involves many of our team members each month, and from time to time we cover some of their favorites here on our blog!

Today's book is titled "The Art of Unit Testing" by Roy Osherove. The book review is by Westley Kirkham, a Quality Engineer based in Salt Lake City, UT, USA.

“The Art of Unit Testing” guides the reader step by step from writing the first simple tests to developing robust test sets that are trustworthy, maintainable and readable.

In the first section, Osherove explains what a unit test is, the properties of good unit tests, and why they are so important. The lion's share is dedicated to the nitty-gritty of writing and maintaining unit tests specifically, and testing suites generally. The first part of the section goes in depth to show how Mocks, Stubs and Isolation frameworks are used to test your code. The last section discusses how to deal with resistance to change from co-workers and management if you're trying to introduce Test-Driven Development or Agile methodologies, as well as how to deal with legacy code. Osherove also shares his insights on what tools he believes are the best aids in unit testing. ReSharper is one of his favorites, but he also reviews Nsubstitute, Moq, CodeRush and others.
book-club-art-of-unit-testing

One section that stood out to our team was Osherove's three pillars of a good unit test—trustworthiness, maintainability, and readability.

Trustworthy tests are up-to-date, simple and correct. There are no duplicate tests, and they do not test any old functionality or functionality that has been removed. The unit test only tests one item and doesn't conflict with other tests. The bugs the test finds are actual bugs in the code, and not bugs in the test.

Maintainable tests are flexible, and don't break with each minor change to the product. The tests are isolated. They are not over-specified and they are parameterized.

Readable tests are easy to understand and do not require the developer or tester who comes after you to spend extra time understanding what you've written. The test names are descriptive, and the asserts are meaningful. Any failures or issues caught will lead the developer in the right direction.

These three pillars should apply to all that we write, not just tests.

At Cimetrix, much of what Osherove teaches is already integrated into our engineering culture. As part of our implementation of Agile, developers write unit tests to verify that the functionality they have coded is correct. It is then reviewed by another developer and a member of the QE team to ensure that common use cases and important edge cases are covered and that the functionality is complete. All code must follow naming conventions and styles verified through ReSharper. For all of our products, unit tests are run on each build, and integration tests are run nightly.

Osherove's lessons on unit testing implementation, testing suite organization, and test-driven development integration are simple and practical. This book would benefit any team looking to improve the fidelity of its software products and the efficiency of its engineers.

Topics: Cimetrix Company Culture, Programming Tools, Smart Manufacturing/Industry 4.0, Book Club

Cimetrix Book Club: "Don't Make Me Think"

Posted by Gabe Hanson: Software Engineer on Sep 18, 2019 11:38:00 AM

Cimetrix-book-club-1Today is our next edition of the Cimetrix Book Club. Our employees are always striving to develop their skills, share information, and keep up to date with the industry. Part of this effort includes an employee book club that involves many of our team members each month. We will cover some of their favorites from time-to-time here on our blog!

Today's book is called "Don't Make Me Think (Revisited)" by Steve Krug. The book review is by Gabe Hanson, a Software Engineer based in Salt Lake City, UT, USA.

dont-make-me-think-1This short but dense book was written to guide software developers through their journey of building user interfaces. While it was targeted specifically for web and mobile user interfaces, the general topics and suggestions presented will benefit almost anyone developing any kind of software. The general theme of the book ties directly with the title: make the end user think as little as possible while using your software.

The book covers topics ranging from general design philosophies, to optimal user interface experiences, and even more nuanced topics like accessibility considerations and color themes. Each of the 13 chapters presents common usability issues found throughout the stages of building a website or mobile application, and discusses how a developer might approach mitigating such problems. For example, chapter 6 discusses how one might build a website that is easy to navigate by using the concepts of "street signs" to help guide the user through your website. This chapter explains simple ways of constructing web pages with easily-locatable buttons and other kinds of navigation techniques to prevent the user from getting lost, frustrated, and eventually leaving your website.

We found chapters like these most valuable because these same ideas can apply to almost every piece of software we build for the manufacturing industry. Given the potentially complicated nature of navigating through an equipment's control software, it is important we design our software to be easy to use and navigate. Not just for convenience, but to reduce user error - something that can help avoid mistakes costing potentially millions of dollars.

Not only was reading the book educational, but it presented itself in a very entertaining and engaging way. Most of the pages contain humorous illustrations and simple diagrams to explain the points the author makes. One could argue the book itself incorporates some of the lessons it teaches, by helping the reader easily digest the points presented; to not "make them think so hard" about the complicated and subjective process of designing a simple yet complex piece of software.

I can safely say this book is recommended for any and all software teams aiming to build software that is easily usable for all sorts of end-users. Our team found this book to be an excellent guide in constructing software that is not only useful but easy to use.

Topics: Cimetrix Company Culture, Programming Tools, Smart Manufacturing/Industry 4.0, Book Club

Cimetrix Blog Series Round-up

Posted by Kimberly Daich; Director of Marketing on Aug 8, 2019 12:08:59 PM

For the last couple of years, we have published a number of beneficial series in this forum to help contribute to the understanding of many of the standards in the manufacturing industry. In case you missed some of them, we are going to re-cap and link to the most popular today.

GEM Features and Benefits

This series features 15 separate posts with videos and information on some of the most important aspects of the GEM (SECS/GEM) standard. This series is one of our most popular ever and was written by a number of the Cimetrix engineering team who have studied and practiced GEM for many years.

EDA Application and Benefits in Smart Manufacturing

With the adoption of the latest SEMI EDA (Equipment Data Acquisition, also known as Interface A) standards accelerating significantly over the past 2 years, we felt it was time to highlight the applications across the industry that make the best use of these standards, and the specific manufacturing benefits that result. 

Models in Smart Manufacturing

In this series, we highlighted the importance of explicit and standardized models in the context of equipment communications interfaces and some of the “smart” factory applications they support. 

EDA Testing

Since the EDA/Interface A adoption process has now clearly reached critical mass, we must seriously address the question “How are we going to test the equipment and systems that incorporate these standards?” This is an excellent question, and one that has a multi-part answer, which is addressed in this 6-part series.

These, and many others including a the Cimetrix Book Club and Meet-the-Team series are some of what you can find on our blog. Be sure to subscribe today!

Subscribe Today

Topics: Industry Highlights, Doing Business with Cimetrix, SECS/GEM Features & Benefits Series, EDA in Smart Manufacturing Series, EDA Testing Series, Meet Our Team, Book Club

Cimetrix Book Club: "Microsoft Visual C# Step by Step – Eighth Edition"

Posted by Richard Andrew; Software Engineer on Jul 24, 2019 11:23:00 AM

Cimetrix-book-club-1Today is our next edition of the Cimetrix Book Club. Our employees are always striving to develop their skills, share information, and keep up to date with the industry. Part of this effort includes an employee book club that involves many of our team members each month. We will cover some of their favorites from time-to-time here on our blog!

Today's book is called "Microsoft Visual C# Step by Step – Eighth Edition" by John Sharp. The book review is by Richard Andrew, a Software Engineer based in Salt Lake City, UT, USA.book-club-microsoftThis book was designed to be an overview of the programming language, C# and cover the breadth of most topics while delving in depth on some of the topics.  It was designed to be helpful for even the most novice developers while still being useful to advanced programmers looking to sharpen their craft.  This was perfect for our group because we had a mix of aspiring developers (or developers who hadn’t spent much time programming yet), experienced developers who were new to C#, and experienced developers just looking to get better and learn new things about the language and about best practices.

The Book was split up into four sections. The first two sections focused on general programming practices and structure that are important to any programming language but written in a way that was applicable for C#. These sections mainly focused on breadth and covering many topics. This was especially helpful for our aspiring developers and the developers who were just learning or becoming familiar with C#. For our more experienced developers, these sections were more of review or relearning what they already knew.

Section three dove deeper into more advanced programming topics and provided a good overview for some of our novice developers, but it was really geared for a more experienced developer. This section talked about generics, collections, event handling and querying expressions. Lots of new tools to add to our kits.

Section four focused primarily on building Graphical User Interfaces (GUIs) with C#, and the author specifically chose to highlight using UWP applications (Universal Windows Platform). This section on the surface seemed to be less relevant to what we were working on. But after reading and looking looking at the code behind it, it became very relatable to WPF (Windows Presentation Foundation), which is an application we use in our products. This section was also extremely helpful for anybody seeking to become Microsoft Certified. As we currently have several engineers in our group striving to become Microsoft Certified, this section was helpful preparation. 

All in all this book was excellent for our team. It gave an introduction and an overview to our novice developers while still providing a lot of education to our more experienced developers. A great thing about this book were the examples in each section that, when we really dug in, gave us rich knowledge and context to everything the author was trying to convey. You really get out what you put into the study of this book. 

Topics: Cimetrix Company Culture, Programming Tools, Smart Manufacturing/Industry 4.0, Book Club

Cimetrix Book Club: "Agile Testing: A Practical Guide for Testers and Agile Teams" by Lisa Crispin and Janet Gregory

Posted by Morgan Kap; QE Engineer on Jun 5, 2019 10:30:00 AM

Cimetrix-book-club-1Today we are introducing the Cimetrix Book Club on our blog. Our employees are always striving to develop their skills, share information, and keep up to date with the industry. Part of this effort includes an employee book club that involves many of our team members each month. We will cover some of their favorites from time-to-time here on our blog!

Today's book is called "Agile Testing: A Practical Guide for Testers and Agile Teams" by Lisa Crispin and Janet Gregory, two of the industry’s most experienced agile testing practitioners and consultants. The book review is by Morgan Kap, a QE Engineer based in Salt Lake City, UT, USA.Agile-testing-bookclub-1This book on agile testing is a great high-level explanation of how testing fits into an agile development team. The focus of this book is on how to successfully transition a team to an agile methodology, or to create a new QE/testing team in an agile methodology. While our team was already practicing agile before we read the book, it had quite a bit of valuable knowledge that led our team to make changes in how we tackle daily testing tasks.

One of the main changes we made immediately was to slightly restructure our team, and we have become a more effective team as a result. This book on Agile Testing is full of real-world stories of testing success and failures. These stories show the importance of techniques and tools, outlined for easy understanding in the book, for developing an efficient and complete testing process.

Some of the major focus points include being test driven during development and the many benefits this can create for all types of projects. Another focus details the many ways a software product should be tested; from security to usability. There is even a chapter focusing on how an office’s culture can have an impact on testing. This topic led to our team to try a few new things to make our culture more fun and interesting. This now includes having rubber ducks on every desk - that's a long-story, but we love it.

Overall, "Agile Testing: A Practical Guide for Testers and Agile Teams" by Lisa Crispin and Janet Gregory, is a great starting point for those quality engineering teams that searching for ideas and way to improve and understand many of the important aspects of testing software. 

Topics: Cimetrix Company Culture, Smart Manufacturing/Industry 4.0, Book Club