CSC/ECE 517 Fall 2017/E1752 Refactor assignments controller: Difference between revisions

From Expertiza_Wiki
Jump to navigation Jump to search
No edit summary
No edit summary
Line 6: Line 6:


==About Refactoring==
==About Refactoring==
Refactoring of computer software or code is the process of restructuring existing computer code—changing the factoring—without changing its external behavior. Refactoring improves nonfunctional attributes of the software. Refactoring aids in code readability and keeps the code well maintained and easy to understand.
Refactoring of computer software or code is the process of restructuring existing software code without changing its external behavior or performance of the software application. Refactoring improves nonfunctional attributes of the software. Refactoring aids in code readability and keeps the code well maintained and easy to understand.


===Refactoring actions perfomed===
===Refactoring actions perfomed===
Line 21: Line 21:
* Optimize the performance of the system,
* Optimize the performance of the system,


===RSpec Testing===
RSpec is a 'Domain Specific Language' (DSL) testing tool written in Ruby to test Ruby code. It is a behavior-driven development (BDD) framework which is extensively used in the production applications. The basic idea behind this concept is that of Test Driven Development(TDD) where the tests are written first and the development is based on writing just enough code that will fulfill those tests followed by refactoring.


===RSpec Testing===
The Expertiza project makes extensive use of RSpec to test the various components of the application.


===Testing actions perfomed===
===Testing actions perfomed===
* Creating new tests for each method,  
* Creating new tests for each method,  
* Testing the each method and making sure the tests pass.
* Testing the each method and making sure the tests pass.

Revision as of 18:03, 26 October 2017

Introduction

Expertiza is an open source webapp built on Ruby on Rails stack. It provides a platform to students with various features like peer-reviewing projects, submitting work, form teams, viewing grades etc. The project is being built and maintained by students and faculty at NCSU.

About Assignments Controller

The file assignments_controller.rb handles the logic behind Expertiza assignments and enables the creation and managements of assignments by instructional staff.

About Refactoring

Refactoring of computer software or code is the process of restructuring existing software code without changing its external behavior or performance of the software application. Refactoring improves nonfunctional attributes of the software. Refactoring aids in code readability and keeps the code well maintained and easy to understand.

Refactoring actions perfomed

  • Formatting the code for readability and convention,
  • Breaking down large chunks of code in to smaller manageable chunks.

Software Testing

Software testing is a process of examining a program or application with the intent of finding the software bugs. In software developemnt, it is usually definated as the process of validating and verifying that a software program or application or product meets the specified business and technical requirements.

Addition, software is tested to:

  • Detect and rectify and errors made during the development phase,
  • Ensure customer satisfaction in the application,
  • Ensure the quality of the software product and
  • Optimize the performance of the system,

RSpec Testing

RSpec is a 'Domain Specific Language' (DSL) testing tool written in Ruby to test Ruby code. It is a behavior-driven development (BDD) framework which is extensively used in the production applications. The basic idea behind this concept is that of Test Driven Development(TDD) where the tests are written first and the development is based on writing just enough code that will fulfill those tests followed by refactoring.

The Expertiza project makes extensive use of RSpec to test the various components of the application.

Testing actions perfomed

  • Creating new tests for each method,
  • Testing the each method and making sure the tests pass.