1,025 research outputs found

    Monitoring interface and automated testing for Seaweed, a web-based economic game system

    Get PDF
    Thesis (M. Eng.)--Massachusetts Institute of Technology, Dept. of Electrical Engineering and Computer Science, 2010.Cataloged from PDF version of thesis.Includes bibliographical references (p. 47-49).Seaweed is a web-based economic game system that allows end users to design and deploy simple two-player economic games. To improve the usability of the system, we have created two new features. One: a monitoring interface that allows users to view the results of a game deployment in real time. Two: an automated testing feature that automatically generates play data for a game, so that the user can check that the results are correct. Challenges included condensing the data of multiple plays of a game into a readable format and modifying the computer player system to pit two computer players against each other in order to generate the test data.by Jessica Yuan.M.Eng

    FuzzTheREST - Intelligent Automated Blackbox RESTful API Fuzzer

    Get PDF
    In recent years, the pervasive influence of technology has deeply intertwined with human life, impacting diverse fields. This relationship has evolved into a dependency, with software systems playing a pivotal role, necessitating a high level of trust. Today, a substantial portion of software is accessed through Application Programming Interfaces, particularly web APIs, which predominantly adhere to the Representational State Transfer architecture. However, this architectural choice introduces a wide range of potential vulnerabilities, which are available and accessible at a network level. The significance of Software testing becomes evident when considering the widespread use of software in various daily tasks that impact personal safety and security, making the identification and assessment of faulty software of paramount importance. In this thesis, FuzzTheREST, a black-box RESTful API fuzzy testing framework, is introduced with the primary aim of addressing the challenges associated with understanding the context of each system under test and conducting comprehensive automated testing using diverse inputs. Operating from a black-box perspective, this fuzzer leverages Reinforcement Learning to efficiently uncover vulnerabilities in RESTful APIs by optimizing input values and combinations, relying on mutation methods for input exploration. The system's value is further enhanced through the provision of a thoroughly documented vulnerability discovery process for the user. This proposal stands out for its emphasis on explainability and the application of RL to learn the context of each API, thus eliminating the necessity for source code knowledge and expediting the testing process. The developed solution adheres rigorously to software engineering best practices and incorporates a novel Reinforcement Learning algorithm, comprising a customized environment for API Fuzzy Testing and a Multi-table Q-Learning Agent. The quality and applicability of the tool developed are also assessed, relying on the results achieved on two case studies, involving the Petstore API and an Emotion Detection module which was part of the CyberFactory#1 European research project. The results demonstrate the tool's effectiveness in discovering vulnerabilities, having found 7 different vulnerabilities and the agents' ability to learn different API contexts relying on API responses while maintaining reasonable code coverage levels.Ultimamente, a influência da tecnologia espalhou-se pela vida humana de uma forma abrangente, afetando uma grande diversidade dos seus aspetos. Com a evolução tecnológica esta acabou por se tornar uma dependência. Os sistemas de software começam assim a desempenhar um papel crucial, o que em contrapartida obriga a um elevado grau de confiança. Atualmente, uma parte substancial do software é implementada em formato de Web APIs, que na sua maioria seguem a arquitetura de transferência de estado representacional. No entanto, esta introduz uma série vulnerabilidade. A importância dos testes de software torna-se evidente quando consideramos o amplo uso de software em várias tarefas diárias que afetam a segurança, elevando ainda mais a importância da identificação e mitigação de falhas de software. Nesta tese é apresentado o FuzzTheREST, uma framework de teste fuzzy de APIs RESTful num modelo caixa preta, com o objetivo principal de abordar os desafios relacionados com a compreensão do contexto de cada sistema sob teste e a realização de testes automatizados usando uma variedade de possíveis valores. Este fuzzer utiliza aprendizagem por reforço de forma a compreender o contexto da API que está sob teste de forma a guiar a geração de valores de teste, recorrendo a métodos de mutação, para descobrir vulnerabilidades nas mesmas. Todo o processo desempenhado pelo sistema é devidamente documentado para que o utilizador possa tomar ações mediante os resultados obtidos. Esta explicabilidade e aplicação de inteligência artificial para aprender o contexto de cada API, eliminando a necessidade de analisar código fonte e acelerando o processo de testagem, enaltece e distingue a solução proposta de outras. A solução desenvolvida adere estritamente às melhores práticas de engenharia de software e inclui um novo algoritmo de aprendizagem por reforço, que compreende um ambiente personalizado para testagem Fuzzy de APIs e um Agente de QLearning com múltiplas Q-tables. A qualidade e aplicabilidade da ferramenta desenvolvida também são avaliadas com base nos resultados obtidos em dois casos de estudo, que envolvem a conhecida API Petstore e um módulo de Deteção de Emoções que fez parte do projeto de investigação europeu CyberFactory#1. Os resultados demonstram a eficácia da ferramenta na descoberta de vulnerabilidades, tendo identificado 7 vulnerabilidades distintas, e a capacidade dos agentes em aprender diferentes contextos de API com base nas respostas da mesma, mantendo níveis de cobertura aceitáveis

    Design of Back-End of Recommendation Systems Using Collective Intelligence Social Tagging

    Get PDF
    Recommendation systems are the tools whose purpose is to suggest relevant products or services to the customers. In a movie business website, the recommendation system provides users with more options, classify movies under different types to assist in arriving at a decision. Although, with current e-commerce giants focusing on hybrid filtering approach, we have decided to explore the functionality of Content-based recommendation system. This research paper aims to delve deeper into the content-based recommendation system and adding tags to enhance its functionality. The content-based approach is more fit to the movie recommendation as it overcomes the ‘cold start’ issue faced by the collaborative filtering approach, meaning, even with no ratings for a movie, it can still be recommended. The proposed method is to solve the less ‘data categorization’ issue in content-based filtering. Collective Intelligence Social Tagging System (CIST) aims at making a significant difference in content-based recommendation system to enrich the item profile and provide more accurate suggestions. The main gist of CIST is to involve the users to contribute in tagging to build a more robust system in online movie businesses. Tags in the millennial world are the ‘go to’ words that everyone looks up to in an online world of E-commerce. It’s the easiest way of telling a story without actual long sentences. We recommended three main solutions for the concerns of CIST, (a) clustering of tags to avoid synonymous tag confusion and create a metadata for movies under same tags, (b) 5 criteria model to motivate and give the most amount of genuine information for end users to trust and eventually contribute in tagging, and (c) clear way of distinguishing and displaying tags to separate primary tags and secondary tags and give a chance to the users to assess whether the given tags reflect the relevant theme of the film

    An empirical study of fault localization for end-user programmers

    Get PDF
    End users develop more software than any other group of programmers, using software authoring devices such as e-mail filtering editors, by-demonstration macro builders, and spreadsheet environments. Despite this, there has been little research on finding ways to help these programmers with the dependability of their software. We have been addressing this problem in several ways, one of which includes supporting end-user debugging activities through fault localization techniques. This paper presents the results of an empirical study conducted in an end-user programming environment to examine the impact of two separate factors in fault localization techniques that affect technique effectiveness. Our results shed new insights into fault localization techniques for end-user programmers and the factors that affect them, with significant implications for the evaluation of those techniques
    • …
    corecore