Jesteś botem, który generuje rekomendacje dotyczące testowania. Twoim zadaniem jest sugerowanie potencjalnych zagrożeń do przetestowania na podstawie dostarczonej historyjki użytkownika.
Oto historyjka użytkownika: {relevant_document}
Dane wprowadzone przez użytkownika to: {user_input}
Utwórz listę sugerowanych zagrożeń do przetestowania na podstawie historyjki użytkownika i danych wprowadzonych przez użytkownika.

<dependencies>

    <dependency>
        <groupId>commons-io</groupId>
        <artifactId>commons-io</artifactId>
        <version>2.16.1</version>
    </dependency>

    <dependency>
        <groupId>org.apache.commons</groupId>
        <artifactId>commons-text</artifactId>
        <version>1.12.0</version>
    </dependency>

    <dependency>
        <groupId>dev.langchain4j</groupId>
        <artifactId>langchain4j-open-ai</artifactId>
        <version>0.31.0</version>
    </dependency>

</dependencies>

public static List<String> loadFilesFromResources(String folderPath) throws IOException {
    List<String> fileContents = new ArrayList<>();

    ClassLoader classLoader = CompletedRAGDemo.class.getClassLoader();
    File folder = new File(classLoader.getResource(folderPath).getFile());

    for (File file : folder.listFiles()) {
        if (file.isFile()) {
            String fileContent = FileUtils.readFileToString(file, "UTF-8");
            fileContents.add(fileContent);
        }
    }

    return fileContents;
}

public static void main(String[] args) throws Exception {

    List<String> corpus = loadFilesFromResources("data");

    System.out.println(corpus.get(0));
}

Jesteś ekspertem w dziedzinie testowania oprogramowania, który formułuje zalecenia dotyczące pomysłów na testy i potencjalnych zagrożeń. Udzielasz odpowiedzi z sugestiami dotyczącymi zagrożeń, które należy przetestować, na podstawie dostarczonej historyjki użytkownika ograniczonej trzema haszami danych wejściowych od użytkownika ograniczonych trzema odwrotnymi apostrofami.
Przygotuj listę sugerowanych rodzajów zagrożeń do przetestowania, opierając się na historyjce użytkownika i danych wejściowych od użytkownika.
###
{relevant_document}
###
```
{user_input}
```

public static void main(String[] args) throws Exception {

    List<String> corpus = loadFilesFromResources("data");

    String prompt = """
    Jesteś ekspertem w dziedzinie testowania oprogramowania, który
    formułuje zalecenia dotyczące pomysłów na testy i potencjalnych zagrożeń.
    Udzielasz odpowiedzi z sugestiami dotyczącymi zagrożeń, które należy
    przetestować, na podstawie dostarczonej historyjki użytkownika ograniczonej
    trzema haszami danych wejściowych od użytkownika ograniczonych trzema
    odwrotnymi postrofami.
    Przygotuj listę sugerowanych rodzajów zagrożeń do przetestowania,
    opierając się na historyjce użytkownika i danych wejściowych
    od użytkownika.
    ###
    {relevant_document}
    ###
    ```
    {user_input}
    ```
    """;
}

public static String findClosestMatch(List<String> list, String query) {
    String closestMatch = null;
    double minDistance = Double.MAX_VALUE;
    CosineDistance cosineDistance = new CosineDistance();

    for (String item : list) {
        double distance = cosineDistance.apply(item, query);
        if (distance < minDistance) {
            minDistance = distance;
            closestMatch = item;
        }
    }
    return closestMatch;
}

public static void main(String[] args) throws Exception {

    System.out.println("W czym mogę Ci pomóc?");
    Scanner in = new Scanner(System.in);
    String userInput = in.nextLine();

    List<String> corpus = loadFilesFromResources("data");

    String prompt = """
    Jesteś ekspertem w dziedzinie testowania oprogramowania, który
    formułuje zalecenia dotyczące pomysłów na testy i potencjalnych zagrożeń.
    Udzielasz odpowiedzi z sugestiami dotyczącymi zagrożeń, które należy
    przetestować, na podstawie dostarczonej historyjki użytkownika ograniczonej
    trzema haszami danych wejściowych od użytkownika ograniczonych trzema
    odwrotnymi postrofami.
    Przygotuj listę sugerowanych rodzajów zagrożeń do przetestowania,
    opierając się na historyjce użytkownika i danych wejściowych
    od użytkownika.
    ###
    {relevant_document}
    ###
    ```
    {user_input}
    ```
    """;

    String closestMatch = findClosestMatch(corpus, userInput);
    prompt = prompt.replace("{relevant_document}", closestMatch)
                .replace("{user_input}", userInput);
    System.out.println(prompt);
}

Potrzebuję pomysłów na testy dla punktu końcowego GET room

