liveBook · Manning

Quality characteristic

As explained in Software Testing with Generative AI

An aspect of a system's quality used to organize and evaluate testing risks.

A quality characteristic is an aspect of system quality used to organize testing risks and focus analysis on what matters to users. Examples include functionality, data integrity, security, accuracy, accessibility, performance, interoperability, usability, and reliability-related concerns. section 1.2.2 section 8.1.1

Use quality characteristics to constrain and structure testing work:

  • Specify the characteristics an LLM should use when generating test ideas from a feature and its acceptance criteria. section 1.2.2
  • Generate questions that expose ambiguities in user stories, with multiple questions allowed for each selected characteristic. section 4.2.1
  • Review code for risks grouped by characteristics such as performance, security, and interoperability. section 4.2.2
  • Expand an existing risk list while excluding duplicates and irrelevant characteristics. section 8.1.1

File-upload risk analysis

A prompt for a secure document-upload feature asks an LLM to suggest test ideas focused on Functionality, Data Integrity, and Security. The resulting checks cover supported formats, the 20MB boundary, upload progress, initial access permissions, document content, and audit records. The selected characteristics keep the analysis aligned with concrete risks rather than inviting unrestricted suggestions. section 1.2.2

###
public BookingResult createBooking(Booking bookingToCreate) throws
➥SQLException {
    if(dateCheckValidator.isValid(bookingToCreate.getBookingDates())) {
        if (bookingDB.checkForBookingConflict(bookingToCreate)) {
            return new BookingResult(HttpStatus.CONFLICT);
        } else {
            CreatedBooking createdBooking = 
            ➥bookingDB.create(bookingToCreate);
 
            if(bookingToCreate.getEmail() != null && 
            ➥bookingToCreate.getPhone() != null){
                MessageBuilder messageBuilder = new MessageBuilder();
                Message message = messageBuilder.build(bookingToCreate);
 
                messageRequests.postMessage(message);
            }
 
            return new BookingResult(createdBooking, 
         ➥HttpStatus.CREATED);
        }
    } else {
        return new BookingResult(HttpStatus.CONFLICT);
    }
}
###

Inspect a booking method to see how code can be reviewed for characteristic-specific risks, including nested validation and message-posting performance concerns. section 4.2.2

How Software Testing with Generative AI covers it

How deep it goes
Defines characteristics through practical prompt constraints and examples, then applies them to requirements, code, and existing risk lists.
Examples
Uses document uploads, access management, booking code, and report-view risks to demonstrate characteristic-focused analysis.
What it assumes
Assumes a feature, user story, acceptance criteria, code sample, or existing risk list that supplies context for analysis.
What you can do after
Apply it via LLM prompts to target relevant test ideas, clarify requirements, identify code risks, and extend exploratory risk lists.
How it connects
Connects quality characteristics to testing risks, user stories, acceptance criteria, prompt engineering, code analysis, and exploratory testing.

Related concepts

This explainer was generated by Manning's knowledge graph from the text of Software Testing with Generative AI. The section links point to the parts of the book it draws on.