Используйте метод Prompt CoT для разработки тестовых примеров с использованием LLM.
Используйте метод Prompt CoT для разработки тестовых примеров с использованием LLM.

Предварительная подготовка

Язык кода:javascript
копировать
import SparkApi
import os
from dotenv import load_dotenv, find_dotenv

#Следующая ключевая информация получается из консоли

_=load_dotenv(find_dotenv())
appid = os.getenv("SPARK_APP_ID")
api_secret=os.getenv("SPARK_APP_SECRET")
api_key=os.getenv("SPARK_APP_KEY")

#Используется для настройки большой версии модели, значение по умолчанию — «general/generalv2».
# domain = "general"   # версия v1.5
domain = "generalv2"    # версия v2.0
#CloudEnvironmentиз Адрес сервиса
# Spark_url = "ws://spark-api.xf-yun.com/v1.1/chat"  # v1.5 среда из адреса
Spark_url = "ws://spark-api.xf-yun.com/v2.1/chat"  # Среда v2.0 по адресу ws(s)://spark-api.xf-yun.com/v2.1/chat


text =[]

Подскажите контент

Язык кода:javascript
копировать
def getText(role,content):
    jsoncon = {}
    jsoncon["role"] = role
    jsoncon["content"] = content
    text.append(jsoncon)
    return text

def getlength(text):
    length = 0
    for content in text:
        temp = content["content"]
        leng = len(temp)
        length += leng
    return length

def checklen(text):
    while (getlength(text) > 8000):
        del text[0]
    return text
    