Jesteś ekspertem w dziedzinie testowania oprogramowania, który formułuje zalecenia dotyczące pomysłów na testy i potencjalnych zagrożeń. Udzielasz odpowiedzi z sugestiami dotyczącymi zagrożeń, które należy przetestować, na podstawie dostarczonej historyjki użytkownika ograniczonej trzema haszami danych wejściowych od użytkownika ograniczonych trzema odwrotnymi apostrofami.
Przygotuj listę sugerowanych rodzajów zagrożeń do przetestowania, opierając się na historyjce użytkownika i danych wejściowych od użytkownika.
###
Jako gość
Aby przeglądać dostępne pokoje
Chcę mieć możliwość pobrania listy wszystkich dostępnych pokojów
Kryteria akceptacji:
* Powinienem otrzymać listę wszystkich dostępnych pokoków
* Jeśli nie ma dostępnych pokojów, powinienem otrzymać pustą listę
* Jeśli wystąpi błąd podczas pobierania listy pokojów, powinienem otrzymać komunikat o błędzie 400 Bad Request.
Kontrakt treści HTTP
{
  "rooms": [
    {
      "roomid": integer,
      "roomName": "string",
      "type": "Single",
      "accessible": true,
      "image": "string",
      "description": "string",
      "features": [
        "string"
      ],
      "roomPrice": integer
    }
  ]
}
###
```
Potrzebuję pomysłów na testy dla punktu końcowego GET room
```

Na użytek testów potrzebuję listy zagrożeń dla punktu końcowego usuwania rezerwacji


public static void main(String[] args) throws Exception {

    System.out.println("W czym mogę Ci pomóc?");
    Scanner in = new Scanner(System.in);
    String userInput = in.nextLine();

    List<String> corpus = loadFilesFromResources("data");

    String prompt = """
    Jesteś ekspertem w dziedzinie testowania oprogramowania, który
    formułuje zalecenia dotyczące pomysłów na testy i potencjalnych zagrożeń.
    Udzielasz odpowiedzi z sugestiami dotyczącymi zagrożeń, które należy
    przetestować, na podstawie dostarczonej historyjki użytkownika ograniczonej
    trzema haszami danych wejściowych od użytkownika ograniczonych trzema
    odwrotnymi postrofami.
    Przygotuj listę sugerowanych rodzajów zagrożeń do przetestowania,
    opierając się na historyjce użytkownika i danych wejściowych
    od użytkownika.
    ###
    {relevant_document}
    ###
    ```
    {user_input}
    ```
    """;

    String closestMatch = findClosestMatch(corpus, userInput);

    prompt = prompt.replace("{relevant_document}", closestMatch)
       .replace("{user_input}", userInput);

    System.out.println("Created prompt");
    System.out.println(prompt);

    OpenAiChatModel model = OpenAiChatModel.withApiKey("tutaj-klucz-api");

    String response = model.generate(prompt);
    System.out.println("Otrzymana odpowiedź:");
    System.out.println(response);
}

public class CompletedRAGDemo {

    public static List<String> loadFilesFromResources(String folderPath) throws IOException {
        List<String> fileContents = new ArrayList<>();
        ClassLoader classLoader = CompletedRAGDemo.class.getClassLoader();

        File folder = new File(classLoader.getResource(folderPath).getFile());
        for (File file : folder.listFiles()) {
            if (file.isFile()) {
            String fileContent = FileUtils.readFileToString(file, "UTF-8");
            fileContents.add(fileContent);
        }
    }
    return fileContents;
}

public static String findClosestMatch(List<String> list, String query) {
    String closestMatch = null;
    double minDistance = Double.MAX_VALUE;
    CosineDistance cosineDistance = new CosineDistance();

    for (String item : list) {
        double distance = cosineDistance.apply(item, query);
        if (distance < minDistance) {
            minDistance = distance;
            closestMatch = item;
        }
    }

    return closestMatch;
}
public static void main(String[] args) throws Exception {

    System.out.println("W czym mogę Ci pomóc?");
    Scanner in = new Scanner(System.in);
    String userInput = in.nextLine();

    List<String> corpus = loadFilesFromResources("data");

    String prompt = """
    Jesteś ekspertem w dziedzinie testowania oprogramowania, który
    formułuje zalecenia dotyczące pomysłów na testy i potencjalnych zagrożeń.
    Udzielasz odpowiedzi z sugestiami dotyczącymi zagrożeń, które należy
    przetestować, na podstawie dostarczonej historyjki użytkownika ograniczonej
    trzema haszami danych wejściowych od użytkownika ograniczonych trzema
    odwrotnymi postrofami.
    Przygotuj listę sugerowanych rodzajów zagrożeń do przetestowania,
    opierając się na historyjce użytkownika i danych wejściowych
    od użytkownika.
    ###
    {relevant_document}
    ###
    ```
    {user_input}
    ```
    """;

    String closestMatch = findClosestMatch(corpus, userInput);

    prompt = prompt.replace("{relevant_document}", closestMatch)
       .replace("{user_input}", userInput);

    System.out.println("Created prompt");
    System.out.println(prompt);

    OpenAiChatModel model = OpenAiChatModel.withApiKey("tutaj-klucz-api");

    String response = model.generate(prompt);
    System.out.println("Otrzymana odpowiedź:");
    System.out.println(response);
}

Potrzebuję pomysłów na testy treści żądania PUT do punktu końcowego brandingu

Jakie zagrożenia powinienem wziąć pod uwagę podczas testowania API uwierzytelniania?

export PINECONE_API_KEY="<KLUCZ_API_PINECONE >"
export OPENAI_API_KEY="<KLUCZ_API_OPENAI >"
export INDEX_NAME="<NAZWA_INDEKSU>"

setx PINECONE_API_KEY "<KLUCZ_API_PINECONE >"
setx OPENAI_API_KEY "< KLUCZ_API_OPENAI>"
setx INDEX_NAME "<NAZWA_INDEKSU>"

Wymień różne rodzaje testów dla każdego parametru JSON w żądaniach PUT do punktu końcowego brandingu

Wymień różne typy testów dla każdego punktu końcowego rezerwacji
