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

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

Related

Which ETL tool do you recommend? [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 am using Oracle as a database. We have decided to use another database and need to use ETL tool to transform the data from Oracle to that database.
I have never worked in any ETL tool and also didn't know about it. After doing some web searching, I found some tools like Pentaho, Clover, Talend etc. But, even after reading on these, I am not able to decide which one to use.
Which is the better tool to get start with, easiest to use, and has good performance?
It's impossible to answer your question without arguing on the migration requirements. Generally speaking, however, the tools your cited are all nice and focus on a particular capabilities set which could help you during the choice:
Talend: it's eclipse-based; this means that it's really powerful, stable and customizable (creating custom components or even entire eclipse plugins, if you want) and standard (ie. the project structure follows the eclipse stack). It's quite-well embeddable, as it produces java code, but this could be an hassle for the newcomer anyway. The drawback is the learning curve: if you don't manage java at all, your learning curve will be VERY steep, but if you have a java developer in your team, Talend would be a great choice.
Penthao: it's another well-estabilished solution. Its ETL tool (named Kettle) is just a component of their wider Business Intelligence open platform, which is really good if you need reporting services, OLAP, data mining and so. It's java-based, but the language is completely hidden, so you don't need to be a java developer to use it efficiently. The major drawback is that Kettle is much harder to extend than Talend. This means: poor connectors/components out-of-the-box, few community-made collections. Integration with existing java application would be REALLY a pain in the neck, too!
CloverETL: I don't use it very often, as it's mostly the younger brothers of the others. Its major advantages are: it's light, easily embeddable and easy to learn. But it's really much less powerful than Talend and even than Kettle.

Linking requirements with function 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 9 years ago.
Improve this question
I'm building a command line tool where I can execute commands like this on the input:
PROMPT>userName=Seán<CR>
PROMPT>zodiacSign=Virgo<CR>
where userName is a string type and zodiacSign is of type enumerator.
I also have auto-complete such that I can hit the tab key and get clues, like this
PROMPT>zodiacSign=C<TAB>
Cancer
Capricorn
PROMPT>zodiacSign=Ca
The thing is that I'm getting more and more subtle requirements which I'm finding more and more difficult to document into User Stories. For example, I just received the requirement where if I hit carriage-return for the following:
PROMPT>zodiacSign=Can<CARRIAGE-RETURN>
The software should then auto-complete the command zodiacSign=Cancer and execute it since it is the only option.
I will put in place function tests to test each of these nuances. By doing this, I can demo User Stories via my Function Tests.
But what convenient tool would you recommend where I can store requirements / user stories, perhaps even linking them to function tests? Perhaps this tool includes coverage graphs.
Who is the audience for the requirements? If it is a developer, I'd say that the version control system is a great place to store them. :-)
I would recommend the use of Cucumber or FitNesse. Using the tests as requirements is the way to go.
Cucumber example:
Scenario:
If a single match is available and the carriage return is pressed
auto-complete should accept the match
Given valid Zodiac Signs are "Cancer,Capricorn"
When the user enters "zodiacSign=Can<CARRIAGE-RETURN>" at the prompt
Then the shell should auto-complete to "zodiacSign=Cancer"
This is a completely executable test and does well to describe the required functionality.
Hope that helps!
Brandon
Take a look at FitNesse. It's a combination of a requirements Wiki and functional test execution framework.
When you write the requirements, you put them in a table where you have sample data and expected results. Click "test" and FitNesse parses the table, and makes the call. Pretty cool.
FitNesse is indeed a popular tool, but some would argue that FitNesse is evil (it can be misused easily, and suffers from numerous issues). A good open-source cross-platform alternative would be soapUI.
soapUI can manage functional testing, as well as keep track of your system's requirements, use cases and user stories, and link them to the tests.
It has a nice GUI with what-not (including coverage graphs, like you want!). Most of the features are included in the free version.
For your need, take a look at QMetry.
It's a very complete tool that allow you to define requirements, test cases, test scenarios and also the launching of test scenarios.
Reporting is also nice and HMI is very user friendly.
Hope this help

Platform that runs scripts monitoring stock market activity? Possibly executes trades? [closed]

Closed. This question does not meet Stack Overflow guidelines. It is not currently accepting answers.
Questions asking us to recommend or find a book, tool, software library, tutorial or other 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
Are there any software platforms out there that can be used to run scripts that monitor stock market activity?
I would like to write a script to send myself alerts when certain market conditions occur. Ideally it would also have the ability to execute trades.
I'm not looking for anything super complicated and I do not need expensive real time data. I'm looking to do simple stuff like:
If "SDY" drops to 5% below the DOD, then sell 50% of "DOD" to buy SDY
Edit
Looks like ETrade Offers an API. Not as simple as I'd like ideally, but here is is for anyone else who is interested in this question:
https://us.etrade.com/e/t/activetrading/api
From what I've seen, Tradelink does it all and supports multiple bourses, though it might be what you'd consider super-complicated. Possibly their most active API is for Interactive Brokers.
Other solutions appear to be brokerage-specific or not free.
For TD Ameritrade you might like their free StrategyDesk win32 downloadable; its simple trade automation is awesome. I don't even remember how I stumbled upon it since it's pretty well hidden or unadvertised in favor of their more modern platforms (all of which seem to lack trade automation though).
Even more defunct but equally useful might be Trade-Ideas, able to trade stocks based on rules and technical-analysis signals. It runs as a module of the ancient QuoteTracker or even stand-alone. In demo mode the signals are shown with 20min delay, but you can still place orders based on them in realtime...sweet! They support TD Ameritrade accounts and maybe also Scottrade, since ScottradeELITE software bundles in their Trade-Ideas module.
On the fringes, OptionsXpress has Xecute which basically links your account to a choice of investment advisory services to manage your portfolio for you, for a monthly fee.
Both OptionsXpress and TD Ameritrade offer developer API's which I've used, but still found their websites to be more feature-rich. So like with Scottrade I've actually written my own programs to drive their websites (nowadays using Ruby libraries Mechanize and Watir-Webdriver/Selenium) and perform live trades based on analysis and rules like yours my other programs prepare earlier.
Interactive Brokers has an API: http://individuals.interactivebrokers.com/en/main.php
RightEdge ( http://www.rightedgesystems.com/ ) is a framework, among others, that leverages that API.

To collaborate or to compete? [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 2 years ago.
Improve this question
I work on developer tools for a particular product. There is a competing set of tools for the same product produced by a different company. The user-base is split roughly 50-50 between us.
Recently, the other company has introduced scripting to make their own tools extensible by end-users. This is a feature that we have had planned for our tools for a while, but it is only now that we are able to start implementing it.
My question is: should we try as much as possible to collaborate with the developers of competing product so that end-user scripts can be shared between users on the different products? We would obviously require different implementations, but share the same syntax. This would obviously be better for the community as a whole since there would be more interoperability.
The downside of collaborating like this is that the competing product's scripting language is slightly tailored towards their own implementation. We would have to jump through a few hoops to create an implementation for their scripts on our platform. Or, we would have to somehow convince our competitor to modify their scripts so that they are platform agnostic.
So, to rephrase my question: should we try to collaborate, thus making our community happier, or should we produce a competing scripting language that is more appropriate for our platform?
I realize that this is a very general question with no single right or wrong answer. What I am looking for is a good explanation of the pros and cons of each approach.
I would write something that is specifically tailored towards my own system (don't compromise your technical quality) and then release and fully support a compatibility layer that allows my competitors scripts to run on my system (make it easy for users to migrate).
I'd stay away from doing things that will try to lock people in and cripple them if they move. These tactics worked once upon a time but in this day and age don't really cut it any more. I'd even go so far as to actually (unofficially on fora etc.) help people who are having trouble porting scripts running on my system to my competitors.
Another way to ask the question (and to answer) is to wonder WHAT KIND of script language is DESIRABLE FOR USERS.
If your competitor went a lock-in route with a proprietary scripted language, then please your users (and get a competitive edge) by using a STANDARD scripted language.
Doing so will immensely increase the value of your tool as many persons ALREADY know the scripted language.
Nobody wants to learn a new language.
Would building a unified scripting language harm your customer-base or give the competitor the competitive edge?
Obviously if you want to lock in customers, go solo which will prevent your customers from easily switching over to the competitor's product (sounds a little like Microsoft tactics) or if you know your product is superior, a collaboration will allow you to get customers from the competitor in which case customers will have the choice to choose which business model suits their needs, make a choice based on the quality of the product as a whole as well as which features they really need instead of being locked into an invisible contract due to the choice they made initially.
Going the collaboration route will also put your company in a position where developers will respect your company (for not being a greedy monopoly monster) instead of boycotting it due to their "moral" beliefs in open standards.
I would say that if possible make it compatible, not so much to cooperate but to compete. Making an incompatible solution would lock you customers in to some degree (you don't have any yet with a lot of scripts - so not much gain), but making a compatible solution keeps the door open for customers of your competition to migrate (they might have some scripts by the time you ship yours).
Just my 2cents

What are the elements of a team development suite? [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
For small-to-large teams developing software together, what tools are used to form a comprehensive team development framework?
Specifically, I'm looking for a comprehensive list of all the individual functions involved (e.g. source control, bug management, testing tools, project management), not specific product recommendations. I'm also not restricting the list to a particular methodology (e.g. Scrum).
Source control (obviously) including branch management
Issue tracking (features and bugs), possibly with task reassignment and forwarding, and often things like screen recording
Individual task management, sometimes integrated with the issue tracking system
Communication software. Some teams use emails and IMs even within the same building or tweets. There are some tools that integrated within the code so you could "chat around a piece of code". Screen and application sharing are also useful.
Good build tool.
Distributed pair programming tools if applicable, shared editors otherwise.
Similar support in case tools.
Less commonly used but promising tools (from academic background), some now have IDE based versions.
Real-time awareness (prevent nerge conflicts by letting you know somebody is working on the same file before you actually write code)
In-code social tagging, useful for bootmarking specific items
In-code contract communication tools (e.g., make a caller aware of special expectations in the invoked method as a way of avoiding errors).
You've hit the major ones in your post:
IDE (Integrated Development Environment)
Coding Guidelines (sometimes looked over, but it still helps tremendously)
Source Control
Testing Suite (Unit Testing, Test Case/Test Script Management and Tracking)
Issue Tracking/Bug Reporting
Build Management
...I'm sure I'm missing something obvious, but somebody around here will correct me.
And the one I missed...
Diagraming software (I.E. Rational Software Modeler, etc.)
A few more:
Requirements management software
Code review software
Continuous integration tool
Documentation repository - e.g. Wiki