<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
  <channel>
    <title>Blog - Symflower on Symflower</title>
    <link>https://symflower.com/en/company/blog/</link>
    <description>Recent content in Blog - Symflower on Symflower</description>
    <generator>Hugo -- gohugo.io</generator>
    <language>en</language>
    <lastBuildDate>Fri, 29 Oct 2021 08:30:00 +0000</lastBuildDate><atom:link href="https://symflower.com/en/company/blog/index.xml" rel="self" type="application/rss+xml" />
    <item>
      <title>What is the Model Context Protocol (MCP)?</title>
      <link>https://symflower.com/en/company/blog/2025/model-context-protocol/</link>
      <pubDate>Wed, 04 Jun 2025 14:00:00 +0100</pubDate>
      
      <guid>https://symflower.com/en/company/blog/2025/model-context-protocol/</guid>
      <description>Tool calling and agentic workflows  Agentic systems and workflows are a hot topic in the LLM field as they help take automation efficiency with LLMs to the next level. One of the factors that makes a system or workflow agentic is the ability of the agent/LLM to use external tools, also known as function calling. Think about examples like connecting an agent to your smart home, enabling you to interact with it using natural language (voice) prompts.</description>
    </item>
    
    <item>
      <title>Function calling in LLM agents</title>
      <link>https://symflower.com/en/company/blog/2025/function-calling-llm-agents/</link>
      <pubDate>Tue, 27 May 2025 14:00:00 +0100</pubDate>
      
      <guid>https://symflower.com/en/company/blog/2025/function-calling-llm-agents/</guid>
      <description>This post provides the basics to help understand function calling in LLMs, a key capability that enables LLM agents to automate complex workflows.
 What is function calling in LLM agents? Examples of agents interacting with tools Comparing the tool calling abilities of LLMs Benchmarks for tool calling in LLMs  Berkeley Function Calling Leaderboard (BFCL) Nexus Function Calling Leaderboard (NFCL) τ-bench   Conclusion  What is function calling in LLM agents?</description>
    </item>
    
    <item>
      <title>OpenAI: GPT-4.1 Nano is the best LLM for Rust coding 👑 (Deep dives from the DevQualityEval v1.1)</title>
      <link>https://symflower.com/en/company/blog/2025/dev-quality-eval-v1.1-openai-gpt-4.1-nano-is-the-best-llm-for-rust-coding/</link>
      <pubDate>Tue, 27 May 2025 09:00:00 +0100</pubDate>
      
      <guid>https://symflower.com/en/company/blog/2025/dev-quality-eval-v1.1-openai-gpt-4.1-nano-is-the-best-llm-for-rust-coding/</guid>
      <description>SVG and higher resolution PNG  The most capable model for Rust is OpenAI: ChatGPT-4o, with GPT-4.1 Nano being the most cost-efficient choice. DeepSeek: DeepSeek V3 is the best open-weight model and Google: Gemma 3 (both 12B and 27B) shine as strong models for local deployment.
We evaluate how useful LLMs are for Rust on code generation and software engineering tasks. Which complete all their assigned tasks without issues, which models struggle already with syntax and which models generate usable code at a cheap price point?</description>
    </item>
    
    <item>
      <title>Benchmarks evaluating LLM agents for software development</title>
      <link>https://symflower.com/en/company/blog/2025/benchmarks-llm-agents/</link>
      <pubDate>Mon, 12 May 2025 14:00:00 +0100</pubDate>
      
      <guid>https://symflower.com/en/company/blog/2025/benchmarks-llm-agents/</guid>
      <description>This post provides an overview of the most useful benchmarks for evaluating LLM code generation agents and agentic software development workflows.
Table of contents:
 LLMs vs LLM agents Challenges of evaluating LLM software development agents Benchmarks for LLM coding agents  AgentBench DA-Code LiveSWEBench MLE-Bench Polyglot benchmark by Aider StackEval SWE-bench   The future of agent evaluation  We already wrote about the most handy benchmarks to compare code generation in LLMs.</description>
    </item>
    
    <item>
      <title>An introduction to LLM agents for software development</title>
      <link>https://symflower.com/en/company/blog/2025/using-llm-agents-for-software-development/</link>
      <pubDate>Mon, 21 Apr 2025 14:00:00 +0100</pubDate>
      
      <guid>https://symflower.com/en/company/blog/2025/using-llm-agents-for-software-development/</guid>
      <description>In this post, we cover the basics of using agentic workflows and LLM coding agent tools for software engineering. Read on for an introduction to agents and their capabilities, their limitations, and use cases.
How do LLM agents for software development work?  LLM agents are software systems that combine Large Language Models with other tools to perform complex tasks autonomously. In the context of coding agents, we define LLM agents as AI systems that can understand, write, and modify code, including solving complex software engineering problems, with minimal human intervention.</description>
    </item>
    
    <item>
      <title>How well can coding agents be installed with a good cheap model, transpile a repository, and then generate &amp; execute tests?</title>
      <link>https://symflower.com/en/company/blog/2025/how-well-can-coding-agents-be-installed-transpile-a-repository-and-then-generate-execute-tests/</link>
      <pubDate>Wed, 26 Mar 2025 14:00:00 +0100</pubDate>
      
      <guid>https://symflower.com/en/company/blog/2025/how-well-can-coding-agents-be-installed-transpile-a-repository-and-then-generate-execute-tests/</guid>
      <description>In this blog post, we are test-driving all major coding agents (aka. software engineering agents). We want to answer the following questions:
 Can the agent be used purely in the CLI, without any editor/GUI? How smooth is the installation? Is there isolation to prevent the agent from wreaking havoc on our machine? Can we re-configure the tool with a (cheap) LLM of our choice? Can a simple but whole repository be transpiled?</description>
    </item>
    
    <item>
      <title>Anthropic&#39;s Claude 3.7 Sonnet is the new king 👑 of code generation (but only with help), and DeepSeek R1 disappoints (Deep dives from the DevQualityEval v1.0)</title>
      <link>https://symflower.com/en/company/blog/2025/dev-quality-eval-v1.0-anthropic-s-claude-3.7-sonnet-is-the-king-with-help-and-deepseek-r1-disappoints/</link>
      <pubDate>Sun, 16 Feb 2025 14:00:00 +0100</pubDate>
      
      <guid>https://symflower.com/en/company/blog/2025/dev-quality-eval-v1.0-anthropic-s-claude-3.7-sonnet-is-the-king-with-help-and-deepseek-r1-disappoints/</guid>
      <description>SVG and higher resolution PNG  This deep dive takes a look at the results of the DevQualityEval v1.0 which analyzed 107 different LLMs for generating quality code (for Java, Go and Ruby). Anthropic&amp;rsquo;s Claude 3.5 Sonnet (2024-10-22) and OpenAI&amp;rsquo;s o1-mini (2024-09-12) have an advantage over Google&amp;rsquo;s Gemini 2.0 Flash Lite and Anthropic&amp;rsquo;s Claude 3.7 Sonnet (2025-02-19) in functional score. However, Anthropic&amp;rsquo;s Claude 3.7 Sonnet (2025-02-19) is with better context the best functional scoring model, while DeepSeek&amp;rsquo;s V3 is the best open-weight model 🔓.</description>
    </item>
    
    <item>
      <title>Tools for JUnit 4 to 5 migration</title>
      <link>https://symflower.com/en/company/blog/2024/tools-for-junit-4-to-5-migration/</link>
      <pubDate>Tue, 03 Dec 2024 08:00:00 +0100</pubDate>
      
      <guid>https://symflower.com/en/company/blog/2024/tools-for-junit-4-to-5-migration/</guid>
      <description>The process of upgrading from JUnit 4 to 5 requires you to update annotations, assertions, assumptions, dependencies, etc. There are several tools out there to (semi-) automate the upgrade process.
Upgrading to JUnit 5 brings a range of benefits, including:
 More flexibility with JUnit 5&amp;rsquo;s support for modular and extensible architectures Updated annotations including @BeforeEach, @AfterEach, @BeforeAll, and @AfterAll Flexible assertions class Powerful testing with built-in support for extensions Support for parameterized testing, conditional test execution, and dynamic tests (for testing in runtime) Support for tagging and filtering tests   👀 Differences between JUnit 4 vs JUnit 5: why upgrade?</description>
    </item>
    
    <item>
      <title>OpenAI&#39;s o1-preview is the king 👑 of code generation but is super slow and expensive (Deep dives from the DevQualityEval v0.6)</title>
      <link>https://symflower.com/en/company/blog/2024/dev-quality-eval-v0.6-o1-preview-is-the-king-of-code-generation-but-is-super-slow-and-expensive/</link>
      <pubDate>Thu, 26 Sep 2024 14:00:00 +0100</pubDate>
      
      <guid>https://symflower.com/en/company/blog/2024/dev-quality-eval-v0.6-o1-preview-is-the-king-of-code-generation-but-is-super-slow-and-expensive/</guid>
      <description>This deep dive takes a look at the results of the DevQualityEval v0.6 which analyzed over 80 different LLMs for generating quality code (for Java, Go and Ruby). OpenAI&amp;rsquo;s o1-preview and o1-mini are slightly ahead of Anthropic&amp;rsquo;s Claude 3.5 Sonnet in functional score, but are MUCH slower and chattier. DeepSeek&amp;rsquo;s v2 is still the king of cost-effectiveness, but GPT-4o-mini and Meta&amp;rsquo;s Llama 3.1 405B are catching up.
The results in this post are based on 5 full runs using DevQualityEval v0.</description>
    </item>
    
    <item>
      <title>JDK 23: What is new in Java 23?</title>
      <link>https://symflower.com/en/company/blog/2024/what-is-new-in-java-23/</link>
      <pubDate>Tue, 17 Sep 2024 08:00:00 +0100</pubDate>
      
      <guid>https://symflower.com/en/company/blog/2024/what-is-new-in-java-23/</guid>
      <description>We provide an overview and details about the features delivered in Java 23 (JDK 23) released on 17 September 2024. Read the post to learn about what is new in Java 23 and why these new and updated features are useful.
What is new in Java 23? A summary of udpates in JDK 23  The OpenJDK website for Java 23 lists the JEPs for all of the 12 features in this release.</description>
    </item>
    
    <item>
      <title>Test impact analysis: Automatically run affected tests only</title>
      <link>https://symflower.com/en/company/blog/2024/test-impact-analysis/</link>
      <pubDate>Thu, 12 Sep 2024 08:00:00 +0100</pubDate>
      
      <guid>https://symflower.com/en/company/blog/2024/test-impact-analysis/</guid>
      <description>Test impact analysis identifies tests affected by code changes to save time on test execution. Even a basic implementation leads to a 29% reduction in test execution times on average, showcased here with a benchmark of the drop-in test command symflower test-runner. In this article, you learn about common approaches and how they impact your daily software development process.
Sneak peek: benchmarking top Go repositories shows dramatic reductions in test execution time, no matter the size of the repository and change:</description>
    </item>
    
    <item>
      <title>LLM cost management: how to reduce LLM spending?</title>
      <link>https://symflower.com/en/company/blog/2024/managing-llm-costs/</link>
      <pubDate>Wed, 04 Sep 2024 08:00:00 +0100</pubDate>
      
      <guid>https://symflower.com/en/company/blog/2024/managing-llm-costs/</guid>
      <description>We cover the strategies that help you control costs when using Large Language Models to generate text or software code.
Integrating LLMs into your workflow can open up a wide range of use cases where there is a need to generate content. But the help LLMs provide doesn&amp;rsquo;t come for free, especially if you use tools that rely on external third-party LLM inference APIs.
This post focuses on managing the costs of text generation with LLMs in general.</description>
    </item>
    
    <item>
      <title>LLM observability: tools for monitoring Large Language Models</title>
      <link>https://symflower.com/en/company/blog/2024/llm-observability/</link>
      <pubDate>Thu, 29 Aug 2024 08:00:00 +0100</pubDate>
      
      <guid>https://symflower.com/en/company/blog/2024/llm-observability/</guid>
      <description>Observability helps monitor the operation of LLM-based systems. The following tools and techniques can be used to track the resources and behavior of Large Language Models (LLMs) used in production.
Implementing observability for accurate LLM monitoring helps assess and maintain the quality of any LLM-based system, reduce operational costs, find security issues, and uncover and fix blunders like the one in our DevQualityEval deep dive (where GPT-4 Turbo ended up producing a whole lot of gibberish).</description>
    </item>
    
    <item>
      <title>Transpiling Go &amp; Java to Ruby using GPT-4o &amp; Claude 3.5 Sonnet</title>
      <link>https://symflower.com/en/company/blog/2024/transpilation-with-llms/</link>
      <pubDate>Thu, 29 Aug 2024 08:00:00 +0100</pubDate>
      
      <guid>https://symflower.com/en/company/blog/2024/transpilation-with-llms/</guid>
      <description>The project was to extend our DevQualityEval LLM code generation benchmark with a new language: Ruby. We successfully used LLMs to transpile existing Java and Go code (tasks and test cases) to Ruby. The workflow of this project and our experiences are described below.
Table of contents:
 Extending the DevQualityEval with Ruby Project definition Challenges of transpiling existing code to Ruby Process:  Understanding project structure Selecting a testing framework Transpiling code: Light repository Transpiling code: Mistakes repository Transpiling code: Transpile repository   Experiences: Using LLMs to transpile Go/Java code to Ruby  Extending the DevQualityEval with Ruby  Learning a new language is hard.</description>
    </item>
    
    <item>
      <title>Using Aider AI for code generation</title>
      <link>https://symflower.com/en/company/blog/2024/using-aider-for-code-generation/</link>
      <pubDate>Fri, 09 Aug 2024 08:00:00 +0100</pubDate>
      
      <guid>https://symflower.com/en/company/blog/2024/using-aider-for-code-generation/</guid>
      <description>This post covers the use of Aider, a generative LLM-powered software engineering tool, to generate software code.
🦾 Better LLMs for software development
Symflower helps you build better software by pairing static, dynamic and symbolic analyses with LLMs. The robustness of deterministic analyses combined with the creativity of LLMs allows for higher quality and rapid software development. Learn more.
 Table of contents:
 LLM tools for software development What is Aider?</description>
    </item>
    
    <item>
      <title>The best LLM tools for software development</title>
      <link>https://symflower.com/en/company/blog/2024/ai-tools-software-testing/</link>
      <pubDate>Thu, 08 Aug 2024 08:00:00 +0100</pubDate>
      
      <guid>https://symflower.com/en/company/blog/2024/ai-tools-software-testing/</guid>
      <description>This post provides an overview of the various LLM-based generative development tools available out there. Are we missing an AI tool for coding? Let us know!
Large Language Models are now advanced enough to actually provide valuable help in software development tasks. There are a range of AI-based coding assistants and code generation tools.
If you want to use an AI model to help out in your software development workflow (whether it&amp;rsquo;s coding, documentation, or other tasks), you&amp;rsquo;ll want first to consider the security of your data.</description>
    </item>
    
    <item>
      <title>Comparing LLM benchmarks for software development</title>
      <link>https://symflower.com/en/company/blog/2024/comparing-llm-benchmarks/</link>
      <pubDate>Thu, 11 Jul 2024 08:00:00 +0100</pubDate>
      
      <guid>https://symflower.com/en/company/blog/2024/comparing-llm-benchmarks/</guid>
      <description>This post compares the various benchmarks that help rank large language models for software development tasks.
