Showing posts with label continuous inspection. Show all posts
Showing posts with label continuous inspection. Show all posts

Thursday, November 29, 2012

Continuous Inspection



How can you ensure the quality of your code continuously?
Some measures comes to my mind are as follows:
  • Your bug rate
  • compliance of coding rules
  •   complexity
  • duplications
  • comments
  • coupling and cohesion level
  • code coverage
  • automated acceptance test
  •  performance &stress test

Using continuous inspection tools like Sonar you run pre-defined rules and if not enough for you, plus your custom rules against your source files. Then it collects violations of the rules, quality metrics and then lists them on the dashboard historically. Measuring these while time goes on you actually measure your team’s experience as well.  These results also give you a chance to focus on the risky components and may suggest some action plans to solve them. 
Some rules’ priority should be higher than others for your project. You can change rules threshold as blocker, critical, major, minor, info etc whenever you want.
Here is a screen shot from my test project:

                                                                                                 Figure-1
Here you can assign a violation to someone via the assing button, or you can ignore it by marking False-positive, or you can take action by selecting a plan you've defined. If you use Jira issue tracking system then you can make it viewable to jira by using a sonar jira plugin as well. One of the most important thing, you can    make rules active or inactive anytime you want and you can also change severity of them.

Figure-2


Tuesday, November 13, 2012

Continuous İntegration


They say a picture tells much more..from that truth i draw the big picture makes things clear


Continuous integration is a practise comes from Extreme Programming. In large projects  all developers makes their indiviual works but when it is time to integrate them it is a big problem. A lot more time has to be spend to solve integration problems. So each member of a team should make their commits frequently to a repository  this gives the team to re-use the common code early and recognise integration problems early.  An integration server such as hudson, jenkins etc. builds code, runs unit & integration test, inspects the quality of the code, deploys the build, updates the database to the same version of the code and runs Automated User Interface tests.Then developers look at the test results. QA manager  looks at Continuous Inpestion results. He/she opens issues on issue tracking system which continuous inspection rules marked as major or critical. Then the errors found in tests results are fixed and improvements are made for QA.  Finally a clean integrated work is ready for the production. You may read alot more about CI on Matin Fowler’ site.