How to find semantic duplicates in requirements documents

Have you ever read a text and suddenly felt like you had a déjà vu? Maybe this happened because you came across a sentence that was very similar to one that you already read before. We call this semantic duplicates.

snip of the semantic duplicate performance of the Scout tool

Semantic duplicates can happen because we think one specific instruction is so important that we simply have to repeat it. But often semantic duplicates arise from simply copy-pasting text. First, semantic duplicates can lead to inconsistency within the requirements. In detail, if there are two similar sentences that explain the same requirement, the same requirement can be interpreted in two different ways. Second, if the sentences are not just similar, but rather a copy of each other, it makes the copy simply superfluous. However, semantic duplicates are redundant, which is why we decided to tackle this problem.

Continue reading How to find semantic duplicates in requirements documents

Detecting Cause-Effect Relations in Natural Language

Anyone who has used a recent version of Specmate might has already seen an amazing new feature. In the overview screen of any Cause-Effect-Graph is now an anoccurus little button titled “Generate Model”. Clicking this button will trigger a chain of systems, that is capable of using natural language processing to turn a sentence like

If the user has no login, and login is needed, or an error is detected, a warning window is shown and a signal is emitted.

directly into a CEG, without any additional work from the user:

In this article we will do a deep dive into this feature, have a look at the natural language processing (NLP) pipeline required to make such a system work, see different approaches to implement it, and figure out how to garner the power of natural language processing for our goals.

Continue reading Detecting Cause-Effect Relations in Natural Language

BRAND NEW!!! Test Smell Plugin for VSTS DevOps

Test Smell Detection improves your manual test cases. The automatic detection of test smells helps making your test suite easy to understand and easy to maintain. In addition, the automatic detection also leads to consistent reproducible test results.

The best way to find test smells is our Qualicen Scout. Scout can detect test smells in textual test descriptions automatically. Configured once, it immediately shows where you can improve your test descriptions.

What kind of improvements you ask? Well, there is a wide variety of so called “Test Smells” Scout can automatically detect! Test smells are words, phrases, or language constructs that are not good for your test quality.  For example, …

  • ambiguous phrases in your test descriptions (a threat to reproducible test results).
  • sentences/paragraphs that are difficult to comprehend (prevents that your colleagues ask: “eh, what?”)
  • tests having multiple flows (shouldn’t a test focus on just one case?).
  • steps that have been copied between test cases (super annoying to keep in sync when things change).
  • and many more …

Two examples of how tests should not be written.

Continue reading BRAND NEW!!! Test Smell Plugin for VSTS DevOps

Getting Started With the SPES System Modeling Framework

We observe that numerous cyber-physical systems are rapidly gaining functionality and thus development gets more and more complex. Innovations are made possible in many areas by a complex interaction of sensor systems and software. Consider the development of autonomous driving, in which a multitude of different system functions must interact safely with one another in order to make complex decisions with the highest quality in order to transport people safely. In order to master the complexity, the classical, document-centered approaches of system engineering are no longer sufficient and are increasingly being replaced by model-based systems engineering (MBSE) approaches.

The SPES modeling framework provides a comprehensive, tool- and modeling language-independent method for MBSE. It offers a whole range of concrete models, modeling techniques and activities. In this blog post, I will introduce you gently to SPES. I will explain the basic principles of SPES and give some pointers where to find more.

Continue reading Getting Started With the SPES System Modeling Framework

Detect more Quality Defects in your Requirements

How we investigated whether our Qualicen Scout is a useful tool for companies in the domains of software and systems engineering.

Why we wanted to answer this question

As science showed, the quality of the requirements documentation influences the subsequent activities of the software engineering process. Detecting errors late in a software engineering process leads to very expensive changes of parts of every pre-executed activity. Accordingly, we at Qualicen help our customers to assure the quality of requirements specifications before they are used in other activities.
Continue reading Detect more Quality Defects in your Requirements