💡 A blog post series on LLM benchmarking
Read all the other posts in Symflower&amp;rsquo;s series on LLM evaluation, and check out our latest deep dive on the best LLMs for code generation.
 Part 1: LLM evaluation: How does benchmarking work? Part 2: Evaluating LLMs: complex scorers and evaluation frameworks Part 3: What are the most popular LLM benchmarks?</description>
    </item>
    
    <item>
      <title>What are the most popular LLM benchmarks?</title>
      <link>https://symflower.com/en/company/blog/2024/llm-benchmarks/</link>
      <pubDate>Wed, 10 Jul 2024 08:00:00 +0100</pubDate>
      
      <guid>https://symflower.com/en/company/blog/2024/llm-benchmarks/</guid>
      <description>This post covers the most widely used benchmarks for assessing the performance of large language models.
Table of contents:
 Why use benchmarks for LLM evaluation? The best LLM benchmarks  Reasoning, conversation, Q&amp;amp;A benchmarks  HellaSwag BIG-Bench Hard SQuAD IFEval MuSR MMLU-PRO MT-Bench   Domain-specific benchmarks  GPQA MedQA PubMedQA   Math benchmarks  GSM8K MATH MathEval   Security-related benchmarks  PyRIT Purple Llama CyberSecEval     LLM benchmarks for different domains  💡 A blog post series on LLM benchmarking</description>
    </item>
    
    <item>
      <title>Evaluating LLMs: complex scorers and evaluation frameworks</title>
      <link>https://symflower.com/en/company/blog/2024/llm-complex-scorers-evaluation-frameworks/</link>
      <pubDate>Mon, 08 Jul 2024 08:00:00 +0100</pubDate>
      
      <guid>https://symflower.com/en/company/blog/2024/llm-complex-scorers-evaluation-frameworks/</guid>
      <description>This post details the complex statistical and domain-specific scorers that you can use to evaluate the performance of large language models. It also covers the most widely used LLM evaluation frameworks to help you get started with assessing model performance.
The previous post in this series introduces LLM evaluation in general, the types of evaluation benchmarks, and how they work. We also talked about some generic metrics they use to measure LLM performance.</description>
    </item>
    
    <item>
      <title>DeepSeek v2 Coder and Claude 3.5 Sonnet are more cost-effective at code generation than GPT-4o! (Deep dives from the DevQualityEval v0.5.0)</title>
      <link>https://symflower.com/en/company/blog/2024/dev-quality-eval-v0.5.0-deepseek-v2-coder-and-claude-3.5-sonnet-beat-gpt-4o-for-cost-effectiveness-in-code-generation/</link>
      <pubDate>Thu, 04 Jul 2024 14:00:00 +0100</pubDate>
      
      <guid>https://symflower.com/en/company/blog/2024/dev-quality-eval-v0.5.0-deepseek-v2-coder-and-claude-3.5-sonnet-beat-gpt-4o-for-cost-effectiveness-in-code-generation/</guid>
      <description>This deep dive takes a look at the results of the DevQualityEval v0.5.0 which analyzed over 180 different LLMs for code generation (Java and Go). DeepSeek Coder 2 took LLama 3&amp;rsquo;s throne of cost-effectiveness, but Anthropic&amp;rsquo;s Claude 3.5 Sonnet is equally capable, less chatty and much faster.
The results in this post are based on 5 full runs using DevQualityEval v0.5.0. Detailed metrics have been extracted and are available to make it possible to reproduce findings.</description>
    </item>
    
    <item>
      <title>How does LLM benchmarking work? An introduction to evaluating models</title>
      <link>https://symflower.com/en/company/blog/2024/llm-evaluation-101/</link>
      <pubDate>Tue, 02 Jul 2024 08:00:00 +0100</pubDate>
      
      <guid>https://symflower.com/en/company/blog/2024/llm-evaluation-101/</guid>
      <description>Part 1 of our LLM evaluation series covers the basics of LLM evaluation including popular benchmarks and their metrics.
With the (generative) AI revolution raging full steam ahead, new large language models (LLM) seem to be spawning every day. There are general models and fine-tuned versions of these general models for specific purposes. Huggingface currently hosts roughly 750.000 different models. But how to pick the right one for your goals?</description>
    </item>
    
    <item>
      <title>How to write reusable code? Guide &amp; best practices for reusability in Java</title>
      <link>https://symflower.com/en/company/blog/2024/java-code-reuse/</link>
      <pubDate>Mon, 24 Jun 2024 08:05:00 +0100</pubDate>
      
      <guid>https://symflower.com/en/company/blog/2024/java-code-reuse/</guid>
      <description>In this post, we dive into code reuse and some key code reusability best practices that help you optimize Java code for reuse.
What is code reusability?  Not all code is one of a kind, highly specific, and single-use. Certain snippets of code may come in handy more than once throughout the development of an application, or may even be used across several applications.
Reusing code helps you avoid investing time and effort in redundantly developing (and testing) the same thing over and over again.</description>
    </item>
    
    <item>
      <title>Analyzing application performance: A guide to manual instrumentation with Go tracing</title>
      <link>https://symflower.com/en/company/blog/2024/go-tracing/</link>
      <pubDate>Tue, 11 Jun 2024 08:00:00 +0100</pubDate>
      
      <guid>https://symflower.com/en/company/blog/2024/go-tracing/</guid>
      <description>In this post, we look at Go tracing and its support to manually instrument applications to gain valuable insights into its execution behavior. We&amp;rsquo;ll be using a simple step-by-step example to show how this can be done in a real-life scenario, and you&amp;rsquo;ll also learn how to use the Go trace tool to analyze trace data. Finally, we&amp;rsquo;ll introduce our own visualization of the added trace events to complement the existing ones.</description>
    </item>
    
    <item>
      <title>How to reproduce and find fixes for reported software errors?</title>
      <link>https://symflower.com/en/company/blog/2024/how-to-reproduce-errors/</link>
      <pubDate>Mon, 10 Jun 2024 08:00:00 +0100</pubDate>
      
      <guid>https://symflower.com/en/company/blog/2024/how-to-reproduce-errors/</guid>
      <description>This post walks you through our approach to addressing reported software problems with Symflower. Check out this blog post about categorizing software problems with stack traces and code diffs to learn about our comprehensive problem analysis process. In this post, we&amp;rsquo;ll focus on two essential steps:
 Reproducing the problem: We will talk about the process of reproducing a reported problem in the difficult domain of program analysis. Locating the fix with Git bisect: If the problem no longer exists in the current version, we want to make sure it was fixed.</description>
    </item>
    
    <item>
      <title>What are Java modules and how to use them?</title>
      <link>https://symflower.com/en/company/blog/2024/modules-in-java/</link>
      <pubDate>Mon, 10 Jun 2024 08:00:00 +0100</pubDate>
      
      <guid>https://symflower.com/en/company/blog/2024/modules-in-java/</guid>
      <description>In this post, we dive into the details of modules in Java, covering the most important types and their differences.
What are modules in Java?  Modules are used to create separate units of software and group code together with its tests and resources. Modules can be compiled separately and can be integrated into larger programs by declaring dependencies to each other and importing them into the code.</description>
    </item>
    
    <item>
      <title>Generating test templates for 10 open-source Spring Boot applications with Symflower</title>
      <link>https://symflower.com/en/company/blog/2024/test-generation-spring-boot/</link>
      <pubDate>Wed, 05 Jun 2024 10:00:00 +0100</pubDate>
      
      <guid>https://symflower.com/en/company/blog/2024/test-generation-spring-boot/</guid>
      <description>In this post, we evaluate test template generation with Symflower in real-life, large-scale Spring Boot projects. See how we tested Symflower on 10 applications and check out the results.
Developing tests for applications involves repetitive tasks such as importing testing frameworks, adding annotations, and initializing objects. Writing all this boilerplate code can be cumbersome and time-consuming. To lift this burden, Symflower offers a solution: automatically generating boilerplate code for tests.</description>
    </item>
    
    <item>
      <title>A guide to test data initialization</title>
      <link>https://symflower.com/en/company/blog/2024/test-data-initialization/</link>
      <pubDate>Tue, 30 Apr 2024 08:00:00 +0100</pubDate>
      
      <guid>https://symflower.com/en/company/blog/2024/test-data-initialization/</guid>
      <description>In this post, we cover the three key ways of initializing test data for your unit tests: direct initialization, the Object Mother pattern, and the Test Data Builder pattern.
When testing to ensure your software applications are up to scratch, you&amp;rsquo;ll go through several phases of the testing workflow. As you start doing unit testing, you&amp;rsquo;ll inevitably need test data to test your functions against. Normally, you&amp;rsquo;ll just rely on object creation when initializing classes.</description>
    </item>
    
    <item>
      <title>Is Llama-3 better than GPT-4 for generating tests? And other deep dives of the DevQualityEval v0.4.0</title>
      <link>https://symflower.com/en/company/blog/2024/dev-quality-eval-v0.4.0-is-llama-3-better-than-gpt-4-for-generating-tests/</link>
      <pubDate>Mon, 29 Apr 2024 10:00:00 +0100</pubDate>
      
      <guid>https://symflower.com/en/company/blog/2024/dev-quality-eval-v0.4.0-is-llama-3-better-than-gpt-4-for-generating-tests/</guid>
      <description>This deep dive takes a look at the results of the DevQualityEval v0.4.0 which analyzed 138 different LLMs for code generation (Java and Go). LLama 3 is gearing up to take GPT-4&amp;rsquo;s throne, the Claude 3 family is great with Haiku being the most cost-effective, and Mistral 7B could be the next model of choice for local devices.
The results in this post are based on 5 full runs using DevQualityEval v0.</description>
    </item>
    
    <item>
      <title>From bug detection to resolution: Categorizing software problems with stack traces and code diffs</title>
      <link>https://symflower.com/en/company/blog/2024/categorizing-software-problems-with-stack-traces-and-code-diffs/</link>
      <pubDate>Wed, 10 Apr 2024 10:00:00 +0100</pubDate>
      
      <guid>https://symflower.com/en/company/blog/2024/categorizing-software-problems-with-stack-traces-and-code-diffs/</guid>
      <description>This blog post showcases Symflower&amp;rsquo;s automatic error reporting process, which involves a novel approach to categorizing huge amounts of software problems by combining stack traces and code diffs. This approach allows us to identify whether problems based on different code revisions (two different commits in your repository) actually represent the same problem. This lets us reduce hundreds of thousands of problems to only a few hundred - which we then automatically prioritize to reduce time spent and enhance debugging efficiency.</description>
    </item>
    
    <item>
      <title>Can LLMs test a Go function that does nothing?</title>
      <link>https://symflower.com/en/company/blog/2024/can-ai-test-a-go-function-that-does-nothing/</link>
      <pubDate>Fri, 05 Apr 2024 10:00:00 +0100</pubDate>
      
      <guid>https://symflower.com/en/company/blog/2024/can-ai-test-a-go-function-that-does-nothing/</guid>
      <description>In this article we are looking at an evaluation of 123 LLMs on how well they can write automated tests for an empty Go function. What code generation abilities do these LLMs already have? Which abilities do they need to evolve? And, yes, you will also see some funny and weird LLM creations. 😉
For up-to-date results, check out the latest DevQualityEval deep dive.
DevQualityEval deep dives build on each other.</description>
    </item>
    
    <item>
      <title>What is the difference between @Controller vs @RestController in Spring Boot?</title>
      <link>https://symflower.com/en/company/blog/2024/controller-restcontroller-spring-boot/</link>
      <pubDate>Sat, 16 Mar 2024 10:00:00 +0100</pubDate>
      
      <guid>https://symflower.com/en/company/blog/2024/controller-restcontroller-spring-boot/</guid>
      <description>This post covers the use of controllers in Spring Boot and describes the differences between the @Controller and @RestController annotations.
Table of contents:
 What are controllers in Spring Boot? Differences between @Controller vs @RestController in Spring Boot  How to use the @Controller annotation in Spring Boot? How to use the @RestController annotation in Spring Boot?   Controller testing in Spring Boot  Example: Using @MockMvc with @WebMvcTest to test Spring Boot controllers    Spring Boot is a popular extension to the Spring framework.</description>
    </item>
    
    <item>
      <title>A beginner&#39;s guide to unit testing 4/4: Unit testing best practices</title>
      <link>https://symflower.com/en/company/blog/2024/unit-testing-4-best-practices/</link>
      <pubDate>Fri, 15 Mar 2024 09:00:00 +0100</pubDate>
      
      <guid>https://symflower.com/en/company/blog/2024/unit-testing-4-best-practices/</guid>
      <description>In part 4 of our guide to unit testing, we list a few of the most important best practices for writing effective unit tests.
Unit tests are a powerful tool to enhance the robustness of your code. Having a good unit test suite in place generally vastly improves productivity and reduces bug fixing times. But that&amp;rsquo;s only really true if they are done right. Fail to follow some of the established best practices for unit testing and you may find that unit tests can be a serious productivity drainer not just for you, but anyone working with your code.</description>
    </item>
    
    <item>
      <title>A beginner&#39;s guide to unit testing 3/4: Automating unit tests</title>
      <link>https://symflower.com/en/company/blog/2024/unit-testing-3-automating-unit-tests/</link>
      <pubDate>Thu, 14 Mar 2024 08:00:00 +0100</pubDate>
      
      <guid>https://symflower.com/en/company/blog/2024/unit-testing-3-automating-unit-tests/</guid>
      <description>Part 3 of our introduction to unit testing tackles the topic of automating unit tests in your application development workflow.
In our series about unit testing, we&amp;rsquo;ve already covered what unit tests are and how to use them. This post will go into more detail about using automation to streamline the creation and execution of unit tests. In the next (last) post of this series, we&amp;rsquo;ll dive deep into some best practices for unit testing.</description>
    </item>
    
    <item>
      <title>A beginner&#39;s guide to unit testing 2/4: How to use unit tests?</title>
      <link>https://symflower.com/en/company/blog/2024/unit-testing-2-how-to-use-unit-tests/</link>
      <pubDate>Wed, 13 Mar 2024 08:00:00 +0100</pubDate>
      
      <guid>https://symflower.com/en/company/blog/2024/unit-testing-2-how-to-use-unit-tests/</guid>
      <description>Part 2 of our introduction to unit testing covers how to write unit tests and presents some unit testing tools for Java.
Unit tests form a core practice of software development, but not all developers are adept at using them. Symflower&amp;rsquo;s 4-part series covers all aspects of unit testing to provide you with the information you need to get started with unit testing your code.
Check out all the other parts of this series:</description>
    </item>
    
    <item>
      <title>A beginner&#39;s guide to unit testing 1/4: What is unit testing?</title>
      <link>https://symflower.com/en/company/blog/2024/unit-testing-1-what-is-unit-testing/</link>
      <pubDate>Tue, 12 Mar 2024 08:00:00 +0100</pubDate>
      
      <guid>https://symflower.com/en/company/blog/2024/unit-testing-1-what-is-unit-testing/</guid>
      <description>In part 1/4 of our new series on unit testing, we&amp;rsquo;re tackling the basics of what unit testing is and why it should be used.