if __name__ == '__main__':
    text.clear
    # разделитель
    delimiter = "####"
    # Метод разделения классов эквивалентности изChain of Thought из prompt
    ep_message=f"""{delimiter}Метод создания тестового примера класса эквивалентности заключается в разделении входных данных из области параметров на классы эквивалентности. Эти классы эквивалентности включают в себя действительные классы эквивалентностии Неверный класс эквивалентности,
                действительные классы эквивалентность означает, что входные данные представляют собой набор, который является разумным и значимым для спецификации программы, используя действительные данные. классы эквивалентности позволяет проверить, реализует ли программа функции, указанные в спецификации.
                Неверный класс эквивалентность относится к необоснованным и бессмысленным входным данным, которые составляют набор для спецификации программы, используя Неверный класс эквивалентность позволяет проверить, действительна ли программа, и избегать функций, отличных от тех, которые указаны в спецификации.
                Затем выберите несколько репрезентативных значений из каждого класса эквивалентности в качестве тестовых примеров. Репрезентативные значения каждого класса в тесте эквивалентны другим значениям в этом классе.
                Обратите особое внимание на то, что один тестовый пример может охватывать несколько тестов. классы эквивалентности, один тестовый пример может охватывать только один Неверный класс эквивалентности{delimiter}
                Использование метода проектирования тестового примера класса эквивалентности требует выполнения следующих шагов: {delimiter}
                шаг 1: {delimiter} делит входные параметры на классы эквивалентности. При разделении классов эквивалентности следует соблюдать следующие принципы: {delimiter}.
                Когда входное условие обуславливает набор входных значений или предусматривает, что условие из должно быть выполнено, может быть установлено действительное классы эквивалентностииодин Неверный класс эквивалентности。
                Когда входное условие является булевой величиной, можно определить действительное значение. классы эквивалентностииодин Неверный класс эквивалентность. Boolean — это двоичный тип перечисления, Логическая величина имеет два состояния: true и false 。
                Когда задан набор входных значений (при условии n), и программе необходимо обрабатывать каждое входное значение отдельно, n действительно может быть установлено. классы эквивалентностииодин Неверный класс Пример эквивалентности: Входной символ описания условия: один из трех типов: китайский, английский, арабский, затем примите эти три значения как три действительные. классы эквивалентности, кроме того, любой символ, кроме трех символов из, рассматривается как Неверный. класс эквивалентности。
                Истинное может быть установлено, когда предусмотрено, что входные данные должны соответствовать из правил. классы эквивалентности (соответствуют правилам) и несколько Неверный класс эквивалентности (Нарушение правил с разных сторон).
                Когда известно, что элементы разделенного класса эквивалентности обрабатываются программой по-разному, класс эквивалентности следует дополнительно разделить на более мелкие классы эквивалентности {delimiter}
                шаг 2: {delimiter} преобразует класс эквивалентности в тестовый пример в соответствии с [входными условиями][действительные классы эквивалентности][Неверный класс эквивалентности] Создайте таблицу классов эквивалентности. Таблица классов эквивалентности может быть предоставлена ​​в виде уценки. В ней перечислены все разделенные классы эквивалентности и указан уникальный номер для каждого класса эквивалентности.
                {delimiter}дизайн Тестовый пример охватывает действующие классы эквивалентности, вам нужно, чтобы этот тестовый пример охватил как можно больше вопросов, которые еще не были покрыты действующими веществами. классы эквивалентности, повторите этот шаг. Пока все издействительные классы эквивалентности, пока все не будут покрыты.
                {delimiter}Разработать новый из тестовых случаев так, чтобы он покрывал только один из Неверный, который еще не был рассмотрен класс эквивалентности, повторяйте этот шаг, пока все не из Неверный класс Пока не будет рассмотрена эквивалентность, используйте уценку для тестовых примеров. изиз табличного формата вывода. {разделитель}
                
                Вывод выводится следующим образом: {delimiter}
                step1:{delimiter} <step 1 reasoning >
                step2:{delimiter} <step 2 reasoning >
                
                Тестовый пример: {delimiter} <response to customer>
                
                """
    system_message = f"Вы старший инженер по тестированию. Ниже вы будете использовать тестовый пример класса эквивалентности. Метод тестового примера дизайна {ep_message}, {delimiter}. Введите параметры в соответствии со следующими параметрами интерфейса дизайна описания бизнеса: {delimiter}"
    user_message = f"""Тестируемая система соответствует требованиям к системе программного обеспечения для самостоятельной покупки билетов на метро. Система получает только Одновременно можно использовать только одну банкноту номиналом 5 или 10 юаней, а билеты имеют только два номинала. 5 юаней или 10 Юань. в:
                    нравиться Вставьте купюру номиналом 5 юаней и выберите покупку билета номиналом 5 юаней., выдача билетов после завершения, Подскажите,что покупка билета прошла успешно。
                    нравиться Вставьте купюру номиналом 5 юаней и выберите покупку билета номиналом 10 юаней.,Он подскажет, что суммы недостаточно и купюра в 5 юаней будет возвращена.。
                    нравиться Вставьте купюру номиналом 10 юаней и выберите покупку билета номиналом 5 юаней., выдача билетов после завершения, Подскажите, что покупка билета прошла успешно и дайте сдачу в размере 5 юаней.
                    нравиться Вставьте купюру номиналом 10 юаней и выберите покупку билета номиналом 10 юаней.,После завершения покупки билет будет выдан, что свидетельствует об успешной покупке.。
                    нравиться Кнопка невыбора типа билета в течение указанного времени после ввода банкнот, возврат банкнот, Ошибка подсказки。
                    нравиться Не вставляйте купюры после выбора кнопки покупки билета,Ошибка подсказки."""
    question = checklen(getText("user",system_message+user_message))
  
    SparkApi.main(appid,api_key,api_secret,Spark_url,domain,question)

Результат вывода:

Согласно описанию бизнеса мы можем разделить входные параметры на следующие классы эквивалентности:

действительные классы эквивалентности

Неверный класс эквивалентности

Вставьте купюру номиналом 5 юаней и выберите покупку билета номиналом 5 юаней.

Вставьте купюру номиналом 5 юаней и выберите покупку билета номиналом 10 юаней.

Вставьте купюру номиналом 5 юаней и выберите покупку билета номиналом 10 юаней.

Вставьте купюру номиналом 10 юаней и выберите покупку билета номиналом 5 юаней.

Вставьте купюру номиналом 10 юаней и выберите покупку билета номиналом 5 юаней.

Вставьте купюру номиналом 10 юаней и выберите покупку билета номиналом 10 юаней.

Кнопка невыбора типа билета в течение указанного времени после ввода банкнот

Не нажимайте кнопку покупки билета

Не вставляйте купюры после выбора кнопки покупки билета

Кнопка невыбора типа билета в течение указанного времени после ввода банкнот

Далее мы разрабатываем тестовые примеры на основе класса эквивалентности:

Номер варианта использования

входные параметры

ожидаемые результаты

1

Вставьте купюру номиналом 5 юаней и выберите покупку билета номиналом 5 юаней.

Подскажите, что покупка билета прошла успешно

2

Вставьте купюру номиналом 5 юаней и выберите покупку билета номиналом 10 юаней.