How to automate Test-Design with Specmate – Part 2: End-to-End Testing of Business Processes

This article is a sequel to our blog post Structured Test-Design With Specmate – Part 1: Requirements-Based Testing published by my colleague Maximilian. So far, Maximilian introduced you to our tool Specmate –  a tool that helps you to automate your test-design. He explained how to model requirements using cause-effect-models and how to automatically generate test specifications based on them.

However, Maximilian told you only half the story (I’m sure you were already guessing that based on the Part 1 in the title. 😉 ): Not all requirements are like the ones in his examples. Many requirements are of a different nature and can’t be specified easily using cause-effect models.

In this post, I’ll demonstrate the second way of modeling requirements in Specmate: Business processes. Furthermore, I show how to generate automatically end-to-end tests based on these business processes.

Continue reading How to automate Test-Design with Specmate – Part 2: End-to-End Testing of Business Processes

Hear us speak at REConf 2018

Falls Ihr/Sie nächste Woche in München seid, kann man fast gar nicht über die REConf 2018 laufen ohne uns zu begegnen:

Keynote: “Vom Design Thinking zum Requirements Engineering: Vom Warum und Wieso zum Was und Wie”

Prof. Dr. h.c. Manfred Broy wird am Dienstag um 9 Uhr die Eröffnungs-Keynote zum Thema Design Thinking und RE halten:

Requirements Engineering ist vielleicht der wichtigste Teil der Software-Evolution. Falls es uns nicht gelingt, die Funktionalität, die der Endnutzer benötigt, korrekt zu spezifizieren, und falls es uns nicht gelingt, die geforderte Qualität korrekt zu identifizieren, besteht die Gefahr, dass ein System entwickelt wird, das nur teilweise oder vielleicht sogar völlig nutzlos ist.

Im Prinzip gibt es zwei wichtige Schritte im Prozess des Requirements Engineerings. Die größte Herausforderung ist, die benötigte Funktionalität zu finden. Das ist eine schwierige Aufgabe und Techniken wie Design Thinking können hier helfen. Design Thinking ist ganz darauf ausgerichtet, Lösungen für Probleme zu finden und diese durch die Konstruktion eines Prototyps konkret zu machen. Dies ist ein kreativer Prozess, um Ideen zu entwickeln, wie die richtige Funktionalität eines Softwaresystems ausschauen könnte. Jedoch, wenn ein Prototyp vorliegt, ist man noch weit entfernt davon, einen guten Satz von Anforderungen zu besitzen.

Deshalb ist es notwendig, eine Brücke zu finden von den Resultaten des Design Thinking-Prozesses zum Requirements Engineering, um alle Details einer Anforderungsspezifikation auszuarbeiten. Dieser Prozess ist beeinflusst von dem gewählten Entwicklungsmodell, wie etwa agiles oder konventionelles dokumentationsorientiertes Vorgehen. Design Thinking und Requirements Engineering ergänzen sich perfekt, um die kreative Identifikation der Funktionalität und der detaillierten Beschreibung der Funktionen, aber auch der Qualität von softwareintensiven Systemen sicher zu stellen.

Continue reading Hear us speak at REConf 2018

Structured Test-Design with Specmate – Part 1: Requirements-based Testing

In this blog post  I am going to introduce Specmate, the result of a research project I have been involved into. It is an open-source tool to automate test-design, among others. This is the first post of a series in which I am going to show you some of the ideas behind Specmate.

What is test-design and why does it matter?

Test-Design is the activity to come up with the right test-cases for a piece of functionality. But what are the right test-cases? There are many criteria, depending on your focus. For me, there are two main points:

  • First, they should test the right content. That means, they relate to the requirements for this functionality and cover every aspect that the requirements talk about. They should hence be able to find faults: deviations of the implementation with respect to the specification.
  • Second, they should be feasible. That means, it should be possible to execute the test-cases without wasting resources.

Continue reading Structured Test-Design with Specmate – Part 1: Requirements-based Testing