Operations 13 min read

Integrated Code Quality Monitoring and Crash Management Solution

This article describes an integrated solution that combines code quality monitoring during development with automated crash issue tracking after deployment, using a custom platform, Jenkins, Gradle plugins, static analysis tools, and rule-based filtering to continuously improve project reliability and performance.

Qunar Tech Salon
Qunar Tech Salon
Qunar Tech Salon
Integrated Code Quality Monitoring and Crash Management Solution

Code quality monitoring is essential for medium to large projects, yet manual testing and QA cannot catch all serious issues that may cause crashes in production; therefore, an integrated solution was devised to automate detection, assignment, and resolution of both development‑time and runtime problems.

Integrated Solution

The core of the approach revolves around the Bumblebee monitoring platform, which automates quality checks during development and tracks issues after release.

The platform’s workflow includes a monitoring entry point, task generation, task execution, and code‑quality inspection.

Quality Monitoring and Tracking

Four modules constitute the development‑stage monitoring: monitoring entry, task generation, task execution, and code‑quality checks.

Monitoring Entry Points

There are three ways to trigger monitoring:

The platform watches the code repository and automatically starts a check when changes are detected.

Developers can manually trigger a check via the platform’s UI.

A scheduled job periodically scans the repository.

When code is pushed, a WebHook invokes Jenkins to run a monitoring task; developers can also start the task via the UI, which calls Jenkins through its API; a third method uses a timed Jenkins job.

Plugin Injection Principle

During task execution, a Gradle plugin containing the full quality‑check suite (analysis, reporting, responsibility assignment) is injected into the project via a script.

The platform loads the injection script, modifies the build configuration, runs the plugin, applies check rules, resolves task dependencies, and finally performs the quality inspection, reporting results through reports and Issues to the responsible developers.

Check Rule Principle and Content

Rules are applied by traversing the project’s abstract syntax tree (AST) and checking each node. Custom rules address three problem categories: potential crash causes, performance optimizations, and coding‑standard violations. Static analysis tools such as Lint, FindBugs, PMD, and others are also integrated.

These rules help eliminate serialization issues, null‑pointer dereferences, missing resources, and other defects, while also catching unused resources, memory leaks, and similar problems.

Online Issue Tracking

After deployment, the platform continuously monitors runtime crashes, aggregates and de‑obfuscates them, creates Issues, assigns responsibility based on severity, and generates monitoring reports for the whole team.

Two main filtering strategies are used: one for ANR problems (aggregated by page and cause) and another for OOM/Exception problems (filtered by whitelist, then aggregated, de‑obfuscated, and auto‑assigned).

Case Study of the Integrated Solution

In one instance, misuse of Fresco’s Image Pipeline caused bitmap references to be retained, leading to massive crashes; a custom rule was added to detect such misuse and prevent recurrence.

Practice and Summary

The integrated solution continuously improves code quality by detecting issues early, enforcing standards, optimizing performance, and automatically handling post‑release crashes, creating a virtuous cycle that strengthens both the monitoring platform and the projects it serves.

Announcement

A React Native technical conference (YMFE Conf 2017) will be held in Beijing in mid‑October, featuring mobile front‑end experts sharing their experiences; tickets are on sale, and QR codes are provided for the conference website and ticket purchase.

Scan the QR code to visit the YMFE CONF website and buy tickets.

monitoringAutomationContinuous Integrationcode qualitystatic analysiscrash management
Qunar Tech Salon
Written by

Qunar Tech Salon

Qunar Tech Salon is a learning and exchange platform for Qunar engineers and industry peers. We share cutting-edge technology trends and topics, providing a free platform for mid-to-senior technical professionals to exchange and learn.

0 followers
Reader feedback

How this landed with the community

login Sign in to like

Rate this article

Was this worth your time?

Sign in to rate
Discussion

0 Comments

Thoughtful readers leave field notes, pushback, and hard-won operational detail here.