Unit testing is (or rather, should be) a core practice for any software developer. But not everyone uses unit tests. In JetBrains&#39; The State of Developer Ecosystem 2023 report, 63% of respondents (down from 67% in 2022) said they had unit tests in their projects.</description>
    </item>
    
    <item>
      <title>Spring Web MVC vs Spring WebFlux: differences between Spring web frameworks</title>
      <link>https://symflower.com/en/company/blog/2024/spring-mvc-spring-webflux/</link>
      <pubDate>Mon, 11 Mar 2024 08:06:00 +0100</pubDate>
      
      <guid>https://symflower.com/en/company/blog/2024/spring-mvc-spring-webflux/</guid>
      <description>In this post, we dive into the many differences between Spring Web MVC and Spring WebFlux to help you determine which one to use for your project.
Table of contents:
 What is Spring Web MVC? What is Spring WebFlux? Differences &amp;amp; when to use Spring Web MVC vs Spring WebFlux Testing Spring Boot applications  Users new to the Spring framework can get overwhelmed by the many related terms and components of Spring.</description>
    </item>
    
    <item>
      <title>The best static analysis tools and linters for Java</title>
      <link>https://symflower.com/en/company/blog/2024/static-analysis-java/</link>
      <pubDate>Sun, 10 Mar 2024 08:05:00 +0100</pubDate>
      
      <guid>https://symflower.com/en/company/blog/2024/static-analysis-java/</guid>
      <description>This post covers static analysis tools for Java, with a list of some of the best linters and other static analysis tools for Java.
Table of contents:
 What is static code analysis? What&amp;rsquo;s the difference between static vs dynamic code analysis? Benefits of using static code analysis tools Static code analysis vs linting Auto-formatting your code The best static code analysis tools for Java  Checkstyle PMD SpotBugs The Sonar suite    Static source code analysis greatly supports a software development team&amp;rsquo;s efforts to maintain high coding standards.</description>
    </item>
    
    <item>
      <title>Spring Boot folder structure best practices</title>
      <link>https://symflower.com/en/company/blog/2024/spring-boot-folder-structure/</link>
      <pubDate>Sat, 09 Mar 2024 08:04:00 +0100</pubDate>
      
      <guid>https://symflower.com/en/company/blog/2024/spring-boot-folder-structure/</guid>
      <description>This post covers the various aspects of creating a folder structure for your Spring Boot projects that is logical and easy to navigate for other members of your team.
Table of contents:
 Key principles of organizing Spring Boot projects Best practices for Spring Boot directory structuring  Use your build system&amp;rsquo;s default folder structure Separate by layers OR by feature Keep configuration files separate Different folders and annotations for controllers, services, repositories &amp;amp; more Take advantage of Spring Boot&amp;rsquo;s modules +1: Maintain adequate documentation   Generating testing code for your projects with Symflower  When working with a team on a Spring Boot (or any) project, keeping an organized and consistent folder structure is crucial so that any team member can navigate any part of the project without problems.</description>
    </item>
    
    <item>
      <title>JUnit testing tips and tricks 3/3: Changing test execution order in JUnit 4 &amp; JUnit 5</title>
      <link>https://symflower.com/en/company/blog/2024/junit-3-test-execution-order/</link>
      <pubDate>Fri, 08 Mar 2024 08:01:00 +0100</pubDate>
      
      <guid>https://symflower.com/en/company/blog/2024/junit-3-test-execution-order/</guid>
      <description>Using JUnit for your daily unit testing? Part 3 of our series on JUnit tips and tricks covers specifying a sequence for your tests to be executed in.
In part 1 of this series, we showed how to ignore test cases in JUnit 4 and 5. Part 2 covered how to tag and filter test cases in both JUnit 4 and JUnit 5.
In this post, we&amp;rsquo;ll finish up our series on JUnit testing tips and tricks with a tutorial on changing the order of test execution in both JUnit 4 and 5.</description>
    </item>
    
    <item>
      <title>JUnit testing tips and tricks 2/3: Tagging and filtering test cases in JUnit 4 &amp; JUnit 5</title>
      <link>https://symflower.com/en/company/blog/2024/junit-2-tagging-filtering/</link>
      <pubDate>Thu, 07 Mar 2024 08:00:00 +0100</pubDate>
      
      <guid>https://symflower.com/en/company/blog/2024/junit-2-tagging-filtering/</guid>
      <description>In part 2 of our series on JUnit testing tips and tricks, we cover the topic of tagging and filtering test cases in both JUnit 4 and JUnit 5.
In the first part of this series, we covered how to ignore test cases in JUnit 4 and 5.
🤔 A guide to writing JUnit test cases
Wondering how to write efficient JUnit test cases? Check out our post series:</description>
    </item>
    
    <item>
      <title>How to do mocking in Spring Boot? Best practices for using @MockBean vs @Mock</title>
      <link>https://symflower.com/en/company/blog/2024/how-to-do-mocking-spring-boot/</link>
      <pubDate>Wed, 06 Mar 2024 08:00:00 +0100</pubDate>
      
      <guid>https://symflower.com/en/company/blog/2024/how-to-do-mocking-spring-boot/</guid>
      <description>In this post, we&amp;rsquo;ll cover the basics of mocking objects when unit testing Spring Boot applications with examples.
Check out all the other parts of our blog post series on Spring Boot:
 Part 1: An introduction to Spring Boot: the basics Part 2: Spring Boot testing best practices &amp;amp; guide Part 3: Spring framework basics: Spring vs Spring Boot vs Spring Web MVC vs Spring WebFlux Part 4: Spring Web MVC vs Spring WebFlux: differences between Spring web frameworks Part 6: What is the difference between @Controller vs @RestController in Spring Boot?</description>
    </item>
    
    <item>
      <title>JDK 22: What is new in Java 22?</title>
      <link>https://symflower.com/en/company/blog/2024/what-is-new-in-java-22/</link>
      <pubDate>Tue, 05 Mar 2024 10:00:00 +0100</pubDate>
      
      <guid>https://symflower.com/en/company/blog/2024/what-is-new-in-java-22/</guid>
      <description>JDK 22 was released on 19 March 2024. This post provides a quick look at all the features we are excited about in Java 22.
Java&amp;rsquo;s previous version JDK 21 (LTS) was released on 19 September 2023 and brought 15 new features including record patterns, virtual threads, string templates (preview phase), and more.
 ℹ️ Updates in other Java releases
Check out our posts that describe the new and updated features in other JDK versions:</description>
    </item>
    
    <item>
      <title>JUnit testing tips and tricks 1/3: How to ignore test cases in JUnit 4 and 5?</title>
      <link>https://symflower.com/en/company/blog/2023/junit-1-ignore-test-cases/</link>
      <pubDate>Wed, 13 Dec 2023 08:00:00 +0100</pubDate>
      
      <guid>https://symflower.com/en/company/blog/2023/junit-1-ignore-test-cases/</guid>
      <description>Part 1 of our series on JUnit testing tips and tricks is about ignoring test cases in JUnit 4 and JUnit 5.
JUnit is the most popular testing framework used by thousands of developers. If you&amp;rsquo;re new to the framework, there are a few neat tips and tricks you can learn to make your use of the framework smoother and more efficient. In part 1, we&amp;rsquo;re covering the topic of ignoring (or skipping) test cases, whether you&amp;rsquo;re using JUnit 4 or JUnit 5.</description>
    </item>
    
    <item>
      <title>An introduction to Spring Boot: the basics</title>
      <link>https://symflower.com/en/company/blog/2023/introduction-to-spring-boot/</link>
      <pubDate>Thu, 30 Nov 2023 08:00:00 +0100</pubDate>
      
      <guid>https://symflower.com/en/company/blog/2023/introduction-to-spring-boot/</guid>
      <description>Heard all the good things about Spring Boot but not quite sure what it&amp;rsquo;s all about? It&amp;rsquo;s OK, we&amp;rsquo;ve got you covered: this post is your fundamental guide to Spring Boot!
Introduction: what is Spring Boot?  Java Spring Boot is an extension to the Spring framework that makes the powerful features of this framework easier to access. Spring Boot takes things one step further than Spring&amp;rsquo;s dependency injection feature, as it can automatically take care of configuration for a variety of elements.</description>
    </item>
    
    <item>
      <title>Security testing tools and techniques</title>
      <link>https://symflower.com/en/company/blog/2023/security-testing-tools-techniques/</link>
      <pubDate>Wed, 29 Nov 2023 08:00:00 +0100</pubDate>
      
      <guid>https://symflower.com/en/company/blog/2023/security-testing-tools-techniques/</guid>
      <description>Security testing is becoming a crucial part of software development. This post covers the fundamental techniques and tools that software developers can rely on.
With cyberattacks on the news seemingly every day these past few years, and software driving everything from fridges to autonomous cars, it&amp;rsquo;s no wonder why cybersecurity is becoming a critical concern for product developers. In this post, we&amp;rsquo;ll attempt to cover the basics of security testing, its various types, and some of the most popular security testing tools that you can use to ensure the security of your software products.</description>
    </item>
    
    <item>
      <title>2024 Software testing trends to watch out for</title>
      <link>https://symflower.com/en/company/blog/2023/software-testing-trends-2024/</link>
      <pubDate>Wed, 22 Nov 2023 08:00:00 +0100</pubDate>
      
      <guid>https://symflower.com/en/company/blog/2023/software-testing-trends-2024/</guid>
      <description>Software testing is changing. Learn about the next evolutionary steps we expect to see in 2024 in the world of Quality Assurance!
Look back at 2023 and you&amp;rsquo;ll see that this past year has taught us a great deal about the importance of technology. Within that specifically, the pivotal role that software plays in shaping our lives cannot be overemphasized. As software becomes the key value driver in more and more products and digitalization increases the penetration of these products, there&amp;rsquo;s more responsibility falling on the software testing discipline to ensure high quality and robustness in software-infused products.</description>
    </item>
    
    <item>
      <title>Mocking frameworks for Java: Mockito vs EasyMock vs JMockit</title>
      <link>https://symflower.com/en/company/blog/2023/mocking-frameworks-java/</link>
      <pubDate>Wed, 15 Nov 2023 08:00:00 +0100</pubDate>
      
      <guid>https://symflower.com/en/company/blog/2023/mocking-frameworks-java/</guid>
      <description>There are various mocking frameworks for Java developers out there. In this post, we compare Mockito, EasyMock, and JMockit with a Java example to help you pick the right one for your needs!
What is mocking?  In software development, mock objects are simulated objects that mimic the behavior of real objects.
With mocking, you&amp;rsquo;ll define pre-programmed objects with expectations on how they should behave. These mock objects are configured to simulate the behavior of real ones.</description>
    </item>
    
    <item>
      <title>JetBrains Aqua: an IDE for test automation</title>
      <link>https://symflower.com/en/company/blog/2023/jetbrains-aqua/</link>
      <pubDate>Tue, 07 Nov 2023 10:00:00 +0100</pubDate>
      
      <guid>https://symflower.com/en/company/blog/2023/jetbrains-aqua/</guid>
      <description>JetBrains Aqua is the IntelliJ IDE for test automation Quality Assurance specialists. Here&amp;rsquo;s what you need to know about this new IDE!
Released in 2022, JetBrains Aqua is a new standalone IDE that was designed to support test automation. It&amp;rsquo;s still in the preview phase, meaning that you can check it out for free. The new IDE focuses on test automation and is intended to be used by automation QA engineers.</description>
    </item>
    
    <item>
      <title>Chaos engineering 101 &amp; Best practices for chaos testing</title>
      <link>https://symflower.com/en/company/blog/2023/chaos-testing-101/</link>
      <pubDate>Tue, 31 Oct 2023 08:00:00 +0100</pubDate>
      
      <guid>https://symflower.com/en/company/blog/2023/chaos-testing-101/</guid>
      <description>In this blog post, we dive into the topic of chaos engineering for testing the resilience of software products.
Our series about the software testing jungle introduced the basic categories of testing. Within each of these major categories, there are several ways to carry out testing, leading to a wide variety of testing types.
In a previous post, we have covered mutation testing, a less-often-used form of error-based testing that aims to evaluate the thoroughness of your test suite.</description>
    </item>
    
    <item>
      <title>Spring framework basics: Spring vs Spring Boot vs Spring Web MVC vs Spring WebFlux</title>
      <link>https://symflower.com/en/company/blog/2023/understanding-spring-framework/</link>
      <pubDate>Sun, 22 Oct 2023 10:00:00 +0100</pubDate>
      
      <guid>https://symflower.com/en/company/blog/2023/understanding-spring-framework/</guid>
      <description>Those new to the Spring ecosystem can easily get confused about the differences between Spring, Spring Boot, Spring Web MVC, and Spring WebFlux. In this post, we clear it all up!
A guide to the Spring framework  In the development of software, application frameworks are used to provide infrastructure support for code libraries to make core programming easier. Application frameworks support code reusability and include tools that help developers build and combine the various components of software applications.</description>
    </item>
    
    <item>
      <title>Symbolic execution vs fuzzing for creating test values</title>
      <link>https://symflower.com/en/company/blog/2023/symbolic-execution-vs-fuzzing/</link>
      <pubDate>Wed, 18 Oct 2023 10:00:00 +0100</pubDate>
      
      <guid>https://symflower.com/en/company/blog/2023/symbolic-execution-vs-fuzzing/</guid>
      <description>Automatically generating values for unit testing can be a huge time-saver. This post features a comparison of two alternative strategies for generating test values: fuzzing and symbolic execution.
Unit testing can be an effort-intensive process: not only do you have to write the tests manually, but you also have to figure out the right values for your test scenario. Automated test value generation can help to drastically accelerate this process while saving you a ton of manual effort.</description>
    </item>
    
    <item>
      <title>Code generation with Symflower &amp; GitHub Copilot: AI vs Symbolic Execution for Software Testing</title>
      <link>https://symflower.com/en/company/blog/2023/symflower-github-copilot/</link>
      <pubDate>Tue, 10 Oct 2023 08:00:00 +0100</pubDate>
      
      <guid>https://symflower.com/en/company/blog/2023/symflower-github-copilot/</guid>
      <description>This post takes a look at two incredibly useful tools that transform the way software developers work. Read on to find out about the background and use of GitHub Copilot and Symflower for software testing!
The AI revolution, and especially generative AI, has reached software development. Large Language Models have evolved to a state where they can provide valuable services for developing applications.
Tools like GitHub Copilot can predict and complete lines of code based on the code you&amp;rsquo;ve already written, or on a prompt.</description>
    </item>
    
    <item>
      <title>Java Unit Testing Frameworks Compared: JUnit vs TestNG differences and similarities</title>
      <link>https://symflower.com/en/company/blog/2023/junit-vs-testng/</link>
      <pubDate>Wed, 04 Oct 2023 08:00:00 +0100</pubDate>
      
      <guid>https://symflower.com/en/company/blog/2023/junit-vs-testng/</guid>
      <description>JUnit and TestNG are the most popular unit testing frameworks for Java code. This post provides an overview of their similarities and differences.
While they are the most well-known frameworks for unit testing Java code, JUnit is actually vastly more popular than TestNG. The stats surprised us: while JUnit is reportedly used by 85% of developers, only about 8% use TestNG!
 Image source: https://www.jetbrains.com/lp/devecosystem-2021/java/#Java_which-unit-testing-frameworks-do-you-use-if-any  Both JUnit and TestNG are open-source tools that have some overlapping functionality (with some differences), so which one you&amp;rsquo;ll end up using will mostly depend on the history of your team and requirements of your project.</description>
    </item>
    
    <item>
      <title>Spring Boot testing best practices &amp; guide</title>
      <link>https://symflower.com/en/company/blog/2023/best-practices-for-spring-boot-testing/</link>
      <pubDate>Tue, 26 Sep 2023 08:00:00 +0100</pubDate>
      
      <guid>https://symflower.com/en/company/blog/2023/best-practices-for-spring-boot-testing/</guid>
      <description>Spring Boot is the most popular application framework out there. This guide provides best practices to help test your Spring Boot applications!
