Software

topics : Sotware ,  Software Test Automation , Real Issus & Solutions , Wikis






1/ Software



1/ Knowledge Banks:
  - Stackoverflow.com ( to get answer any technical question )
  - Quora ( answers to technical concept/archietcure level )
  - Source Forge:  found this nice FreeCAD project and may other.
  - CodeProject  : source for tutorials and many mini projects  ex: Android Projects code  ( apply left hand filter on 'Articles & Technical blogs' ) , Python mini projects etc.
  - freewaregenius.com/  - Ton of reviews on free DeskTop tools ..
  - Slideshare  :  ton of good ppt  , search for it
  - scribd
  - Avc.com ( startup , MBA etc..)



open source software hosting sites:



These are good source for already done projects , provide good 'code base'  for any new idea.
 - before start coding check these places ..
- imp ones: github , sourceforge.net  codeProject.com 

gen here

2/ How software is built in the Startup  Age: dddddd
Agile methodology , Continuous Integration CI ( see Hudson and see books for ref.)
GitHub ,Amazon S3 , EC2 , get more ...


 3/ Software Tools 
 - My top 30 free programs , last updated July 17th 2010 
  - The Top 50 Proprietary Programs that Drive You Crazy — and Their Open Source Alternatives  
 - OCR software Comparision
  - Open source equivalent to commercial software
  - freemind
  - top open source software
  - sphinx ( documentation )
  - Python: 10 Reasons Python Rocks for Research  ( multiplatform desktop client ) 
   

2/ Software Test Automation

Software Test Automation is a big topic as noted at the link below , many experts said many things .



asr take: since now every software should be API driven on server side to support various clients devices and 'open to 3 rd party' ,  they ara 2 main types of testing.
  - Functional /Unit testing on ServerSide ( myidea is similar to below Vauto  ... )
  - client side testing ( this is separate testing for Web , Iphone , Android  etc... )
  we need it for Regression ...


 this is hard part to have , once you have this test automation , CI tools and Continuous integration is easy part.


good ones here:
a/ This article support my view of testing with Functional category in mind http://msdn.microsoft.com/en-us/library/cc194885.aspx


Figure 3. Template for organizing user functions
Partial test-case hierarchy for the user function of adding an employee

b/ on the above web link seems Selinum is helping with my view : Web flow, which corresponds to user functions, is recorded as a set of actions, accessors, and assertions. Actions are actual activities on the application, such as a button click or data entry. Accessors examine the state of the application and store the results in variables. Assertions verify that the state of the application conforms to what is expected. Figure 6 shows the Firefox plug-in IDE.
 (asr to IDEA for long time ) : basically capture when User submited action to server , on server  Capture all NAME/Value Pair and dump to file on server . These set of  files can be used to build Test Suite as XML file to run automatically on Regression basis .



b/Vauto Automation Frame work   Example Stock Data  , these are inline with my concept of having a Functional test Data .
 b/ see other MSDN article on functional testing , it shows my view of graph



Frameworks are aimed at different types of testing:
  • Unit testing
    • Test-Driven Development
    • Behavior-Driven Development
  • Feature/Functional testing
  • GUI testing (Windows, Java GUIs, X Windows, etc.)
  • Web testing
  • Performance Testing
  • Security Testing


2.1/  Software Test Automation : Real Issus & Solutions

 Here is what I think is real issue.
anatomy of a software bug google search top 10 results did not address the solution I am thinking , so researched to see anybody is talking about it .
Here is the pitch: 
 - a software  flow is series of function calls any where from few function calls to 100s function call to complete a task (  a business flow ).
 -  a bug is an un expected outcome( behavior) which was not  expected for a GIVEN input set of paramers. 
 - usually bug occurs in a  function and functions take INPUT parameters . Bug usually occurs because of one/some of input parms are NULL/wrong values/wrong data types etc..
 - then you in a called function FIRST you  test all input parameters upfront . But that will slow down the system because in a flow( task) is executed 100 times ( in a given time ) , 99.9 % of the it flows with NO bugs ( say if you add 100 users a day for  30 days , you  executed taks 3,000 times , but may occur just 3 times in the whole time  that is 0.1% )
 - so what is the solutiion:  you test the function input parms from the VERY point when bug occured and all the way ABOVE  till the first ROOT call , here is example 
    func1(   p, p2, p3 )
      ...
       func2( p, p2 .....)
        ...
          func3( p, p2 , n2 , ...)
          {
    
              if (func4 (p,p2   )  <>  SUCESS )  {
                   checkInputParms(func3 ...)
                   return ;
              }
              //  if SUCCeSS code  here ..


         }


This whole block of code bolded above can be generated with some kind of MACROS/JAVA Annotations , so that no burden on the developer ..


developer defines the InputParm test Conditions in XML file like this , this is like  com.ebay.mp.selling.checkInputParms.func4.xml

  <p null="no" type="int /">
<p2 null="yes" type="string/">




Data Capture: 
  you get dump of HTTP POST/GET at the first place where web server received input and save them as XML file , this will act as temlate to add/edit to make more test cases.
  - you add tags like  loop=" 1 to 10"  to repeat a test case
  - see above said  Example Stock Data   for XML format and guide lines .. 
 - you generate JAVA test Case code from these XML files  ( may use JUnit or modify it source etc.. )


Bug Reporting:  Bug reporting should be on a tree list with showing all cases , with ICON showing failed cases . on the right hand side user can see  ( we use this pretty treelist format  shown here at fusion charats )
    - what was data input  in XML format , what was output
   - user can edit the XML input and save and do ondemand RUN for these new parameters.
  






other syntax test


<pre class="brush: csharp">// Comment
public class Testing {
}
pre>


---


3/ Wiki software

For company or  collage/school what is needed is collaboratoin , so we need simple Wiki system , simple but have powerful features .DokuWiki  - seems good one , no Ads clean page ..  
   - can Edit each section here  simple ( this simple section edit is very. imp for us ).
   -  800 plug-ins ,  SQL Plugin  , TableCalc plugin  , TimeLine  , Math
CMU is using it  ( they must have validated a dozen before setting on this one )
StockCharts : commercial usage ( see TOC table on right it is Dokus )
10 Free Wiki Software Platforms or Wiki Engines In top 2 list based on this Indian Tech gurucomparision here : 55 langs.     
Commercial support from 25 companies:   that says matured    

gen hereeeeeeeeeeeeeeeeeeee


Conclusion:  5/2011 review: If you are in the market for a fast, powerful and easy to use Wiki with tons of options that requires minimal work to get up and running, look no further than DokuWiki. It’s an incredibly fast and fun to use Wiki that’s very easy to customize. In a world where we are exposed to so much software that is overly complicated and confusing, DokuWiki is a breath of fresh air and we strongly recommend checking it out.



----





this Mindtouch Deki have both Open source and commercial version : Deki seems popular on Stackoverflow.com 




              

No comments: