Unit Testing Framework for Oracle PL/SQL? [closed] - sql

Closed. This question does not meet Stack Overflow guidelines. It is not currently accepting answers.
Questions asking us to recommend or find a tool, library or favorite off-site resource are off-topic for Stack Overflow as they tend to attract opinionated answers and spam. Instead, describe the problem and what has been done so far to solve it.
Closed 9 years ago.
Improve this question
I've seen the question (and answer) when posed for MS SQL Server, though I don't yet know of one for Oracle and PL/SQL. Are there xUnit style testing frameworks for Oracle's PL/SQL? What are they?

The most commonly used is probably utPLSQL
The original author of this toolkit now works for Quest, which has a commercial PL/SQL unit testing application.

The last version of SQL Developer includes an Unit Test suite very interesting.

I have created and using PL/SQL unit testing framework using Ruby library ruby-plsql.
It provides much shorter and more readable tests than utPLSQL and gives more flexibility compared to GUI tools (like Quest Code Tester or SQLDeveloper 2.1).

PLUTO appears to be very new, and there doesn't appear to be a lot of documentation. So I would be concerned that you'd be working through a decent number of bugs to get things working. utPLSQL has been around for a number of years and pretty widely deployed, so there have been a lot more bug fixes and a lot more people who can help out if you run into problems.
Additionally, and not to disparage anyone, but Steven Feuerstein, who wrote utPLSQL is one of the most recognized PL/SQL experts in the world. While I'm sure the author of PLUTO is a perfectly competent developer, I don't believe he has anywhere near the reputation Steven has.

I found this question searching for a PL/SQL unit test framework. I've found an article where PLUTO's developer argues for it:
... there are a few products that help PL/SQL programmers test their code. Quest Software has a product called Code Tester for Oracle; however, the free version is cripple-ware and the for-pay version just adds one more obstacle for you to have to get by in convincing your organization to start testing. There is also a utPLSQL project that was abandoned a few years ago and it is starting to suffer from bit rot.

I've recently used successfully unit testing framework of PL/SQL Commons toolkit (see also author's slides). The toolkit is not yet publicly available (at the time of the writing) but if you drop an email to the authors you'll get a working package (or at least I got).

I also found another library: PLUTO - has anyone used these and can compare/contrast them?

We use DBUnit. It integrates nicely into a continuous integration tools like Cruise Control, though developers need to learn a little Java. Templates, utilities and code samples helped our pl/sql developers get up to speed quickly.

Haven't used any, but last realese of utPLSQL was on July 2005 and since the author is the same from the commercial code tester for oracle (http://www.quest.com/code-tester-for-oracle/) I don't think we'll be seeing much of utPLSQL in the future if any, so I think I'll take my chances with PLUTO (2008)

I looked at all of those, but the only one I liked was PLUnit. It does seem to have been abandoned by its maintainers (I had to tweak the scripts to make them install). But the API is extremely simple, and it doesn't try to force an OOP/xUnit approach into PL/SQL.

Related

Software development tools - from user goals to tests [closed]

Closed. This question does not meet Stack Overflow guidelines. It is not currently accepting answers.
Questions asking us to recommend or find a tool, library or favorite off-site resource are off-topic for Stack Overflow as they tend to attract opinionated answers and spam. Instead, describe the problem and what has been done so far to solve it.
Closed 8 years ago.
Improve this question
I'm beginning a new project of about 1 year of development (for the first version) done with multiple developers, testers, etc.
I'm wondering if something exist that could help me do the following:
List all user goals
Associate functions to these user goals
Associate requirements to these functions
Associate design activities to these requirements
Associate development tasks to these requirements
Associate tests to these requirement
Qualify tests (system test, regression test, developer test, automated or not)
This way, I could:
Track if the program developed fulfill all user goals
Track if all functions are tested
Do a test matrix traceability to know if each requirements is tested
Track tests to do if a function is to be changed
Track the time needed to develop a function (it can serve later to estimate the time needed to modify it or to add a similar function to the program)
List all system tests to do when a new version is shipped
List all regression tests to do
List all developer test to do when there is a change in the function
List all automated test, this way we could know what is the percentage of the functions that are automatically testes.
etc.
You can suggest open source or commercial programs.
The Atlassian suite of software would seem to be a good fit and is very cheaply priced for a few users ($10 for up to ten users). I've direct (and good!) experience of using JIRA and find it very simple to use and flexible enough for my needs. Another alternative would be FogBugz, but I've no first-hand experience of using this.
re FogBugz, it is well worth having a look at the processes behind it, having worked on many non software projects I believe it is a universally sound methodology (even if Joel is a little quirky in his thinking.....).
I use SmartSheet because it is simple, but still has heirachial tasking, as you have set out in the question. It is good at dealing with people, unlikely it is good at manageing code, whereas FogBugz presumably does that.
A key feature of SS over Atl and others is additional users cost nothing.
One decision you have to make is do you want the project plan to be output in a simple way which many stakeholders can understand, or detailed so you can track much activity. Obviously the detail will require effort.
You have made a good start by setting out the issues, your culture of management may well be more valuable than the tool you choose.
ciao

Learning VB.Net using Sharpdevelop [closed]

Closed. This question does not meet Stack Overflow guidelines. It is not currently accepting answers.
Questions asking us to recommend or find a tool, library or favorite off-site resource are off-topic for Stack Overflow as they tend to attract opinionated answers and spam. Instead, describe the problem and what has been done so far to solve it.
Closed 9 years ago.
Improve this question
I’m new to visual basic.net. I have experience in C++ programming, but never created gui with it so learning vb.net for some quick gui development. and i want to learn vb.net. I can’t install visual basic express on computer cause i’m on shared computer and such huge install is not possible on that computer. So i picked up sharpdevelop.
After searching most of the tutorial, i found out that most of tutorial written for visual studio IDE for vb and vb.net. I’m trying to learn vb.net in depth from command line to gui programs. Any good recommendation of tutorials, book ? I searched google but very few results so far. I’m looking for good learning tutorials that can help learn with sharpdevelop.
any suggestion for tutorial and books that mentions sharpdevelop in their tutorial/guide ?
Firstly - if you are thinking about heading into .net, you might want to consider starting off with c#, especially because with your background it will be a bit easier, but if you need to learn vb.net, ofc there is nothing wrong with it, just in my experience your earning potential is higher with c#, and vb.net is kind of dying out (at least in Europe).
Second point, you should focus on starting your development either for web or for win forms, this will give you a sense of direction. Learning a new language takes some dedication.
I also think you're putting yourself through unnecessary punishment by not using the tools provided by Microsoft for your development. In my experience Visual Studio, MS SQL and Microsoft Word, are the best products to ever come out of Microsoft. Even the express editions are of a good quality. If you can head over to an internet cafe and download it from there, shouldn't cause such a problem surely to have it installed on that computer, after all its going to be used for personal development, not just playing games or wasting time.
might not be the answer you wanted, but its the best advice I can give at this stage, hope it helps....!
Also this is said from personal experience, because I've been down that road, and I promise you I found developing with MS supplied IDE's much more enjoyable, and in the end, kept things viable.
I don't see how a "programming language" (like VB.NET) book is written for a specific IDE (like VS), even if the author mentions some instructions to do with VS (menus, settings, etc.), you should be able to follow along with him, because SharpDevelop simulates VS quite well.
I've never seen a .NET book which talks about doing things in SharpDevelop rather than VS, because VS is far more popular IDE, although some authors mentions the IDE as an alternate to VS.
There's a good book authored by SharpDevelop team which teaches C# techniques using their IDE, and its digital format is free, its name is Dissecting a C# Application: Inside SharpDevelop, although there's no VB.NET version, AFAIK.
Another comment, I don't see why an experienced C++ programmer would learn VB.NET, if you want to learn a robust, quick GUI .NET language, go ahead and learn C#.
Good luck,,

What's a quality development environment for writing Oracle SQL? [closed]

Closed. This question does not meet Stack Overflow guidelines. It is not currently accepting answers.
Questions asking us to recommend or find a tool, library or favorite off-site resource are off-topic for Stack Overflow as they tend to attract opinionated answers and spam. Instead, describe the problem and what has been done so far to solve it.
Closed 9 years ago.
Improve this question
The project I'm working on has an Oracle backend, and we use SQL Navigator 5.5 for SQL development and it really sucks: the intellisense doesn't work for queries with more than one table and you can't browse the schema and write a query on the screen at the same time. Not fun.
I also tried using Oracle SQL Developer. That's not much of an improvement either - the graphics on the query results window get all fudged up and have to be repainted frequently by clicking around the screen.
The extent to which I'm writing SQL is pretty basic: a procedure here and there, mostly queries. Can someone recommend a decent tool, preferably one with a low cost?
You may want to check out PL/SQL Developer (http://www.allroundautomations.com/plsqldev.html). It does more than just PL/SQL. Cost is pretty reasonable. On Linux try Tora It is suppose to be a replacement for Toad. Have used to other 2 personally but not the latter.
I'm pretty sure that TOAD is the most used tool. I don't recall how much it costs now days, but I'm generally very satisfied with it even with a slightly older version.
All IDE:s for Oracle DB are more or less bad, TOAD is the best but still nothing comapared to real IDE like Visual Studio or Eclipse.
Main problem with TOAD is the default texteditor. Find is nightmare and you can't change shortcuts and auto alignment uses spaces even if you configure it to use tabs and other annoying features. Also cancelling queries or making query to disconnected session might crash it. Also the intellisense is kinda slow imo but it works which is better than what others offer.
There are several tools out there you could give a try.
TOAD or DbVisualizer are examples for tools which could make you happier than SQLDeveloper. Altough, most of the available tools are commercial.
SQL*Plus: it's free with the database, and always guaranteed to be there - and there's nothing you can't do with it :)
I used [CAST](http://en.wikipedia.org/wiki/CAST_(software) for 2004-6, and it's quite good. One of the principal reasons for using it was that it supports locking of PL/SQL packages when editing them. Now I use jEdit for almost all developments, and Oracle SQL Developer for easy lookup of table properties and such.
There is a freeware version of TOAD, though it's not as fully featured as the paid ones. You can find it at:
http://www.toadsoft.com/
There is fairly decent support in Emacs using sql-mode and plsql-mode. I wouldn't recommend it unless you are an Emacs user though.
Failing that Toad is fairly good, although it fairly heavy weight.
If you're looking for an open source solution SQuirreL SQL Client is pretty good. It isn't Oracle specific though. It works with any jdbc client.
Another open source tool which works really well is SQL Workbench (http://sql-workbench.net/). Works with all JDBC clients, but we've had alot of success with Oracle. Also includes some scripting support which can be helpful for importing/exporting large amounts of data.
I personally use PL/SQL Developer to develop and Spotlight on Oracle to profile.
Two more options (just for completeness):
Hora
Aqua Data Studio

Test driven development book [closed]

Closed. This question does not meet Stack Overflow guidelines. It is not currently accepting answers.
Questions asking us to recommend or find a tool, library or favorite off-site resource are off-topic for Stack Overflow as they tend to attract opinionated answers and spam. Instead, describe the problem and what has been done so far to solve it.
Closed 9 years ago.
Improve this question
What book would you recommend to learn test driven development? Preferrably language agnostic.
Test Driven Development By Example
Refactoring: Improving the Design of Existing Code
Extreme Programming: Embrace The Change
Growing Object-Oriented Software, Guided by Tests by Addison-Wesley - it is about mocking frameworks - JMock and Hamcrest in particular.
From description of the book:
Steve Freeman and Nat Pryce describe
the processes they use, the design
principles they strive to achieve, and
some of the tools that help them get
the job done. Through an extended
worked example, you’ll learn how TDD
works at multiple levels, using tests
to drive the features and the
object-oriented structure of the code,
and using Mock Objects to discover and
then describe relationships between
objects. Along the way, the book
systematically addresses challenges
that development teams encounter with
TDD--from integrating TDD into your
processes to testing your most
difficult features.
EDIT:
I'm now reading Working Effectively with Legacy Code by Michael Feathers which is pretty good. From the description of the book:
Understanding the mechanics of software change: adding features,
fixing bugs, improving design, optimizing performance
Getting legacy code into a test harness
Writing tests that protect you against introducing new problems
This book also includes a catalog of twenty-four dependency-breaking
techniques that help you work with
program elements in isolation and make
safer changes.
I read it already, it is one of the best programming books I've ever read (I personally think that it must be called Refactoring to Testability - it describes the processes for making your code testable). Because a testable code is good code.
For me, this is the best one:
Test Driven Development: By Example by Kent Beck
Fairly recent reasonably written book The Art of Unit Testing. I am surprised it wasn't mentioned here.
The Astels book is a solid introduction, Beck's book is good on the underlying concepts, Lasse Koskela has a newish one (Test Driven: TDD and Acceptance TDD for Java Developers). Osherove's book, as he says, is about Unit Testing, rather than TDD. I'm not sure that the Pragmatics' TDD book has aged as well as their original book.
Most everything is Java or C#, but you should be able to figure it out yourself.
I'm a big fan of almost anything from the Pragmatic Bookshelf, but these two really helped drive the point home for me:
The Pragmatic Programmer: From Journeyman to Master. This ages really well. I'd recommend it to any developer.
Pragmatic Unit Testing in C# with NUnit, 2nd Edition. Don't let the title scare you. The concepts are pretty language agnostic, even with the C# examples.
Dave Astels' Test-Driven Development: A Practical Guide

First impressions of the Fantom programming language? [closed]

Closed. This question is opinion-based. It is not currently accepting answers.
Want to improve this question? Update the question so it can be answered with facts and citations by editing this post.
Closed 9 years ago.
Improve this question
Has anyone here given the Fantom programming language a whirl? (pun intended).
My first impression:
I like the ability to have the code run on either the .NET or Java VM.
The syntax is nice and clean and does not try anything fancy.
I have a belief that "the library is the language" and the developers of Fan believe that their USP is their APIs:
But getting a language to run on both Java and .NET is the easy part - in fact there are many solutions to this problem. The hard part is getting portable APIs. Fan provides a set of APIs which abstract away the Java and .NET APIs. We actually consider this one of Fan's primary benefits, because it gives us a chance to develop a suite of system APIs that are elegant and easy to use compared to the Java and .NET counter parts.
Any other thoughts, first impressions, pros and cons?
It looks very inspired by Ruby. It says that it's RESTful but I don't see how exactly. Compare with boo, which is more mature yet similar in many ways (its syntax is Python inspired, though).
The design decisions to keep generics and namespaces very limited are questionable.
I think their explanation sums it up:
"The primary reason we created Fan is
to write software that can seamlessly
run on both the Java VM and the .NET
CLR. The reality is that many software
organizations are committed to one or
the other of these platforms."
It doesn't look better than all other non-JVM/.NET languages. In the absence of any information about them (their blog is just an error page), I see no reason why they would necessarily get this righter than others. Every language starts out fairly elegant for the set of things it was designed for (though I see some awkwardness in the little Fan code I looked at just now) -- the real question is how well it scales to completely new things, and we simply don't know that yet.
But if your organization has a rule that "everything must run on our VM", then it may be an acceptable compromise for you.
You're giving up an awful lot just for VM independence. For example, yours is the first Fan question here on SO -- a couple orders of magnitude fewer than Lisp.
For what problem is Fan the best solution? Python and Ruby can already run on both VMs (or neither), have big communities and big libraries, and seem to be about the same level of abstraction, but are far more mature.
I have never heard of Fan until a couple of weeks ago. From the web site, it is about one year old so still pretty young and unproven. There are a couple of interesting points however: First the language is tackling the problem of concurrency by providing an actor model (similar to erlang) and by supporting immutable objects. Second, the object follows the example of Scala with type inference. Type inference allows the programmer to omit type declarations but have it computed by the compiler providing the advantage of short and cleaner code as in a dynamically type language while preserving the efficiency of a statically type language. And last, it seems like a very fast language, nearly as fast as Java and really close or beating the second fastest language on the JM: scala. Benchmark showing the performance can be found at http://www.slideshare.net/michael.galpin/performance-comparisons-of-dynamic-languages-on-the-java-virtual-machine?type=powerpoint.
This is very interesting.
Java (or C#) was created in order to eliminate Platform dependency by creating a JVM (or CLR) that will compile the code into a specific machine code at run time.
Now , There is a languege which is Virtual Machine independent? umm .... what the hell?!?!
Again , this is a very interesting topic , That might be the future...:) going to one universal single languege
I think it looks like a great language feature-wise, but I'm not sure how useful it is. I don't think it is all that useful to target .NET and JVM. Java is already cross-platform, and .NET is too, with Mono. By targeting two VMs, you have to use only the APIs that are available on both. You can't use any of the great native APIs that are available for Java and .NET. I can't imagine that their API is anywhere near as complete as either Java's of .NET's.