What is Spring Boot?  Spring Boot is a convention-oriented, opinionated addition to the Spring platform used to create standalone production-grade Spring-based applications that you can &amp;ldquo;just run&amp;rdquo;. Most often Spring Boot is used for creating service backend applications such as REST backends.
🌱 Introduction to Spring Boot</description>
    </item>
    
    <item>
      <title>How to test your tests? A guide to mutation testing &amp; mutation testing tools</title>
      <link>https://symflower.com/en/company/blog/2023/using-mutation-testing/</link>
      <pubDate>Mon, 25 Sep 2023 08:00:00 +0100</pubDate>
      
      <guid>https://symflower.com/en/company/blog/2023/using-mutation-testing/</guid>
      <description>Mutation testing (an error-based testing technique / fault-based testing technique) is a lesser-used technique to help ensure high software quality. This post provides an introduction to mutation testing and an overview of the practical aspects of this testing technique.
The crucial role of software quality need not be emphasized. (Curious about the costs of missing proper testing? Check out our post series on the subject!) But how exactly you get robust software quality, in practical terms, is a more difficult question.</description>
    </item>
    
    <item>
      <title>JDK 21: What is new in Java 21?</title>
      <link>https://symflower.com/en/company/blog/2023/what-is-new-in-java-21/</link>
      <pubDate>Wed, 13 Sep 2023 10:00:00 +0100</pubDate>
      
      <guid>https://symflower.com/en/company/blog/2023/what-is-new-in-java-21/</guid>
      <description>JDK 21 is here! This article details all the updates and changes in the latest version Java 21 with quick descriptions and examples to help you understand what is new.
The previous JDK version, Java 20, was released on 21 March 2023. The new version Java 21, set to be released on 19 September 2023, is an LTS release that brings 15 finalized features including core language extensions, new features for developing multi-threaded code, and updates for the Z Garbage Collector and continued work on providing a JNI alternative.</description>
    </item>
    
    <item>
      <title>Insights from the State of Testing report 2023</title>
      <link>https://symflower.com/en/company/blog/2023/insights-from-the-state-of-testing-report-2023/</link>
      <pubDate>Wed, 06 Sep 2023 08:00:00 +0100</pubDate>
      
      <guid>https://symflower.com/en/company/blog/2023/insights-from-the-state-of-testing-report-2023/</guid>
      <description>This post analyzes the findings of the State of Testing™ Report&amp;rsquo;s 2023 edition with all the key trends, practices, and challenges in software testing relevant now and in the near future.
The State of Testing™ Report has been carried out annually since 2014 by PractiTest and their partners. Based on a survey, the report focuses on emerging practices and challenges in the global testing community to identify defining trends in software testing.</description>
    </item>
    
    <item>
      <title>What is the testing trophy and how does it help better test software?</title>
      <link>https://symflower.com/en/company/blog/2023/what-is-the-testing-trophy/</link>
      <pubDate>Tue, 29 Aug 2023 10:00:00 +0100</pubDate>
      
      <guid>https://symflower.com/en/company/blog/2023/what-is-the-testing-trophy/</guid>
      <description>The software testing trophy is a lesser-known alternative to the popular testing pyramid. This post dives into the details of the testing trophy and its differences to the testing pyramid.
As we know, testing is non-negotiable in software development: either you make time for it, or you&amp;rsquo;ll need to deal with the consequences later. Testing is carried out at all stages of software development, with testing at each of these stages having a different focus.</description>
    </item>
    
    <item>
      <title>How to split a commit with Git?</title>
      <link>https://symflower.com/en/company/blog/2023/how-to-split-a-commit-with-git/</link>
      <pubDate>Wed, 09 Aug 2023 08:00:00 +0100</pubDate>
      
      <guid>https://symflower.com/en/company/blog/2023/how-to-split-a-commit-with-git/</guid>
      <description>At Symflower we love rebasing commits. This is not a result of us enjoying the suffering of our team members that are not yet fluent with Git, but it makes development, debugging problems and especially reviewing changes enormously easier. However, everyone that ever tried Git knows that changing commits can be difficult. Just mentioning the word rebase often leads to sweat-soaked memories for some people. Naturally, we are adding new tools and aliases to our development environment to make working with Git easier and faster.</description>
    </item>
    
    <item>
      <title>Software testing basics: unit testing vs integration testing</title>
      <link>https://symflower.com/en/company/blog/2023/unit-testing-vs-integration-testing/</link>
      <pubDate>Tue, 01 Aug 2023 13:00:00 +0100</pubDate>
      
      <guid>https://symflower.com/en/company/blog/2023/unit-testing-vs-integration-testing/</guid>
      <description>Unit testing and integration testing are both indispensable in software quality assurance. This post covers the basics of both types of testing and introduces a useful tool to automate your testing activities.
For any team developing applications, thoroughly testing software is a challenge. Developers and testers apply various types of testing on multiple levels to catch all potential issues, all of which are necessary to ensure high software quality.</description>
    </item>
    
    <item>
      <title>Programming principle &#34;KISS&#34;: Keep it simple, stupid!</title>
      <link>https://symflower.com/en/company/blog/2023/programming-principle-kiss/</link>
      <pubDate>Tue, 25 Jul 2023 08:00:00 +0100</pubDate>
      
      <guid>https://symflower.com/en/company/blog/2023/programming-principle-kiss/</guid>
      <description>KISS (aka Keep it Simple, Stupid!) is a handy principle for anyone designing complex systems such as software. This post dives into how you can apply it in your projects!
In our series about programming principles, we&amp;rsquo;ve already covered Chesterton&amp;rsquo;s Fence, &amp;ldquo;YAGNI&amp;rdquo; (You ain&amp;rsquo;t gonna need it), and &amp;ldquo;DRY&amp;rdquo; (Don&amp;rsquo;t Repeat Yourself). In this current post, we&amp;rsquo;ll be focusing on the &amp;ldquo;KISS&amp;rdquo; principle, a.k.a. Keep it simple, stupid!</description>
    </item>
    
    <item>
      <title>How to migrate from JUnit 4 to JUnit 5: a step-by-step guide</title>
      <link>https://symflower.com/en/company/blog/2023/migrating-from-junit-4-to-5/</link>
      <pubDate>Wed, 19 Jul 2023 08:00:00 +0100</pubDate>
      
      <guid>https://symflower.com/en/company/blog/2023/migrating-from-junit-4-to-5/</guid>
      <description>This step-by-step guide walks you through the JUnit 5 upgrade process to help you migrate from JUnit 4 to JUnit 5. For a fully automated solution, you can use Symflower to handle the entire conversion automatically, with no manual changes required.
💡 A series on JUnit testing
 Part 1: How to write JUnit test cases? A step-by-step guide with examples covers the basics: why and how to write Java unit test cases with JUnit 5, as well as a step-by-step Java unit test tutorial and key best practices.</description>
    </item>
    
    <item>
      <title>What is the cost of missing tests? Part 4: Reduced confidence</title>
      <link>https://symflower.com/en/company/blog/2023/costs-of-missing-tests-04-reduced-confidence/</link>
      <pubDate>Tue, 11 Jul 2023 08:00:00 +0100</pubDate>
      
      <guid>https://symflower.com/en/company/blog/2023/costs-of-missing-tests-04-reduced-confidence/</guid>
      <description>Inadequate software testing has many drawbacks such as the risk of bugs and errors, increased development time, and growing technical debt – all covered in previous parts of this series. In this last part of our series on the costs of missing tests, we&amp;rsquo;re focusing on the reduced (developer, user, and market) confidence that inadequate or insufficient software testing can lead to.
How does subpar testing lead to reduced confidence?</description>
    </item>
    
    <item>
      <title>Using code katas to become a better software developer</title>
      <link>https://symflower.com/en/company/blog/2023/using-code-katas-to-become-a-better-software-developer/</link>
      <pubDate>Tue, 04 Jul 2023 08:00:00 +0100</pubDate>
      
      <guid>https://symflower.com/en/company/blog/2023/using-code-katas-to-become-a-better-software-developer/</guid>
      <description>Many software developers use coding katas to get better at writing efficient and high-quality code. This post dives into the details of code kata exercises and how they can help enhance your coding.
What is a code kata?  Coding katas are software development exercises that help developers improve their skills through practice and sheer repetition. The goal of a kata is not to pose difficult problems for the developer to solve.</description>
    </item>
    
    <item>
      <title>Debugging part 4: Finding simple reproducers during debugging with Symflower</title>
      <link>https://symflower.com/en/company/blog/2023/debugging-4-finding-reproducers-with-symflower/</link>
      <pubDate>Tue, 20 Jun 2023 04:00:00 +0100</pubDate>
      
      <guid>https://symflower.com/en/company/blog/2023/debugging-4-finding-reproducers-with-symflower/</guid>
      <description>In this final article of our 4-part series on debugging, we&amp;rsquo;ll walk you through a practical example of using Symflower to find simple reproducers for bugs in your code.
This blog series on debugging aims to equip you with all the knowledge and tools you need to start to efficiently debug software applications. In part 1, we gave a general overview of the debugging workflow using the TRAFFIC principle.</description>
    </item>
    
    <item>
      <title>How to introduce TDD in your organization?</title>
      <link>https://symflower.com/en/company/blog/2023/how-to-introduce-tdd-in-your-organization/</link>
      <pubDate>Sun, 18 Jun 2023 08:00:00 +0100</pubDate>
      
      <guid>https://symflower.com/en/company/blog/2023/how-to-introduce-tdd-in-your-organization/</guid>
      <description>Test-Driven Development promises significant benefits, but its adoption is far from straightforward. In this post, we&amp;rsquo;re sharing some best practices and strategies to ensure the success of your team&amp;rsquo;s TDD transition!
Test-Driven Development is gaining popularity due to a whole range of advantages it helps achieve like better code quality and solution design, easier code maintainability, faster feedback cycles, and simplified documentation. That said, TDD also has a steep learning curve, and adopting it requires developers to change some entrenched reflexes.</description>
    </item>
    
    <item>
      <title>What is the cost of missing tests? Part 3: Growing technical debt</title>
      <link>https://symflower.com/en/company/blog/2023/costs-of-missing-tests-03-growing-technical-debt/</link>
      <pubDate>Thu, 25 May 2023 08:00:00 +0100</pubDate>
      
      <guid>https://symflower.com/en/company/blog/2023/costs-of-missing-tests-03-growing-technical-debt/</guid>
      <description>As many teams know, skipping adequate testing can result in growing technical debt. That&amp;rsquo;s what we dive into in part 3 of our series on the costs of missing software tests. In previous parts of this series, we&amp;rsquo;ve covered bugs and errors, as well as delays in getting software products to market.
Should we deliver functionality fast, even though it may need to be refactored later? Or should we focus on adequate testing, risking that we miss the deadline or don&amp;rsquo;t have enough time to deliver all the required features?</description>
    </item>
    
    <item>
      <title>How to get started with Test-Driven Development</title>
      <link>https://symflower.com/en/company/blog/2023/how-to-get-started-with-tdd/</link>
      <pubDate>Wed, 24 May 2023 08:00:00 +0100</pubDate>
      
      <guid>https://symflower.com/en/company/blog/2023/how-to-get-started-with-tdd/</guid>
      <description>Test-Driven Development (TDD) is gaining traction in the industry. This blog post introduces our white paper which helps you and your team get familiar with TDD. The post also mentions some of the key benefits, challenges, and best practices for the successful adoption of Test-Driven Development that the white paper provides more details on.
As an incremental and iterative approach to software development, TDD works well in an Agile environment and offers a range of benefits compared to traditional development including, among others: high code quality, accelerated development, and improved collaboration.</description>
    </item>
    
    <item>
      <title>What is the cost of missing tests? Part 2: Increased development time</title>
      <link>https://symflower.com/en/company/blog/2023/costs-of-missing-tests-02-increased-development-time/</link>
      <pubDate>Tue, 23 May 2023 08:00:00 +0100</pubDate>
      
      <guid>https://symflower.com/en/company/blog/2023/costs-of-missing-tests-02-increased-development-time/</guid>
      <description>Inadequate software testing is known to result in longer development times, leading to delays in time to market. That&amp;rsquo;s what we dive into in this article, part 2 of our series on the costs of missing tests. In a previous post of this series, we&amp;rsquo;ve already covered how bugs and software errors can be the breaking factor in a project.
Software errors slowing down the development lifecycle  Project delays are all too well known for software teams.</description>
    </item>
    
    <item>
      <title>Debugging part 3: Using unit tests to debug software applications</title>
      <link>https://symflower.com/en/company/blog/2023/debugging-3-using-unit-tests-for-debugging/</link>
      <pubDate>Mon, 22 May 2023 08:00:00 +0100</pubDate>
      
      <guid>https://symflower.com/en/company/blog/2023/debugging-3-using-unit-tests-for-debugging/</guid>
      <description>This guide to using unit tests to find and fix bugs in software applications is part 3 of our debugging series, focusing on the practical side of debugging.
In part 1 of this series, we gave a general overview of the process of debugging with the TRAFFIC principle. In part 2, we introduced some practical debugging tools and workflows that help you stay efficient when hunting fog bugs. In part 4, we&amp;rsquo;ll be looking at how to use Symflower to find simple reproducers during debugging.</description>
    </item>
    
    <item>
      <title>What are the top Java unit testing frameworks &amp; tools in 2024?</title>
      <link>https://symflower.com/en/company/blog/2023/top-java-unit-testing-frameworks-tools/</link>
      <pubDate>Tue, 25 Apr 2023 10:00:00 +0100</pubDate>
      
      <guid>https://symflower.com/en/company/blog/2023/top-java-unit-testing-frameworks-tools/</guid>
      <description>There are some widely used unit testing frameworks and useful tools that can greatly support your unit testing efforts. Here&amp;rsquo;s a top list of the ones we find best!
Most developers today are familiar with unit testing: it has become a fundamental, and increasingly widely used technique to check logically isolated, small bits of software code (e.g. a specific behavior) at a time to see if everything works as expected.</description>
    </item>
    
    <item>
      <title>What is the cost of missing tests? Part 1: Bugs and errors</title>
      <link>https://symflower.com/en/company/blog/2023/costs-of-missing-tests-01-bugs-errors/</link>
      <pubDate>Mon, 17 Apr 2023 08:00:00 +0100</pubDate>
      
      <guid>https://symflower.com/en/company/blog/2023/costs-of-missing-tests-01-bugs-errors/</guid>
      <description>Missing or skipping adequate testing can lead to risks that could endanger the success of any software project. But what exactly are the specific and practical drawbacks of poor software quality due to inadequate testing?
Naturally, with rampant digitalization everywhere, software quality is a crucial consideration, so effective testing is vital. Most software teams know this – but testing takes time and effort that could otherwise be spent delivering new features or products to the market.</description>
    </item>
    
    <item>
      <title>Debugging part 2: Tools and approaches for debugging</title>
      <link>https://symflower.com/en/company/blog/2023/debugging-2-tools-and-approaches/</link>
      <pubDate>Tue, 11 Apr 2023 08:00:00 +0100</pubDate>
      
      <guid>https://symflower.com/en/company/blog/2023/debugging-2-tools-and-approaches/</guid>
      <description>In part 2 of our post series on debugging, we&amp;rsquo;re covering the practical aspect, providing some useful workflows and tools that you can use to put the TRAFFIC principle into action when debugging your software applications.
 Read part 1 of this debugging series for an introduction to the TRAFFIC principle which outlines a general workflow for fixing software bugs. In debugging part 3, we cover how unit tests help helpful in debugging.</description>
    </item>
    
    <item>
      <title>The best IntelliJ IDEA productivity plugins for Java developers</title>
      <link>https://symflower.com/en/company/blog/2023/best-intellij-productivity-plugins-for-java/</link>
      <pubDate>Wed, 22 Mar 2023 10:00:00 +0100</pubDate>
      
      <guid>https://symflower.com/en/company/blog/2023/best-intellij-productivity-plugins-for-java/</guid>
      <description>In this post, we list the most useful IntelliJ productivity extensions for Java developers.
Table of contents:
 IntelliJ &amp;amp; Java IntelliJ plugins to boost Java development productivity  String Manipulation Key Promoter X Maven Helper JRebel &amp;amp; XRebel Rainbow Brackets WakaTime More Java tips    IntelliJ &amp;amp; Java  IntelliJ IDEA is one of the most popular IDEs, with almost 30% of all professional developers using it.</description>
    </item>
    
    <item>
      <title>How to run JUnit 5 tests with Gradle: a step-by-step guide</title>
      <link>https://symflower.com/en/company/blog/2023/running-junit-tests-with-gradle/</link>
      <pubDate>Sun, 19 Mar 2023 08:00:00 +0100</pubDate>
      
      <guid>https://symflower.com/en/company/blog/2023/running-junit-tests-with-gradle/</guid>
      <description>This guide provides instructions for setting up your system to run JUnit tests with Gradle.
Table of contents:
 Running JUnit 5 tests with Gradle What is Gradle? How to set up your project to run JUnit 5 unit tests with Gradle?  Set up Gradle Start up your project with Gradle The build.gradle file   How to create a JUnit test and use Gradle to run it?</description>
    </item>
    
    <item>
      <title>TreeSitter - the holy grail of parsing source code</title>
      <link>https://symflower.com/en/company/blog/2023/parsing-code-with-tree-sitter/</link>
      <pubDate>Fri, 17 Mar 2023 08:00:00 +0100</pubDate>
      
      <guid>https://symflower.com/en/company/blog/2023/parsing-code-with-tree-sitter/</guid>
      <description>As a software analysis company we have an inherent need for parsing source code. Until recently we used the maybe most prominent tool for parsing Java code which is JavaParser. JavaParser works exceptionally well and certainly paid its dues for us. However, JavaParser became more and more a bottleneck in terms of performance. Not necessarily because the parser itself is slow, but because we had to perform expensive external Java calls from Go to execute JavaParser.</description>
    </item>
    
    <item>
      <title>Debugging part 1: A guide to fixing bugs in software applications with the TRAFFIC principle</title>
      <link>https://symflower.com/en/company/blog/2023/debugging-with-the-traffic-principle/</link>
      <pubDate>Wed, 22 Feb 2023 08:00:00 +0100</pubDate>
      
      <guid>https://symflower.com/en/company/blog/2023/debugging-with-the-traffic-principle/</guid>
      <description>Debugging a piece of software can drive the most well-tempered developer nuts – yet, sadly, it&amp;rsquo;s also inevitable, as no one writes bug-free code. Trying to find out what is wrong with faulty code and where the source of the problem is before you fix it (i.e. debugging) can be a bit of a challenge. As the popular piece of programming wisdom goes:
&amp;ldquo;Debugging is like a crime movie</description>
    </item>
    
    <item>
      <title>A more robust way to install VS Code for extension testing</title>
      <link>https://symflower.com/en/company/blog/2023/vscode-test-installation/</link>
      <pubDate>Mon, 20 Feb 2023 08:00:00 +0100</pubDate>
      
      <guid>https://symflower.com/en/company/blog/2023/vscode-test-installation/</guid>
      <description>Check out all the posts in our VS Code extension development series:
How to make VS Code extensions: guide &amp;amp; best practices
 Through testing our VS Code extension – Symflower for VS Code – we&amp;rsquo;ve stumbled over some interesting issues and edge cases. One of them was that the copy of VS Code, which was automatically installed by the test framework, sometimes got corrupted during a test run.</description>
    </item>
    
    <item>
      <title>How to write JUnit test cases: advanced techniques</title>
      <link>https://symflower.com/en/company/blog/2023/how-to-write-junit-test-cases-advanced-techniques/</link>
      <pubDate>Sat, 18 Feb 2023 08:00:00 +0100</pubDate>
      
      <guid>https://symflower.com/en/company/blog/2023/how-to-write-junit-test-cases-advanced-techniques/</guid>
      <description>Part 2 of our guide to unit testing with JUnit covers advanced techniques for staying efficient when applying JUnit 5 unit tests in your projects.
💡 A series on JUnit testing
 Part 1: How to write JUnit test cases? A step-by-step guide with examples covers the basics: why and how to write Java unit test cases with JUnit 5, as well as a step-by-step Java unit test tutorial and key best practices.</description>
    </item>
    
    <item>
      <title>Modifying a VS Code installation in extension tests</title>
      <link>https://symflower.com/en/company/blog/2023/vscode-test-install-extensions/</link>
      <pubDate>Tue, 14 Feb 2023 08:00:00 +0100</pubDate>
      
      <guid>https://symflower.com/en/company/blog/2023/vscode-test-install-extensions/</guid>
      <description>Check out all the posts in our VS Code extension development series:
How to make VS Code extensions: guide &amp;amp; best practices
 The starter template for VS Code extensions gives you a lot of flexibility when it comes to testing. By default, the extension under test is loaded in a special development mode, but this can be changed. For our own extension, Symflower for VS Code, we wanted to run tests on already released versions to smoke-test full end-to-end flows.</description>
    </item>
    
    <item>
      <title>Generating unit tests for Java projects with Maven dependencies</title>
      <link>https://symflower.com/en/company/blog/2023/maven-dependencies/</link>
      <pubDate>Mon, 13 Feb 2023 08:00:00 +0100</pubDate>
      
      <guid>https://symflower.com/en/company/blog/2023/maven-dependencies/</guid>
      <description>Symflower allows you to analyze and automatically generate unit tests for Java projects which rely on Maven dependencies. Let us have a look at how that plays out in practice.
Project Setup  We are going to create a Java project with the following structure containing a Maven POM file (pom.xml) and a Java source file called StringUtilsTester.java.
~/projects/test-java-maven ├── pom.xml └── src └── main └── java └── at └── symflower └── commons └── strings └── StringUtilsTester.</description>
    </item>
    
    <item>
      <title>Timeout-based checks in VS Code extension tests</title>
      <link>https://symflower.com/en/company/blog/2023/vscode-timeout-based-checks/</link>
      <pubDate>Sun, 12 Feb 2023 08:00:00 +0100</pubDate>
      
      <guid>https://symflower.com/en/company/blog/2023/vscode-timeout-based-checks/</guid>
      <description>Check out all the posts in our VS Code extension development series:
How to make VS Code extensions: guide &amp;amp; best practices
 When testing VS Code extensions, you might run into scenarios where you want to test a condition which is not expected to be true immediately and you cannot know when that condition will be met. For instance: an extension creates a file on disk after a certain action has been executed, and there is no way for a test to know when the extension is done creating the file.</description>
    </item>
    
    <item>
      <title>How to write JUnit test cases? A step-by-step guide with examples</title>
      <link>https://symflower.com/en/company/blog/2023/how-to-write-junit-test-cases/</link>
      <pubDate>Thu, 09 Feb 2023 08:00:00 +0100</pubDate>
      
      <guid>https://symflower.com/en/company/blog/2023/how-to-write-junit-test-cases/</guid>
      <description>This is part 1 of our guide to unit testing with JUnit which covers the basics with Java unit test examples and best practices for writing JUnit test cases.
💡 A series on JUnit testing
 Part 2: Advanced techniques takes a deeper dive into some of the more advanced techniques of JUnit such as parameterized tests, assumptions, and timeouts.   Table of contents:
 Java unit testing frameworks and JUnit Why use JUnit for unit testing Java applications?</description>
    </item>
    
    <item>
      <title>How to write VS Code extensions: guide &amp; best practices</title>
      <link>https://symflower.com/en/company/blog/2023/vscode-extension-development/</link>
      <pubDate>Wed, 08 Feb 2023 08:00:00 +0100</pubDate>
      
      <guid>https://symflower.com/en/company/blog/2023/vscode-extension-development/</guid>
      <description>Aiming to get started with plugin development for Visual Studio Code? You&amp;rsquo;re in the right place to kick things off! This series of blog posts will provide you with fundamental information on getting started with writing extensions for VS Code. We&amp;rsquo;ve gleaned all the information in this series from our experiences developing our own extension, Symflower for Visual Studio Code. Read on for key insights and best practices that will help you efficiently develop extensions for VS Code that are also well tested!</description>
    </item>
    
    <item>
      <title>A better X server setup for IntelliJ plugin tests locally and in your CI</title>
      <link>https://symflower.com/en/company/blog/2023/intellij-x-server-setup/</link>
      <pubDate>Tue, 07 Feb 2023 08:00:00 +0100</pubDate>
      
      <guid>https://symflower.com/en/company/blog/2023/intellij-x-server-setup/</guid>
      <description>Check out all the posts in our IntelliJ plugin development series:
All you need to know for IntelliJ plugin development
 When you test an IntelliJ plugin using UI automation, you need to have an instance of IntelliJ running that hosts the plugin under test. That instance needs a graphical environment to run in, such as an X server on Linux. On your workstation, IntelliJ will use the X server that also powers your desktop.</description>
    </item>
    
    <item>
      <title>Testing IntelliJ plugins on Windows in your CI using GitLab Runner</title>
      <link>https://symflower.com/en/company/blog/2023/intellij-testing-on-windows/</link>
      <pubDate>Mon, 06 Feb 2023 08:00:00 +0100</pubDate>
      
      <guid>https://symflower.com/en/company/blog/2023/intellij-testing-on-windows/</guid>
      <description>Check out all the posts in our IntelliJ plugin development series:
All you need to know for IntelliJ plugin development
 At Symflower, we subject all of our software components to mandatory automatic test suites before release, which is implemented using a GitLab-based CI/CD workflow. One of those components is our plugin for IntelliJ IDEA, GoLand and Android Studio. One of the ways that plugin is tested is using end-to-end tests with UI automation on multiple operating systems including Windows.</description>
    </item>
    
    <item>
      <title>Smart Java Unit Test Generation for VS Code and IntelliJ</title>
      <link>https://symflower.com/en/company/blog/2023/smart-java-unit-test-generation-for-vscode-and-intellij/</link>
      <pubDate>Wed, 18 Jan 2023 10:00:00 +0100</pubDate>
      
      <guid>https://symflower.com/en/company/blog/2023/smart-java-unit-test-generation-for-vscode-and-intellij/</guid>
      <description>Performing unit testing has become standard practice in modern software development. Doing adequate unit testing is simply necessary if you&amp;rsquo;re aiming to shift-left your testing and fix bugs as early as possible. Unit tests can be written and run before the entire system is in place, even before the first implementation of a function is actually there. Basically, there&amp;rsquo;s no shifting further left than that, otherwise you would be in the planning stage.</description>
    </item>
    
    <item>
      <title>Isolating IntelliJ plugin tests using temporary project directories</title>
      <link>https://symflower.com/en/company/blog/2023/intellij-temporary-project-directories/</link>
      <pubDate>Mon, 09 Jan 2023 10:00:00 +0100</pubDate>
      
      <guid>https://symflower.com/en/company/blog/2023/intellij-temporary-project-directories/</guid>
      <description>Check out all the posts in our IntelliJ plugin development series:
All you need to know for IntelliJ plugin development
 When testing a plugin for IntelliJ-based IDEs using a UI test, the plugin gets to operate within a fully-featured instance of the IDE. Most tests will therefore require a project to perform their actions on. This opens a question: How do you deal with modifications to test projects made by tests?</description>
    </item>
    
    <item>
      <title>Accessing IntelliJ plugin classes in UI tests</title>
      <link>https://symflower.com/en/company/blog/2023/intellij-plugin-classes-in-tests/</link>
      <pubDate>Fri, 06 Jan 2023 09:00:00 +0100</pubDate>
      
      <guid>https://symflower.com/en/company/blog/2023/intellij-plugin-classes-in-tests/</guid>
      <description>Check out all the posts in our IntelliJ plugin development series:
All you need to know for IntelliJ plugin development
 When testing an IntelliJ plugin, you&amp;rsquo;ll likely reach for UI tests to verify that both the user interface as well as the code behind it functions correctly. In UI tests, your plugin runs in a real instance of IntelliJ that is similar to a production environment on a user&amp;rsquo;s machine.</description>
    </item>
    
    <item>
      <title>Tutorial: all you need to know for IntelliJ plugin development</title>
      <link>https://symflower.com/en/company/blog/2023/intellij-plugin-development/</link>
      <pubDate>Thu, 05 Jan 2023 08:00:00 +0100</pubDate>
      
      <guid>https://symflower.com/en/company/blog/2023/intellij-plugin-development/</guid>
      <description>So you&amp;rsquo;re interested in plugin development for a Jetbrains&#39; IntelliJ-based IDE such as IntelliJ IDEA, GoLand, or Android Studio. You&amp;rsquo;ve come to the right place! Our blog post series will provide you with fundamental information on getting started with developing extensions for JetBrains IDEs. All this information stems from our experiences developing our own plugin, Symflower.
In later posts, we&amp;rsquo;ll be covering specific topics related to plugin development, and providing best practices to help improve efficiency when developing extensions.</description>
    </item>
    
    <item>
      <title>JDK 20: What is new in Java 20?</title>
      <link>https://symflower.com/en/company/blog/2022/what-is-new-in-java-20/</link>
      <pubDate>Mon, 21 Nov 2022 08:29:24 +0100</pubDate>
      
      <guid>https://symflower.com/en/company/blog/2022/what-is-new-in-java-20/</guid>
      <description>Java 20 has been released on 21st March 2023, and it introduced a range of changes and new functionality. The current version is a non-LTS release, while the following version 21 is set to be a release with Long-Term Support (LTS). We prepared a sneak peek into which JEPs have been accepted into JDK 20, and which ones we are excited to hopefully be accepted next!
But before we jump into the JEPs lined up for Java 20, let&amp;rsquo;s do a quick overview of the process for updating Java and the concept of enhancement proposals so that you have the full picture on what&amp;rsquo;s going on.</description>
    </item>
    
    <item>
      <title>Create JUnit tests more productively with Symflower</title>
      <link>https://symflower.com/en/company/blog/2022/create-junit-tests-productively/</link>
      <pubDate>Wed, 16 Nov 2022 08:29:24 +0100</pubDate>
      
      <guid>https://symflower.com/en/company/blog/2022/create-junit-tests-productively/</guid>
      <description>Symflower fully supports you when writing Java tests with JUnit 4 and JUnit 5. There are two ways to use Symflower to streamline your unit testing activities:
 Instantly generate boilerplate testing code Symflower&amp;rsquo;s smart test template functionality enables you to instantly generate all the boilerplate code you need for writing a JUnit test. Generate full unit test suites You can also rely on Symflower to create complete unit tests based on your implementation.</description>
    </item>
    
    <item>
      <title>Software development trends for 2023</title>
      <link>https://symflower.com/en/company/blog/2022/software-development-trends-2023/</link>
      <pubDate>Tue, 15 Nov 2022 08:29:24 +0100</pubDate>
      
      <guid>https://symflower.com/en/company/blog/2022/software-development-trends-2023/</guid>
      <description>Software development has to evolve to keep pace with the growing demand for digital technologies and the software that drives them. Here&amp;rsquo;s a list of trends that define software development in 2023 and beyond.
As software is taking over the world, the development strategies we use have to evolve in lockstep to keep pace. With development teams constantly looking to innovate and improve their efficiency, there are a few defining software development trends emerging that will influence how we deliver software this year.</description>
    </item>
    
    <item>
      <title>LSP in VS Code: integrating a language server in a Visual Studio Code extension</title>
      <link>https://symflower.com/en/company/blog/2022/lsp-in-vscode-extension/</link>
      <pubDate>Tue, 08 Nov 2022 00:01:00 +0100</pubDate>
      
      <guid>https://symflower.com/en/company/blog/2022/lsp-in-vscode-extension/</guid>
      <description>Check out all the posts in our VS Code extension development series:
How to make VS Code extensions: guide &amp;amp; best practices
 If you&amp;rsquo;re working on developer assistance tooling such as auto-completion or error highlighting for a particular programming language, you probably want the functionality with more than one code editor. In the bad old days this used to be quite labor-intensive: developers had to come up with ways to share common logic across different editor platforms and technologies and write repetitive glue code for every integration.</description>
    </item>
    
    <item>
      <title>Software testing trends for 2023</title>
      <link>https://symflower.com/en/company/blog/2022/software-testing-trends-2023/</link>
      <pubDate>Thu, 03 Nov 2022 08:29:24 +0100</pubDate>
      
      <guid>https://symflower.com/en/company/blog/2022/software-testing-trends-2023/</guid>
      <description>Here&amp;rsquo;s a list of new software testing strategies that will likely gain traction in 2023, and the software testing trends that Symflower expects to continue to unfold this year!
With software becoming the main value driver and the primary interface between developers and customers, focus on software quality is growing. The need to deliver high-quality, bug-free products in ever-accelerating cycles is putting pressure on software teams. Software testing has to apply new methods to keep pace.</description>
    </item>
    
    <item>
      <title>Incremental development with short iterations for more productivity and less frustration</title>
      <link>https://symflower.com/en/company/blog/2022/incremental-development-workflow/</link>
      <pubDate>Fri, 22 Jul 2022 08:29:24 +0100</pubDate>
      
      <guid>https://symflower.com/en/company/blog/2022/incremental-development-workflow/</guid>
      <description>Implementing new features and thinking up the best way to get everything just right is part of what makes software development exciting. In addition, being able to apply our problem solving skills when hunting down bugs and finding neat fixes is quite rewarding. But why is software development sometimes so frustrating at the same time?
You definitely know the feeling of a rising headache or mounting anger because your pull request is almost done but the continuous integration pipeline just won&amp;rsquo;t run through, or because that &amp;ldquo;last&amp;rdquo; bug holds up the whole branch from being merged.</description>
    </item>
    
    <item>
      <title>Programming principle &#34;YAGNI&#34;: you ain&#39;t gonna need it</title>
      <link>https://symflower.com/en/company/blog/2022/programming-principle-yagni/</link>
      <pubDate>Thu, 21 Jul 2022 08:29:24 +0100</pubDate>
      
      <guid>https://symflower.com/en/company/blog/2022/programming-principle-yagni/</guid>
      <description>The programming principle YAGNI (You aren&amp;rsquo;t gonna need it) originates from extreme programming, which is an agile software development methodology that advocates frequent releases with short development cycles.
What is the YAGNI (You ain&amp;rsquo;t gonna need it) coding principle?  &#34;Always implement things when you actually need them,
never when you just foresee that you need them.&#34;
Ron Jeffries, co-founder of extreme programming  Foreseeing the future is a tough nut to crack, that is the main rationale behind YAGNI.</description>
    </item>
    
    <item>
      <title>Java Fuzzing with Jazzer compared to Symflower</title>
      <link>https://symflower.com/en/company/blog/2022/jazzer-vs-symflower/</link>
      <pubDate>Tue, 21 Jun 2022 08:29:24 +0100</pubDate>
      
      <guid>https://symflower.com/en/company/blog/2022/jazzer-vs-symflower/</guid>
      <description>Fuzzing is a testing technique where random values are generated as inputs to find unexpected behavior such as crashes and security issues. Previously we looked at the new Golang release 1.18 which includes native fuzzing and our Core Technology blog series contained a post that compares symbolic execution to different other testing techniques, including fuzzing. Today, we will dive into the Java world and check out the most popular Java fuzzing solution: Jazzer.</description>
    </item>
    
    <item>
      <title>Getting started with plugin development for JetBrains IDEs like IntelliJ, Goland, and Android Studio</title>
      <link>https://symflower.com/en/company/blog/2022/getting-started-with-intellij-plugin-development/</link>
      <pubDate>Fri, 17 Jun 2022 08:00:00 +0100</pubDate>
      
      <guid>https://symflower.com/en/company/blog/2022/getting-started-with-intellij-plugin-development/</guid>
      <description>Check out all the posts in our IntelliJ plugin development series:
