Como os testes de programação são avaliados?

Modificado em Tue, 02 Mar 2021 na (o) 12:19 PM


Todo teste tem um problema a ser resolvido, para saber se a pessoa candidata conseguiu solucionar, comparamos o que o código gerado com o que era esperado. 


Para cada conjunto de entradas, existe um conjunto de saídas esperadas. Se foram geradas essas saídas, é considerado correto.  Se a pessoa candidata acertou as saídas esperadas para um conjunto de entradas, mas não conseguiu o esperado para outro conjunto, recebe uma nota parcial.


Exemplo 1: queremos que o código do candidato consiga somar dois números. 

Primeira entrada é 4, 4. A saída esperada é 8, pois é 4+4. Esse conjunto de entrada e saída a pessoa pode ver.

Segunda entrada é 3, 2. A saída esperada para esse conjunto é 5. Esse conjunto de entrada e saída não é visível.

Como tem mais de um conjunto, o(a) candidato(a) não pode simplesmente só dar o valor 8, sem fazer efetivamente a soma, pois 8 não é a resposta para a outra entrada (3,2). 


Exemplo 2: o código do candidato deve responder quais são as cores da bandeira de um certo país. 

Primeira entrada: Brasil. Resposta esperada: azul, amarelo, verde e branco. Esse conjunto de entrada e saída a pessoa pode ver.

Segunda entrada: Itália. Resposta esperada: verde, branco e vermelho.  Esse conjunto de entrada e saída não é visível.

Com existe mais de uma entrada, a pessoa não apenas dar a resposta "azul, amarelo, verde e branco", pois não é a resposta correta para a segunda entrada (Itália).




Explicando um pouco mais:

A pessoa candidata deve resolver o problema descrito no enunciado, gerando os outputs esperados, passando pelos testes unitários. Os valores de saída do código devem ser apresentados no console do compilador. Existe tempo limite.



Quais informações do teste posso visualizar?


Nome do teste, quanto a pessoa candidata acertou (em %), tempo gasto, enunciado da questão, entradas, saídas esperadas, linguagem escolhida, algoritmo da pessoa candidata.



O que aparece para a pessoa candidata?


Durante o teste, aparecem as seguintes informações:

Enunciado da questão, incluindo um exemplo de input(s) e output(s); um test case visível, o que inclui um input (poder ser um único valor, conjunto de valores, etc.) e os outputs esperados para esse input; tempo restante; linguagem escolhida; code stub; o que ele(a) escreveu até agora; resultado da validação (quando executa).


Exemplo:

 

Os outros test cases são invisíveis, mas é informada a faixa de valores ou tipo dos inputs no enunciado.



Entradas


Todas as entradas são de STDIN e são enviadas para STDOUT

Os valores de entrada do código não serão codificados pela pessoa, esses valores serão providenciados pela plataforma.

A primeira linha é a quantidade de interações/inputs. Os inputs são strings, é necessário um tratamento. 

Antes de fazer alterações a pessoa pode executar, assim será possível verificar exatamente como vieram as entradas.



Code stub


Como o foco é resolver o problema existem code stubs para cada linguagem, para facilitar a leitura das entradas.

Code Stub é basicamente pedaços de código que envolvem o algoritmo, eles injetam as entradas no código para rodar algoritmo processando estas entradas inseridas pelo stub, produzindo uma saída que irá ser testada nos test cases. 



Validação


Se as saídas não estão iguais, a pessoa será avisada.


Se as saídas estiverem corretas, vai ser sinalizado.



Linguagens


A pessoa é livre para escolher qualquer linguagem da lista para desenvolver seu código. 

Está disponível atualmente: Java, C, C++, C#, PHP, Python 3, Ruby, Javascript, Objective-C, Kotlin, Swift 3, GO Lang, Groov y e Scala.


Este artigo foi útil?

Que bom!

Obrigado pelo seu feedback

Desculpe! Não conseguimos ajudar você

Obrigado pelo seu feedback

Deixe-nos saber como podemos melhorar este artigo!

Selecione pelo menos um dos motivos

Feedback enviado

Agradecemos seu esforço e tentaremos corrigir o artigo