Он подскажет, что суммы недостаточно и купюра в 5 юаней будет возвращена.

3

Вставьте купюру номиналом 10 юаней и выберите покупку билета номиналом 5 юаней.

Выдача билетов после завершения,Подскажите, что покупка билета прошла успешно и дать сдачу 5 юаней

4

Вставьте купюру номиналом 10 юаней и выберите покупку билета номиналом 10 юаней.

После завершения покупки билет будет выдан, что свидетельствует об успешной покупке.

5

Кнопка невыбора типа билета в течение указанного времени после ввода банкнот

Ошибка подсказки

6

Не вставляйте купюры после выбора кнопки покупки билета

Ошибка подсказки

boy illustration
Неразрушающее увеличение изображений одним щелчком мыши, чтобы сделать их более четкими артефактами искусственного интеллекта, включая руководства по установке и использованию.
boy illustration
Копикодер: этот инструмент отлично работает с Cursor, Bolt и V0! Предоставьте более качественные подсказки для разработки интерфейса (создание навигационного веб-сайта с использованием искусственного интеллекта).
boy illustration
Новый бесплатный RooCline превосходит Cline v3.1? ! Быстрее, умнее и лучше вилка Cline! (Независимое программирование AI, порог 0)
boy illustration
Разработав более 10 проектов с помощью Cursor, я собрал 10 примеров и 60 подсказок.
boy illustration
Я потратил 72 часа на изучение курсорных агентов, и вот неоспоримые факты, которыми я должен поделиться!
boy illustration
Идеальная интеграция Cursor и DeepSeek API
boy illustration
DeepSeek V3 снижает затраты на обучение больших моделей
boy illustration
Артефакт, увеличивающий количество очков: на основе улучшения характеристик препятствия малым целям Yolov8 (SEAM, MultiSEAM).
boy illustration
DeepSeek V3 раскручивался уже три дня. Сегодня я попробовал самопровозглашенную модель «ChatGPT».
boy illustration
Open Devin — инженер-программист искусственного интеллекта с открытым исходным кодом, который меньше программирует и больше создает.
boy illustration
Эксклюзивное оригинальное улучшение YOLOv8: собственная разработка SPPF | SPPF сочетается с воспринимаемой большой сверткой ядра UniRepLK, а свертка с большим ядром + без расширения улучшает восприимчивое поле
boy illustration
Популярное и подробное объяснение DeepSeek-V3: от его появления до преимуществ и сравнения с GPT-4o.
boy illustration
9 основных словесных инструкций по доработке академических работ с помощью ChatGPT, эффективных и практичных, которые стоит собрать
boy illustration
Вызовите deepseek в vscode для реализации программирования с помощью искусственного интеллекта.
boy illustration
Познакомьтесь с принципами сверточных нейронных сетей (CNN) в одной статье (суперподробно)
boy illustration
50,3 тыс. звезд! Immich: автономное решение для резервного копирования фотографий и видео, которое экономит деньги и избавляет от беспокойства.
boy illustration
Cloud Native|Практика: установка Dashbaord для K8s, графика неплохая
boy illustration
Краткий обзор статьи — использование синтетических данных при обучении больших моделей и оптимизации производительности
boy illustration
MiniPerplx: новая поисковая система искусственного интеллекта с открытым исходным кодом, спонсируемая xAI и Vercel.
boy illustration
Конструкция сервиса Synology Drive сочетает проникновение в интрасеть и синхронизацию папок заметок Obsidian в облаке.
boy illustration
Центр конфигурации————Накос
boy illustration
Начинаем с нуля при разработке в облаке Copilot: начать разработку с минимальным использованием кода стало проще
boy illustration
[Серия Docker] Docker создает мультиплатформенные образы: практика архитектуры Arm64
boy illustration
Обновление новых возможностей coze | Я использовал coze для создания апплета помощника по исправлению домашних заданий по математике
boy illustration
Советы по развертыванию Nginx: практическое создание статических веб-сайтов на облачных серверах
boy illustration
Feiniu fnos использует Docker для развертывания личного блокнота Notepad
boy illustration
Сверточная нейронная сеть VGG реализует классификацию изображений Cifar10 — практический опыт Pytorch
boy illustration
Начало работы с EdgeonePages — новым недорогим решением для хостинга веб-сайтов
boy illustration
[Зона легкого облачного игрового сервера] Управление игровыми архивами
boy illustration
Развертывание SpringCloud-проекта на базе Docker и Docker-Compose