All you need to know for IntelliJ plugin development
 No matter what your technical background as a developer looks like, you&amp;rsquo;ve probably come across or even used an IDE from JetBrains. Their product line features IDEs for various languages and technologies and they&amp;rsquo;re all built according to the same schema: Atop an extensible core (&amp;ldquo;IntelliJ platform&amp;rdquo;) sits a set of curated extensions that provides all of the &amp;ldquo;integrated&amp;rdquo; functionality of the IDE.</description>
    </item>
    
    <item>
      <title>Reusing a software development workflow for creative work</title>
      <link>https://symflower.com/en/company/blog/2022/graphic-creation-workflow/</link>
      <pubDate>Mon, 13 Jun 2022 08:29:24 +0100</pubDate>
      
      <guid>https://symflower.com/en/company/blog/2022/graphic-creation-workflow/</guid>
      <description>Creating illustrations on conceptual issues is a very tedious task which is often required when working on a product for software developers. Though tedious, illustrating those abstract concepts well makes them both more appealing and comprehensible for the reader. Even the simplest icons need thought and time put into them and in a perfect world we would have an endless amount of time for each and every one of those graphics.</description>
    </item>
    
    <item>
      <title>What is the testing pyramid and how to use it? [&#43;Example]</title>
      <link>https://symflower.com/en/company/blog/2022/testing-pyramid/</link>
      <pubDate>Fri, 03 Jun 2022 08:29:24 +0100</pubDate>
      
      <guid>https://symflower.com/en/company/blog/2022/testing-pyramid/</guid>
      <description>In the software world we have an ever growing collection of testing technologies at our disposal. Mainly there are three levels on which testing is commonly performed: the unit-, integration- and system-level. Oftentimes, it is not clear which functionality should be tested on which level.When should we write a unit, integration and system tests exactly? Should, for instance, every feature be verified using a system test? In this blog post we revisit the testing pyramid, which is a best practice that can be used to answer exactly these questions.</description>
    </item>
    
    <item>
      <title>Rapidly write tests in IntelliJ IDEA and Goland with test templates</title>
      <link>https://symflower.com/en/company/blog/2022/test-templates-in-intellij/</link>
      <pubDate>Thu, 02 Jun 2022 12:00:00 +0100</pubDate>
      
      <guid>https://symflower.com/en/company/blog/2022/test-templates-in-intellij/</guid>
      <description>Test templates help you write and maintain manually-written unit tests more easily and quicker than doing it entirely by hand. The test template generator in our IntelliJ plugin takes care of repetitive boilerplate code, allowing you to focus on the implementation of your test case. Moreover, given the right test framework the Symflower test skeleton feature adds the right checks to the boilerplate of your tests so you type even less.</description>
    </item>
    
    <item>
      <title>The software testing jungle</title>
      <link>https://symflower.com/en/company/blog/2022/testing-jungle/</link>
      <pubDate>Tue, 17 May 2022 08:29:24 +0100</pubDate>
      
      <guid>https://symflower.com/en/company/blog/2022/testing-jungle/</guid>
      <description>There are hundreds of different kinds of software testing types around. Why is that? Because every functional and non-functional requirement of a software product needs to be tested, otherwise one might face lots of unpleasant surprises once the changes go live. But do we really need all of them? Probably not. However, we should know about the basic testing types and approaches that exist. Only then we can make an informed decision on what we should incorporate into our own testing strategies.</description>
    </item>
    
    <item>
      <title>Review generated unit tests, instead of writing them by hand</title>
      <link>https://symflower.com/en/company/blog/2022/test-review-workflow/</link>
      <pubDate>Thu, 12 May 2022 08:00:00 +0100</pubDate>
      
      <guid>https://symflower.com/en/company/blog/2022/test-review-workflow/</guid>
      <description>Unit tests are essential for fast but safe development. They freeze intended behavior, and therefore let us find bugs due to changes or refactoring hiccups with ease. This saves us a lot of time which we don&amp;rsquo;t spend on debugging. Nonetheless, writing and maintaining unit tests takes precious development time away.
At Symflower, our vision is that no one has to write unit tests by hand anymore. Instead, unit tests are generated, and only reviewed by the developer.</description>
    </item>
    
    <item>
      <title>The essential guide for SEO using meta tags</title>
      <link>https://symflower.com/en/company/blog/2022/essential-guide-to-seo-using-meta-tags/</link>
      <pubDate>Wed, 11 May 2022 08:29:24 +0100</pubDate>
      
      <guid>https://symflower.com/en/company/blog/2022/essential-guide-to-seo-using-meta-tags/</guid>
      <description>Why should you care about meta tags? Well, meta tags help ensure your website works as intended. They present your page in the optimal way to search engines and social media websites, thus helping your users with better content, and you increase your traffic and decrease your bounce rate. All while staying invisible to the user. A bit like ninjas.
Some important terms you should know when working on SEO:</description>
    </item>
    
    <item>
      <title>Using custom CSS to change websites to your desires</title>
      <link>https://symflower.com/en/company/blog/2022/custom-css/</link>
      <pubDate>Tue, 03 May 2022 08:29:24 +0100</pubDate>
      
      <guid>https://symflower.com/en/company/blog/2022/custom-css/</guid>
      <description>Do you have a website or web application that would be more readable if the style would just change a little bit? We faced the same problem at Symflower with GitLab because the names of our CI jobs are too long to be fully readable in the web interface. Instead of painfully finding out if such a change would be accepted, we fixed it for ourselves by customizing GitLab&amp;rsquo;s CSS live through the browser.</description>
    </item>
    
    <item>
      <title>Programming principle &#34;DRY&#34;: Don&#39;t Repeat Yourself</title>
      <link>https://symflower.com/en/company/blog/2022/programming-principle-dry/</link>
      <pubDate>Fri, 29 Apr 2022 08:29:24 +0100</pubDate>
      
      <guid>https://symflower.com/en/company/blog/2022/programming-principle-dry/</guid>
      <description>This article offers a fresh perspective on the programming principle Don&amp;rsquo;t Repeat Yourself (DRY) and showcases how we embrace DRY internally at Symflower. DRY is most commonly applied in the following three scenarios, even though we often might not notice that we are actually fulfilling this principle:
 Functions: Refactor statement sequences that are repeated over and over in reusable functions. Inheritance: Eliminate repetition among the implementation of similar classes by properly using inheritance or embedding.</description>
    </item>
    
    <item>
      <title>Switch between unit test styles of Go and Java</title>
      <link>https://symflower.com/en/company/blog/2022/different-test-styles-and-how-to-switch-between-them/</link>
      <pubDate>Wed, 27 Apr 2022 11:21:00 +0100</pubDate>
      
      <guid>https://symflower.com/en/company/blog/2022/different-test-styles-and-how-to-switch-between-them/</guid>
      <description>Have you ever asked yourself how to name and structure your automated tests, which assertions you should use and how to implement sub-tests? The answers to these questions make up your test style. Choosing the right style can make a huge difference in how productive you are in maintaining your tests. At Symflower we have developed our own test style optimized for debuggability, readability and understandability. It is the default for our unit test generation and unit test templates.</description>
    </item>
    
    <item>
      <title>Best practices for Java and Go unit tests: naming conventions and structure</title>
      <link>https://symflower.com/en/company/blog/2022/best-practices-for-test-files/</link>
      <pubDate>Wed, 20 Apr 2022 08:29:24 +0100</pubDate>
      
      <guid>https://symflower.com/en/company/blog/2022/best-practices-for-test-files/</guid>
      <description>When applying unit testing on your software, you&amp;rsquo;ll likely end up with lots of unit tests. In order to stay organized so that your test package structure is transparent and easy for other collaborators to work with, you&amp;rsquo;ll need to establish a Java (or Go) test naming convention for your unit tests, and you&amp;rsquo;ll also need to define a Java (or Go) test directory where you&amp;rsquo;ll be storing those tests.</description>
    </item>
    
    <item>
      <title>Programming principle &#34;Chesterton&#39;s Fence&#34;: Understand the current state before changing it</title>
      <link>https://symflower.com/en/company/blog/2022/programming-principle-chestertons-fence/</link>
      <pubDate>Thu, 14 Apr 2022 08:29:24 +0100</pubDate>
      
      <guid>https://symflower.com/en/company/blog/2022/programming-principle-chestertons-fence/</guid>
      <description>Programming principles (also called coding principles or conventions) are guidelines that help us prevent making &amp;ldquo;unfavorable&amp;rdquo; design decisions during coding. That is why every developer should know about them and make it a habit to revisit these concepts from time to time. Chesterton&amp;rsquo;s Fence is a very old principle that is not limited to coding, but helps you in your everyday life. In essence it tells us to first attempt to understand the current state of something before we go ahead and change it.</description>
    </item>
    
    <item>
      <title>Java unit test templates: Reducing boilerplate code</title>
      <link>https://symflower.com/en/company/blog/2022/less-boiler-plate-with-java-test-templates/</link>
      <pubDate>Thu, 07 Apr 2022 12:00:00 +0100</pubDate>
      
      <guid>https://symflower.com/en/company/blog/2022/less-boiler-plate-with-java-test-templates/</guid>
      <description>Unit tests are not just a nice-to-have, but a must-have in most projects. They let you focus on your implementation as the existing behavior can be freezed with a good unit test suite, that is, there will be no surprises when you change the implementation.
However, there is probably a small part in every developer&amp;rsquo;s brain which thinks &amp;ldquo;unit tests, oh no, not again&amp;rdquo;. At Symflower, we want to help you to silence this voice in your head by equipping you with the best tools possible for hassle-free unit testing.</description>
    </item>
    
    <item>
      <title>A COMPLETE guide on how to make Docker images even smaller</title>
      <link>https://symflower.com/en/company/blog/2022/complete-guide-on-shrinking-container-images/</link>
      <pubDate>Sun, 13 Mar 2022 16:40:00 +0100</pubDate>
      
      <guid>https://symflower.com/en/company/blog/2022/complete-guide-on-shrinking-container-images/</guid>
      <description>These days everything is either moving or already running in containers when it comes to software infrastructure. The very first container of Symflower was not for our product, some service or our website, it was our continuous integration (CI). Starting off with an almost tiny 100MB, we noticed that our baby Docker container image has grown to a full-size monster with a whopping 6.2GB. Here is a step-by-step guide on how you can reduce the size of your container images and how we slimmed down our oversized monster image.</description>
    </item>
    
    <item>
      <title>How to auto-generate advanced forms using Formly</title>
      <link>https://symflower.com/en/company/blog/2022/how-to-auto-generate-forms-with-formly/</link>
      <pubDate>Tue, 08 Mar 2022 09:30:00 +0100</pubDate>
      
      <guid>https://symflower.com/en/company/blog/2022/how-to-auto-generate-forms-with-formly/</guid>
      <description>Nearly every programmer has experienced long and confusing code at least once in their lives. Such complexity often happens naturally during development, by adding new code to improve the product. Additionally, when new people start working on a piece of code, it can be very hard for them to navigate. One excellent solution to such complexity issues is the reduction of source code by auto-generating everything that is just boilerplate.</description>
    </item>
    
    <item>
      <title>Writing better table-driven tests: pros and cons of different unit testing styles</title>
      <link>https://symflower.com/en/company/blog/2022/better-table-driven-testing/</link>
      <pubDate>Mon, 21 Feb 2022 08:29:24 +0100</pubDate>
      
      <guid>https://symflower.com/en/company/blog/2022/better-table-driven-testing/</guid>
      <description>Ever wondered what the best style for writing unit tests is? We at Symflower have a certain take on that. We developed a test style optimized towards debuggability, readability and understandability. This reduces the time spent on finding failing tests and understanding test cases, and therefore allows us to spend more time on actual development. We also created an extension for GoLand and Visual Studio Code to help us write those unit tests.</description>
    </item>
    
    <item>
      <title>How real-time autonomous unit testing can help you develop better software</title>
      <link>https://symflower.com/en/company/blog/2022/how-real-time-autonomous-unit-testing-helps-you/</link>
      <pubDate>Thu, 03 Feb 2022 08:29:24 +0100</pubDate>
      
      <guid>https://symflower.com/en/company/blog/2022/how-real-time-autonomous-unit-testing-helps-you/</guid>
      <description>Having to deal with code quality issues deep in a project&amp;rsquo;s life-cycle is a shared nightmare between all developers. There is nothing worse than being knee-deep in development – or, in a worst-case scenario, already in production – and realizing that the code you&amp;rsquo;re working with is full of holes that will impact the product&amp;rsquo;s success.
When looking into catching code quality issues early on, unit testing is always an essential cornerstone.</description>
    </item>
    
    <item>
      <title>Getting started with Visual Studio Code extension development</title>
      <link>https://symflower.com/en/company/blog/2022/getting-started-with-visual-studio-code-extension-development/</link>
      <pubDate>Wed, 26 Jan 2022 16:40:00 +0100</pubDate>
      
      <guid>https://symflower.com/en/company/blog/2022/getting-started-with-visual-studio-code-extension-development/</guid>
      <description>Most developers have used Visual Studio Code at some point in their careers. It has been voted the most popular IDE of 2021 by respondents of the StackOverflow developer survey, and its appeal is clear as ever. While the base program provides a framework for an IDE, all of the language support and special features are delivered as extensions, which makes it easy to extend and customize your installation.</description>
    </item>
    
    <item>
      <title>Methods for automated test value generation</title>
      <link>https://symflower.com/en/company/blog/2022/methods-for-automated-test-value-generation/</link>
      <pubDate>Thu, 20 Jan 2022 08:29:24 +0100</pubDate>
      
      <guid>https://symflower.com/en/company/blog/2022/methods-for-automated-test-value-generation/</guid>
      <description>In the first blog post of our blog series on Symflower&amp;rsquo;s Core Technology, we explained how symbolic execution works and how we apply it to test source code and generate unit tests. Part 2 covers the Static Single Asssignment Form (SSA). In this post, we explain why we decided to go with it, and why symbolic execution is superior to other methods that aim to generate test values.</description>
    </item>
    
    <item>
      <title>Go 1.18 - native Fuzzing and Dinosaurs</title>
      <link>https://symflower.com/en/company/blog/2022/go-beta-fuzzing-vs-symflower/</link>
      <pubDate>Wed, 12 Jan 2022 08:29:24 +0100</pubDate>
      
      <guid>https://symflower.com/en/company/blog/2022/go-beta-fuzzing-vs-symflower/</guid>
      <description>Last month, the Go language team released the Go 1.18. It contains the much awaited generic support, which we&amp;rsquo;re very excited to try out. We also noticed some other interesting changes in the beta announcement: the Go language now also has built-in support for fuzzing-based testing. Let&amp;rsquo;s take a look at this exciting new release, and while we&amp;rsquo;re there, compare it with the testing capabilities of Symflower.
The running example  Here we have a simple example where we check if a particular animal is allowed to board Noah&amp;rsquo;s Ark.</description>
    </item>
    
    <item>
      <title>How to set up a MacOS CI for Gitlab</title>
      <link>https://symflower.com/en/company/blog/2021/macos-ci-for-gitlab/</link>
      <pubDate>Wed, 15 Dec 2021 10:00:00 +0100</pubDate>
      
      <guid>https://symflower.com/en/company/blog/2021/macos-ci-for-gitlab/</guid>
      <description>With Symflower CLI, a major part of our product is required to run as a binary on the local machine. Since we use Linux in the company, the first version of Symflower was first and foremost designed to run on that operating system. However, as we aim to deliver our product to a wide customer base, we have been working towards being able to support other operating systems as well.</description>
    </item>
    
    <item>
      <title>Debugging flaky infinite loops</title>
      <link>https://symflower.com/en/company/blog/2021/untilfail/</link>
      <pubDate>Tue, 07 Dec 2021 08:29:24 +0100</pubDate>
      
      <guid>https://symflower.com/en/company/blog/2021/untilfail/</guid>
      <description>There are tons of great open source solutions that help us every day to develop, test, and debug our software products — Symflower CLI, Visual Studio Code, the Delve debugger, or the testify unit testing framework are just a few wonderful examples. In the past few years, we&amp;rsquo;ve tweaked and extended this nifty set of little helpers and tools to even further improve our daily programming workflow. We want to give back to the amazing open source community by releasing some of our internal tools to the public.</description>
    </item>
    
    <item>
      <title>Secret features in your Unix shell: CDPATH</title>
      <link>https://symflower.com/en/company/blog/2021/cdpath/</link>
      <pubDate>Fri, 26 Nov 2021 10:00:00 +0100</pubDate>
      
      <guid>https://symflower.com/en/company/blog/2021/cdpath/</guid>
      <description>Have you ever noticed that when you type a single letter in your browser&amp;rsquo;s address bar, it will automagically suggest the website you want to visit?
In essence, websites are just visually pleasing representations of data. Old-fashioned programmers don&amp;rsquo;t use websites for reading, writing and test-driving their code, but work with raw files and directories.
Much like a browser&amp;rsquo;s address bar, computer programs have the notion of a &amp;ldquo;current directory&amp;rdquo;.</description>
    </item>
    
    <item>
      <title>Social activities for your team during lockdown: Meme of the Month</title>
      <link>https://symflower.com/en/company/blog/2021/meme-of-the-month/</link>
      <pubDate>Thu, 25 Nov 2021 08:29:24 +0100</pubDate>
      
      <guid>https://symflower.com/en/company/blog/2021/meme-of-the-month/</guid>
      <description>There&amp;rsquo;s no way around it: regardless of the specific market or sector, practically every kind of company has been affected by the COVID-19 pandemic happening in the past two years. Most of us had to scale back our office presence, cut back on seeing our coworkers in real life, and switch to a completely remote setup altogether, drastically changing how we work and our everyday lives.
Startups and small teams are arguably the types of groups most affected by the lack of personal interaction: as a tight-knit band of people working towards a common, but often hard to achieve goal, not becoming completely disconnected from one another is key in times of lock down.</description>
    </item>
    
    <item>
      <title>What is the Static Single Assignment Form (SSA) and when to use it?</title>
      <link>https://symflower.com/en/company/blog/2021/ssa/</link>
      <pubDate>Wed, 17 Nov 2021 08:29:24 +0100</pubDate>
      
      <guid>https://symflower.com/en/company/blog/2021/ssa/</guid>
      <description>When coding, we are used to reassigning variables repeatedly. Just take for (int i = 0; i &amp;lt; 100; i++) { } as an example, where the value of i changes a hundred times after its initialization. But what happens when we allow variables to be assigned only once? And why should we even do it?
💡 Check out our core technology series
 Part 1: What is symbolic execution for software programs?</description>
    </item>
    
    <item>
      <title>Testing network requests with Cypress</title>
      <link>https://symflower.com/en/company/blog/2021/testing-network-requests-with-cypress/</link>
      <pubDate>Thu, 04 Nov 2021 10:29:24 +0100</pubDate>
      
      <guid>https://symflower.com/en/company/blog/2021/testing-network-requests-with-cypress/</guid>
      <description>We&amp;rsquo;ve covered the general reasons why we&amp;rsquo;ve chosen to use Cypress in our previous blogpost about testing. In this next article, we will go into details about how Cypress can be used to run tests for network requests.
The most important step when it comes to fixing bugs is finding a reproducible test to use. For Java, we can use Symflower but in Typescript/Angular using Jasmine, it can be hard to write a reproducible test, which is one of the reasons why we have chosen Cypress for the job.</description>
    </item>
    
    <item>
      <title>Design guidelines for startups: why you should have one too</title>
      <link>https://symflower.com/en/company/blog/2021/design-guides/</link>
      <pubDate>Fri, 29 Oct 2021 12:00:00 +0100</pubDate>
      
      <guid>https://symflower.com/en/company/blog/2021/design-guides/</guid>
      <description>Out of all the factors that influence a business&#39; success, brand image is perhaps one of the most impactful ones. The way your company is perceived by potential users, customers, and business partners can make or break your success, and being consistent and on-brand is a huge part of that. The world&amp;rsquo;s largest companies spend astronomical amounts of money on brand guidelines and design/style guides: even a logo, which is only part of that equation, could cost up to millions of dollars, and for a good reason.</description>
    </item>
    
    <item>
      <title>Recap: B2B Software Days 2021 QnA</title>
      <link>https://symflower.com/en/company/blog/2021/b2b-software-days/</link>
      <pubDate>Thu, 21 Oct 2021 15:02:30 +0200</pubDate>
      
      <guid>https://symflower.com/en/company/blog/2021/b2b-software-days/</guid>
      <description>As part of our efforts to be active in the software development and testing community and meetup space, we took part in the 2021 B2B Software Days event during May 10-12, 2021. To bring our readers a little bit of what happened back at the event, we&amp;rsquo;ve decided to go through the list of questions Evelyn Haslinger received while there — as well as her answers to them. Let&amp;rsquo;s take a look, shall we?</description>
    </item>
    
    <item>
      <title>Why do we need software testing?</title>
      <link>https://symflower.com/en/company/blog/2021/software-testing-the-ugly-duckling/</link>
      <pubDate>Mon, 11 Oct 2021 10:29:24 +0100</pubDate>
      
      <guid>https://symflower.com/en/company/blog/2021/software-testing-the-ugly-duckling/</guid>
      <description>More often than not, software testing is perceived as necessary evil by developers. Coding new features is more fun and is also often thought to require more skill than testing, which is why in many projects, senior developers are the ones to focus on the production code, while writing tests is left to the junior developers and interns. But testing code and automating things should require the same care and skill as working on your product — at least if you do not want to end up in a maintenance nightmare that tempts you on a daily basis to delete those failing tests instead of fixing them.</description>
    </item>
    
    <item>
      <title>What is symbolic execution for software programs?</title>
      <link>https://symflower.com/en/company/blog/2021/symbolic-execution/</link>
      <pubDate>Thu, 07 Oct 2021 08:29:24 +0100</pubDate>
      
      <guid>https://symflower.com/en/company/blog/2021/symbolic-execution/</guid>
      <description>While the concept of symbolic execution (SE) was introduced in the 1970s, it has mostly been relevant for scientists in the decades since. In essence, symbolic execution provides a way to analyze a piece of software to identify the inputs that lead to the execution of each and every path of the program.
Ongoing research into the field of symbolic execution has enabled the practical application of this awesome technology.</description>
    </item>
    
    <item>
      <title>UI system tests with Cypress</title>
      <link>https://symflower.com/en/company/blog/2021/ui-system-tests-with-cypress/</link>
      <pubDate>Wed, 29 Sep 2021 10:29:24 +0100</pubDate>
      
      <guid>https://symflower.com/en/company/blog/2021/ui-system-tests-with-cypress/</guid>
      <description>At Symflower we started off writing our UI system tests with Jasmine, but switched later on to Cypress. This blog post summarizes our experiences with Jasmine and why it pays off to switch to a framework that better fit your requirements.
Generally when bugs appear in a UI, a bug report may look like this:
 Go to page X. Click element Y. See that Z does not work.</description>
    </item>
    
    <item>
      <title>How to solve a 40-year-old riddle with a few lines of code</title>
      <link>https://symflower.com/en/company/blog/2021/40-year-old-riddle-solved/</link>
      <pubDate>Fri, 17 Sep 2021 10:29:24 +0100</pubDate>
      
      <guid>https://symflower.com/en/company/blog/2021/40-year-old-riddle-solved/</guid>
      <description>Bring light into your math problems by modeling them and letting a solver do the heavy lifting. In this blog post we will show you a clever way to solve a riddle. For that end, we will model it as a satisfiability modulo theories (SMT) problem and let a theorem prover hand us the solution. You might know the riddle in question, it is about figuring out how fast four persons can cross a bridge at night.</description>
    </item>
    
    <item>
      <title>What are the different code coverage types? Test coverage explained</title>
      <link>https://symflower.com/en/company/blog/2021/coverage-types-explained/</link>
      <pubDate>Mon, 06 Sep 2021 15:02:30 +0200</pubDate>
      
      <guid>https://symflower.com/en/company/blog/2021/coverage-types-explained/</guid>
      <description>In certain GitHub repositories, e.g. Apache ShardingSphere, you can find so-called code coverage badges provided by services like codecov.io. You might have an intuitive understanding of what code coverage means, but did you know that there are different coverage types and that the expressiveness of the reached coverage depends on which type you choose? In this blog post, we&amp;rsquo;ll take a look at what code coverage is, what types of coverage exist, and what they tell you about your software quality.</description>
    </item>
    
    <item>
      <title>How to make Angular use a relative path for your application</title>
      <link>https://symflower.com/en/company/blog/2021/path-independent-angular/</link>
      <pubDate>Mon, 23 Aug 2021 12:38:00 +0200</pubDate>
      
      <guid>https://symflower.com/en/company/blog/2021/path-independent-angular/</guid>
      <description>Or: How I spent a whole week removing a slash from a URL.
  This post guides you through solutions for path-independence in Angular applications.
Table of contents:
 How-to: path-independence for Angular applications  How to make Angular use a relative path for your app   About that trailing slash&amp;hellip;  Understanding the problem with base URLs The way out: patching minified bundles? The inline-script hack After hours: slash the slash   Conclusion  Suppose you&amp;rsquo;re writing an Angular application and you want it to be available regardless of what URL you host it under.</description>
    </item>
    
    <item>
      <title>Frictionless code review workflow using the GitLab API</title>
      <link>https://symflower.com/en/company/blog/2021/gitlab-reviews/</link>
      <pubDate>Sun, 11 Apr 2021 10:29:24 +0100</pubDate>
      
      <guid>https://symflower.com/en/company/blog/2021/gitlab-reviews/</guid>
      <description>Like many software development teams, we use GitLab to manage our product&amp;rsquo;s lifecycle, from milestone planning to CI/CD. We heavily rely on code review to catch potential problems before they can affect our customers.
To make changes to a software project on GitLab, a developer needs to create a merge request (MR). Other developers can comment on this merge request to ask questions, request changes and finally, approve of these changes.</description>
    </item>
    
    <item>
      <title>A complete guide to software testing</title>
      <link>https://symflower.com/en/company/blog/2021/complete-guide-to-software-testing/</link>
      <pubDate>Sat, 03 Apr 2021 10:29:24 +0100</pubDate>
      
      <guid>https://symflower.com/en/company/blog/2021/complete-guide-to-software-testing/</guid>
      <description>We&amp;rsquo;re kicking off Symflower&amp;rsquo;s series of blog posts about fundamental software testing strategies and insights. Our guide to software testing series will help you understand key concepts and techniques related to testing your software applications, and will also provide best practices for a bug-free future!
Why software testing tends to be overlooked?  If you think back on how you learned programming, there&amp;rsquo;s some chance software testing hasn&amp;rsquo;t made it in your top 10&amp;hellip; In many computer science study programs, software testing falls quite short altogether.</description>
    </item>
    
    <item>
      <title>Finding test values: it&#39;s not black magic, it&#39;s simply math</title>
      <link>https://symflower.com/en/company/blog/2021/it-is-simply-math/</link>
      <pubDate>Tue, 23 Mar 2021 10:29:24 +0100</pubDate>
      
      <guid>https://symflower.com/en/company/blog/2021/it-is-simply-math/</guid>
      <description>We are solving math problems on a daily basis since we were little children. Starting with the pressing question of how many sweets we can buy with our weekly pocket money, finding the perfect timetable during our university education or figuring out whether we can afford the loan for our dream house. For example, we at Symflower ask ourselves questions like &amp;ldquo;What are the different paths through code?&amp;rdquo; and &amp;ldquo;How can we find input values for a function to cover all interesting execution paths?</description>
    </item>
    
    <item>
      <title>Using git-autofixup to effortlessly correct your Git commits</title>
      <link>https://symflower.com/en/company/blog/2021/git-autofixup/</link>
      <pubDate>Thu, 04 Mar 2021 10:29:24 +0100</pubDate>
      
      <guid>https://symflower.com/en/company/blog/2021/git-autofixup/</guid>
      <description>The version control system Git gives us powerful tools to orchestrate collaborative software development. Developers use code reviews to catch many issues long before a customer would notice them. To address issues that are found during a review, a developer typically has to make numerous small changes. This can be a tedious process, involving lots of busywork.
To address review comments, you often want to modify earlier commits that were not quite right.</description>
    </item>
    
    <item>
      <title>Try Symflower for free</title>
      <link>https://symflower.com/en/company/blog/2021/symflower-for-free/</link>
      <pubDate>Mon, 22 Feb 2021 10:29:24 +0100</pubDate>
      
      <guid>https://symflower.com/en/company/blog/2021/symflower-for-free/</guid>
      <description>Symflower employs deep source code analyses and mathematical models to fully automatically write, run and analyze unit tests, covering all interesting paths through your software programs. These high coverage test suites ensure that corner cases are hardly missed. Each found problem can be readily reproduced and ensured to be fixed by executing the provided unit tests. With Symflower you can finally focus on what you do best: developing great software.</description>
    </item>
    
    <item>
      <title>How new ways of retrospectives improve the productivity and well-being of your team and company</title>
      <link>https://symflower.com/en/company/blog/2020/retrospective/</link>
      <pubDate>Wed, 02 Dec 2020 12:44:55 +0000</pubDate>
      
      <guid>https://symflower.com/en/company/blog/2020/retrospective/</guid>
      <description>At Symflower we strive for continuous improvement at all levels and areas. From our point of view this principle is only possible through joint reflection and an open feedback culture throughout the organisation. In order to make this happen we apply Scrum retrospectives on a regular basis. In this blog post we provide you an understanding of how we adapted this well-known tool from agile software development and we solve the mystery behind the fancy &amp;ldquo;retro box&amp;rdquo;.</description>
    </item>
    
    <item>
      <title>Interns: the hidden treasures of your summer months</title>
      <link>https://symflower.com/en/company/blog/2020/interns/</link>
      <pubDate>Tue, 10 Nov 2020 15:28:49 +0100</pubDate>
      
      <guid>https://symflower.com/en/company/blog/2020/interns/</guid>
      <description>Over the course of my education I (Evelyn Haslinger) did several internships. The disillusioning reality of most of these internships was that I would have spent my summers better off by doing literally anything else. My last internship was at the end of my undergraduate studies where I didn&amp;rsquo;t even receive a workstation: I was sitting between two coworkers and could watch them work. At that point, I had 8 years of programming experience and clearly could have pulled my weight.</description>
    </item>
    
    <item>
      <title>What are Integer Overflows and how to detect them automatically?</title>
      <link>https://symflower.com/en/company/blog/2020/overflows/</link>
      <pubDate>Mon, 19 Oct 2020 15:28:49 +0100</pubDate>
      
      <guid>https://symflower.com/en/company/blog/2020/overflows/</guid>
      <description>Ariane 5, Boeing&amp;rsquo;s 787 Dreamliner and a 105-year old swedish lady who has to go to preschool. All these events have one thing in common – they were caused by software errors. Today we show you how the number 2,147,483,647 (two billion one hundred and forty-seven million four hundred and eighty-three thousand six hundred and forty-seven) connects to these historic incidents.
How Overflows Come to be  Basically a software solution works with variables.</description>
    </item>
    
    <item>
      <title>Hiring and onboarding during the Covid19 lockdown</title>
      <link>https://symflower.com/en/company/blog/2020/remote-onboarding/</link>
      <pubDate>Tue, 21 Apr 2020 15:28:49 +0100</pubDate>
      
      <guid>https://symflower.com/en/company/blog/2020/remote-onboarding/</guid>
      <description>Since March 16 most of Austria&amp;rsquo;s companies are obliged to switch to remote work. The transition from on-site work to pure remote work went really smooth for Symflower. Mostly because many of our employees already worked from home for 1-2 days per week and all processes were already digitalised. However, can our hiring and onboarding process cope with new employees during Covid19?
 Can remote hiring and onboarding work?  Symflower is growing fast.</description>
    </item>
    
    <item>
      <title>Symflower is part of the latest campaign of the Austrian Federal Economic Chamber #schaffenwir</title>
      <link>https://symflower.com/en/company/blog/2019/schaffen-wir/</link>
      <pubDate>Mon, 09 Dec 2019 15:00:49 +0100</pubDate>
      
      <guid>https://symflower.com/en/company/blog/2019/schaffen-wir/</guid>
      <description>The Austrian Federal Economic Chamber (WKO) has launched with #schaffenwir its latest campaign to put a stronger focus on local companies and their employees. From now on Symflower and its team will also be represented in the category “Innovation” and will contribute to the Austrian economic performance with its successful story.
  The initiative of the WKO has been running since October 15th and enables companies to introduce themselves via the platform #schaffenwir.</description>
    </item>
    
    <item>
      <title>Symflower at the Ingram Micro Top 2019</title>
      <link>https://symflower.com/en/company/blog/2019/ingram-micro-top-2019/</link>
      <pubDate>Thu, 19 Sep 2019 15:00:49 +0100</pubDate>
      
      <guid>https://symflower.com/en/company/blog/2019/ingram-micro-top-2019/</guid>
      <description>Innovation meets tradition at the Ingram Micro Top. With it&amp;rsquo;s 17th edition the event has traditional character in the IT industry. Annually the latest innovations are represented in the course of the trade fair. More than 1,600 trade visitors and the &amp;ldquo;Who&amp;rsquo;s Who&amp;rdquo; of the information and communications industry gather in Vösendorf. The event pyramid with its 6000m² is an ideal venue for events.
  Symflower was also represented there this year.</description>
    </item>
    
    <item>
      <title>Symflower is moving</title>
      <link>https://symflower.com/en/company/blog/2019/symflower-is-moving/</link>
      <pubDate>Tue, 02 Jul 2019 15:00:49 +0100</pubDate>
      
      <guid>https://symflower.com/en/company/blog/2019/symflower-is-moving/</guid>
      <description>After 18 months in the Tech2b startup incubator, it is time for us to move to our own office. We really enjoyed our time at Tech2b and we wish our mentors and colleagues all the best. Thank you for the pleasant and informative time.
  The search for a suitable office has been more elaborate than expected. In the end, it took us several viewing appointments to get a new office just a single building complex down the road.</description>
    </item>
    
    <item>
      <title>Symflower at the Mobile World Congress 2019 in Barcelona</title>
      <link>https://symflower.com/en/company/blog/2019/mobile-world-congress-2019/</link>
      <pubDate>Mon, 29 Apr 2019 14:26:49 +0100</pubDate>
      
      <guid>https://symflower.com/en/company/blog/2019/mobile-world-congress-2019/</guid>
      <description>Symflower looks back at the #MWC19. After 8 weeks we have finished our post-processing and are able to look back on a successful and exciting Mobile World Congress 2019. Let me start by concluding that we will definitely come back next year.
Under the slogan: &amp;ldquo;This is what we are waiting for&amp;rdquo;, the four-day trade fair started in the Catalan metropolis. With more than 109 000 visitors from 198 countries the Mobile World Congress Barcelona was a great success.</description>
    </item>
    
    <item>
      <title>Symflower&#39;s tech2b graduation</title>
      <link>https://symflower.com/en/company/blog/2019/tech2b-sponsion/</link>
      <pubDate>Mon, 25 Mar 2019 19:00:49 +0100</pubDate>
      
      <guid>https://symflower.com/en/company/blog/2019/tech2b-sponsion/</guid>
      <description>Symflower at its tech2b graduation. Startups who have successfully completed their incubation with tech2b are honored in a graduation ceremony. We were honored with the &amp;ldquo;winner diploma&amp;rdquo; by tech2b in front of representatives of economy and press.
 Photo: Land OÖ / Vanessa Ehrengruber  The incubator tech2b supports entrepreneurs with their first steps right through to their marketability of their products and services. As a small organization, you can take avail of a wide variety of services and assistance during the course of the scale-up phase.</description>
    </item>
    
    <item>
      <title>TECHCENTER trifft NEUE WERFT - Interview</title>
      <link>https://symflower.com/en/company/blog/2019/techcenter-trifft-neue-werft-interview/</link>
      <pubDate>Thu, 07 Feb 2019 14:26:49 +0100</pubDate>
      
      <guid>https://symflower.com/en/company/blog/2019/techcenter-trifft-neue-werft-interview/</guid>
      <description>TECHCENTER meets NEUE WERFT is a (still) young format that regularly conducts interviews with founders of innovative companies. Our co-founder, Evelyn, was interviewed about Symflower as part of this series.
  The interview series with Conny Dürnberger is a weekly format which introduces companies and the personalities behind them. It takes a look at the innovations and technologies of local companies and summarizes these impressions in a short clip. The aim of this series is to give insights into the the current developments of the founder scene and to share some of the experiences of founding a company.</description>
    </item>
    
    <item>
      <title>JKU Founder&#39;s Breakfast</title>
      <link>https://symflower.com/en/company/blog/2018/jku-founders-breakfast-2018/</link>
      <pubDate>Tue, 04 Dec 2018 14:26:49 +0100</pubDate>
      
      <guid>https://symflower.com/en/company/blog/2018/jku-founders-breakfast-2018/</guid>
      <description>We have been invited to introduce Symflower at the Founder&amp;rsquo;s Breakfast of the Johannes Kepler University Linz. This event took place for the 10th time and attracted numerous visitors.
  Space for Ideas  The institute for Unternehmensgründung und Unternehmensentwicklung of the Johannes Kepler University organizes once a year an event for people who are interested in starting their own business. The participants of this event have the possibility to obtain impressions of the startup scene and talk to experts from different fields.</description>
    </item>
    
    <item>
      <title>IaaM 5 - Kubernetes Talk and Workshop</title>
      <link>https://symflower.com/en/company/blog/2018/iaam/</link>
      <pubDate>Thu, 28 Jun 2018 14:26:49 +0100</pubDate>
      
      <guid>https://symflower.com/en/company/blog/2018/iaam/</guid>
      <description>We held a Kubernetes talk and workshop at the fifth Infrastructure as a Meetup (IaaM).
Why Kubernetes?&amp;quot;  Kubernetes has become the leading framework for container orchestration, deployment and the scaling of applications. Hence, each software engineer should acquire fundamental knowledge of the possibilities and advantages that can be accessed by employing Kubernetes.
Content of the Talk and Workshop  During the talk we presented the most important basics of Kubernetes.</description>
    </item>
    
    <item>
      <title>i2b Business Plan Competition</title>
      <link>https://symflower.com/en/company/blog/2017/i2b_business_plan_competition/</link>
      <pubDate>Thu, 07 Dec 2017 14:26:49 +0100</pubDate>
      
      <guid>https://symflower.com/en/company/blog/2017/i2b_business_plan_competition/</guid>
      <description>We attended the final of the i2b business plan competition of the Austrian-Federal-Economic-Chamber. Only 15 business plans out of 232 entrants received an invitation to the final. We won the shared fourth place with Memcorby in the technical category.
Why Should You Attend?  The participation of the i2b business plan competition allowed us to receive feedback for our business model by two independent experts. Also, attending the i2b final allowed us to pitch our company and ideas in front of a jury of 50 experts.</description>
    </item>
    
    <item>
      <title>Tech2b Scale-up</title>
      <link>https://symflower.com/en/company/blog/2017/tech2b-scale-up/</link>
      <pubDate>Wed, 27 Sep 2017 14:26:34 +0100</pubDate>
      
      <guid>https://symflower.com/en/company/blog/2017/tech2b-scale-up/</guid>
      <description>We got accepted into the tech2b Scale-up program. Tech2b is an incubator in Upper Austria which supports technology- and design-orientated startups.
Why Should You Attend?  The tech2b funding offers many advantages for the incubated companies:
 Professionals that offer advice in all business areas. Economic mentors with experience in establishing a company. Various workshops about business development. Marketing-actions from tech2b, to increase the publicity of the incubated companies. Subsidies for the company establishment (like third-party-costs or office equipment).</description>
    </item>
    
    <item>
      <title>Edison der Preis of 2017</title>
      <link>https://symflower.com/en/company/blog/2017/edison-der-preis-of-2017/</link>
      <pubDate>Mon, 03 Jul 2017 12:44:55 +0000</pubDate>
      
      <guid>https://symflower.com/en/company/blog/2017/edison-der-preis-of-2017/</guid>
      <description>We attended the final of the Edison der Preis idea contest! Out of 60 entrants only 6 teams were invited for the technical category.
Why Should You Attend?  Entering the second phase of the contest allows attendees to visit various workshops that help during the development of business models, finance plans and to structure and improve pitches. At the beginning of every idea, these workshops offer an important input for the development of business concepts.</description>
    </item>
    
  </channel>
</rss>
